@@ -42,6 +42,13 @@ export class ActivityCancelledError extends Error {}
42
42
@SymbolBasedInstanceOfError ( 'ActivityPausedError' )
43
43
export class ActivityPausedError extends Error { }
44
44
45
+ /**
46
+ * Thrown by {@link AsyncCompletionClient.heartbeat} when the reporting Activity
47
+ * has been reset.
48
+ */
49
+ @SymbolBasedInstanceOfError ( 'ActivityResetError' )
50
+ export class ActivityResetError extends Error { }
51
+
45
52
/**
46
53
* Options used to configure {@link AsyncCompletionClient}
47
54
*/
@@ -219,6 +226,7 @@ export class AsyncCompletionClient extends BaseClient {
219
226
const payloads = await encodeToPayloads ( this . dataConverter , details ) ;
220
227
let cancelRequested = false ;
221
228
let paused = false ;
229
+ let reset = false ;
222
230
try {
223
231
if ( taskTokenOrFullActivityId instanceof Uint8Array ) {
224
232
const response = await this . workflowService . recordActivityTaskHeartbeat ( {
@@ -229,6 +237,7 @@ export class AsyncCompletionClient extends BaseClient {
229
237
} ) ;
230
238
cancelRequested = ! ! response . cancelRequested ;
231
239
paused = ! ! response . activityPaused ;
240
+ reset = ! ! response . activityReset ;
232
241
} else {
233
242
const response = await this . workflowService . recordActivityTaskHeartbeatById ( {
234
243
identity : this . options . identity ,
@@ -238,13 +247,17 @@ export class AsyncCompletionClient extends BaseClient {
238
247
} ) ;
239
248
cancelRequested = ! ! response . cancelRequested ;
240
249
paused = ! ! response . activityPaused ;
250
+ reset = ! ! response . activityReset ;
241
251
}
242
252
} catch ( err ) {
243
253
this . handleError ( err ) ;
244
254
}
245
255
if ( cancelRequested ) {
246
256
throw new ActivityCancelledError ( 'cancelled' ) ;
247
257
}
258
+ if ( reset ) {
259
+ throw new ActivityResetError ( 'reset' ) ;
260
+ }
248
261
if ( paused ) {
249
262
throw new ActivityPausedError ( 'paused' ) ;
250
263
}
0 commit comments