@@ -42,6 +42,13 @@ export class ActivityCancelledError extends Error {}
4242@SymbolBasedInstanceOfError ( 'ActivityPausedError' )
4343export class ActivityPausedError extends Error { }
4444
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+
4552/**
4653 * Options used to configure {@link AsyncCompletionClient}
4754 */
@@ -219,6 +226,7 @@ export class AsyncCompletionClient extends BaseClient {
219226 const payloads = await encodeToPayloads ( this . dataConverter , details ) ;
220227 let cancelRequested = false ;
221228 let paused = false ;
229+ let reset = false ;
222230 try {
223231 if ( taskTokenOrFullActivityId instanceof Uint8Array ) {
224232 const response = await this . workflowService . recordActivityTaskHeartbeat ( {
@@ -229,6 +237,7 @@ export class AsyncCompletionClient extends BaseClient {
229237 } ) ;
230238 cancelRequested = ! ! response . cancelRequested ;
231239 paused = ! ! response . activityPaused ;
240+ reset = ! ! response . activityReset ;
232241 } else {
233242 const response = await this . workflowService . recordActivityTaskHeartbeatById ( {
234243 identity : this . options . identity ,
@@ -238,13 +247,17 @@ export class AsyncCompletionClient extends BaseClient {
238247 } ) ;
239248 cancelRequested = ! ! response . cancelRequested ;
240249 paused = ! ! response . activityPaused ;
250+ reset = ! ! response . activityReset ;
241251 }
242252 } catch ( err ) {
243253 this . handleError ( err ) ;
244254 }
245255 if ( cancelRequested ) {
246256 throw new ActivityCancelledError ( 'cancelled' ) ;
247257 }
258+ if ( reset ) {
259+ throw new ActivityResetError ( 'reset' ) ;
260+ }
248261 if ( paused ) {
249262 throw new ActivityPausedError ( 'paused' ) ;
250263 }
0 commit comments