Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit fc658d3

Browse files
authored
feat(workflow)!: Rename setListener to setHandler (temporalio#352)
1 parent 7902959 commit fc658d3

15 files changed

+52
-52
lines changed

packages/test/src/workflows/async-fail-signal.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import { setListener, sleep } from '@temporalio/workflow';
1+
import { setHandler, sleep } from '@temporalio/workflow';
22
import { failSignal } from './definitions';
33

44
export async function asyncFailSignalWorkflow(): Promise<void> {
5-
setListener(failSignal, async () => {
5+
setHandler(failSignal, async () => {
66
await sleep(100);
77
throw new Error('Signal failed');
88
});

packages/test/src/workflows/cancel-fake-progress.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {
33
proxyActivities,
44
CancellationScope,
55
isCancellation,
6-
setListener,
6+
setHandler,
77
condition,
88
} from '@temporalio/workflow';
99
import { activityStartedSignal } from './definitions';
@@ -17,7 +17,7 @@ const { fakeProgress } = proxyActivities<typeof activities>({
1717

1818
export async function cancelFakeProgress(): Promise<void> {
1919
let activityStarted = false;
20-
setListener(activityStartedSignal, () => void (activityStarted = true));
20+
setHandler(activityStartedSignal, () => void (activityStarted = true));
2121
try {
2222
await CancellationScope.cancellable(async () => {
2323
const promise = fakeProgress();

packages/test/src/workflows/cancel-http-request.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {
33
proxyActivities,
44
CancellationScope,
55
isCancellation,
6-
setListener,
6+
setHandler,
77
condition,
88
} from '@temporalio/workflow';
99
import type * as activities from '../activities';
@@ -17,7 +17,7 @@ const { cancellableFetch } = proxyActivities<typeof activities>({
1717

1818
export async function cancellableHTTPRequest(url: string): Promise<void> {
1919
let activityStarted = false;
20-
setListener(activityStartedSignal, () => void (activityStarted = true));
20+
setHandler(activityStartedSignal, () => void (activityStarted = true));
2121
try {
2222
await CancellationScope.cancellable(async () => {
2323
const promise = cancellableFetch(url, true);

packages/test/src/workflows/child-workflow-termination.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44
*/
55

66
import { WorkflowExecution } from '@temporalio/common';
7-
import { startChild, defineQuery, setListener } from '@temporalio/workflow';
7+
import { startChild, defineQuery, setHandler } from '@temporalio/workflow';
88
import { unblockOrCancel } from './unblock-or-cancel';
99

1010
export const childExecutionQuery = defineQuery<WorkflowExecution | undefined>('childExecution');
1111

1212
export async function childWorkflowTermination(): Promise<void> {
1313
let workflowExecution: WorkflowExecution | undefined = undefined;
14-
setListener(childExecutionQuery, () => workflowExecution);
14+
setHandler(childExecutionQuery, () => workflowExecution);
1515

1616
const child = await startChild(unblockOrCancel, {});
1717
workflowExecution = { workflowId: child.workflowId, runId: child.originalRunId };

packages/test/src/workflows/continue-as-new-same-workflow.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
* Tests continueAsNew for the same Workflow from execute and signal handler
33
* @module
44
*/
5-
import { continueAsNew, CancellationScope, defineSignal, setListener } from '@temporalio/workflow';
5+
import { continueAsNew, CancellationScope, defineSignal, setHandler } from '@temporalio/workflow';
66

77
export const continueAsNewSignal = defineSignal('continueAsNew');
88

99
export async function continueAsNewSameWorkflow(
1010
continueFrom: 'execute' | 'signal' | 'none' = 'execute',
1111
continueTo: 'execute' | 'signal' | 'none' = 'signal'
1212
): Promise<void> {
13-
setListener(continueAsNewSignal, async () => {
13+
setHandler(continueAsNewSignal, async () => {
1414
await continueAsNew<typeof continueAsNewSameWorkflow>('none');
1515
});
1616
if (continueFrom === 'none') {

packages/test/src/workflows/fail-signal.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import { setListener, sleep } from '@temporalio/workflow';
1+
import { setHandler, sleep } from '@temporalio/workflow';
22
import { failSignal } from './definitions';
33

44
export async function failSignalWorkflow(): Promise<void> {
5-
setListener(failSignal, () => {
5+
setHandler(failSignal, () => {
66
throw new Error('Signal failed');
77
});
88
// Don't complete to allow Workflow to be interrupted by fail() signal

packages/test/src/workflows/fail-unless-signaled-before-start.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { defineSignal, setListener } from '@temporalio/workflow';
1+
import { defineSignal, setHandler } from '@temporalio/workflow';
22

33
export const someShallPassSignal = defineSignal('someShallPass');
44

55
export async function failUnlessSignaledBeforeStart(): Promise<void> {
66
let pass = false;
7-
setListener(someShallPassSignal, () => void (pass = true));
7+
setHandler(someShallPassSignal, () => void (pass = true));
88
if (!pass) {
99
throw new Error('None shall pass');
1010
}

packages/test/src/workflows/interceptor-example.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
condition,
77
defineSignal,
88
defineQuery,
9-
setListener,
9+
setHandler,
1010
} from '@temporalio/workflow';
1111
import { echo } from './configured-activities';
1212

@@ -17,14 +17,14 @@ export const getSecretQuery = defineQuery<string>('getSecret');
1717

1818
export async function interceptorExample(): Promise<string> {
1919
let unblocked = false;
20-
setListener(unblockWithSecretSignal, (secret: string) => {
20+
setHandler(unblockWithSecretSignal, (secret: string) => {
2121
if (secret !== '12345') {
2222
// Workflow execution should fail
2323
throw new Error('Wrong unblock secret');
2424
}
2525
unblocked = true;
2626
});
27-
setListener(getSecretQuery, () => '12345');
27+
setHandler(getSecretQuery, () => '12345');
2828

2929
try {
3030
await sleep(1);
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
// @@@SNIPSTART typescript-workflow-signal-implementation
2-
import { defineSignal, setListener } from '@temporalio/workflow';
2+
import { defineSignal, setHandler } from '@temporalio/workflow';
33

44
export const interruptSignal = defineSignal<[string]>('interrupt');
55

66
export async function interruptableWorkflow(): Promise<void> {
77
// When this Promise is rejected Workflow execution will fail
88
await new Promise<never>((_resolve, reject) => {
9-
setListener(interruptSignal, (reason) => reject(new Error(reason)));
9+
setHandler(interruptSignal, (reason) => reject(new Error(reason)));
1010
});
1111
}
1212
// @@@SNIPEND

packages/test/src/workflows/invalid-or-failed-queries.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
* @module
66
*/
77

8-
import { defineQuery, setListener } from '@temporalio/workflow';
8+
import { defineQuery, setHandler } from '@temporalio/workflow';
99

1010
export const invalidAsyncQuery = defineQuery<Promise<boolean>>('invalidAsyncMethod');
1111
export const failQuery = defineQuery<never>('fail');
1212

1313
export async function invalidOrFailedQueries(): Promise<void> {
14-
setListener(invalidAsyncQuery, async () => true);
15-
setListener(failQuery, () => {
14+
setHandler(invalidAsyncQuery, async () => true);
15+
setHandler(failQuery, () => {
1616
throw new Error('fail');
1717
});
1818
}

packages/test/src/workflows/signal-target.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44
*
55
* @module
66
*/
7-
import { condition, setListener } from '@temporalio/workflow';
7+
import { condition, setHandler } from '@temporalio/workflow';
88
import { failWithMessageSignal, unblockSignal } from './definitions';
99

1010
export async function signalTarget(): Promise<void> {
1111
let unblocked = false;
1212

13-
setListener(failWithMessageSignal, (message) => {
13+
setHandler(failWithMessageSignal, (message) => {
1414
throw new Error(message);
1515
});
16-
setListener(unblockSignal, () => void (unblocked = true));
16+
setHandler(unblockSignal, () => void (unblocked = true));
1717

1818
await condition(() => unblocked);
1919
}

packages/test/src/workflows/smorgasbord.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
CancellationScope,
1010
isCancellation,
1111
defineQuery,
12-
setListener,
12+
setHandler,
1313
condition,
1414
continueAsNew,
1515
} from '@temporalio/workflow';
@@ -34,8 +34,8 @@ export const stepQuery = defineQuery<number>('step');
3434
export async function smorgasbord(iteration = 0): Promise<void> {
3535
let unblocked = false;
3636

37-
setListener(stepQuery, () => iteration);
38-
setListener(activityStartedSignal, () => void (unblocked = true));
37+
setHandler(stepQuery, () => iteration);
38+
setHandler(activityStartedSignal, () => void (unblocked = true));
3939

4040
try {
4141
await CancellationScope.cancellable(async () => {

packages/test/src/workflows/unblock-or-cancel.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
* All-in-one sample showing cancellation, signals and queries
33
* @module
44
*/
5-
import { CancelledFailure, defineQuery, setListener, condition } from '@temporalio/workflow';
5+
import { CancelledFailure, defineQuery, setHandler, condition } from '@temporalio/workflow';
66
import { unblockSignal } from './definitions';
77

88
export const isBlockedQuery = defineQuery<boolean>('isBlocked');
99

1010
export async function unblockOrCancel(): Promise<void> {
1111
let isBlocked = true;
12-
setListener(unblockSignal, () => void (isBlocked = false));
13-
setListener(isBlockedQuery, () => isBlocked);
12+
setHandler(unblockSignal, () => void (isBlocked = false));
13+
setHandler(isBlockedQuery, () => isBlocked);
1414
try {
1515
console.log('Blocked');
1616
await condition(() => !isBlocked);

packages/workflow/src/internals.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ export class Activator implements ActivationHandler {
179179
}
180180

181181
protected async queryWorkflowNextHandler({ queryName, args }: QueryInput): Promise<unknown> {
182-
const fn = state.queryListeners.get(queryName);
182+
const fn = state.queryHandlers.get(queryName);
183183
if (fn === undefined) {
184184
// Fail the query
185185
throw new ReferenceError(`Workflow did not register a handler for ${queryName}`);
@@ -218,9 +218,9 @@ export class Activator implements ActivationHandler {
218218
}
219219

220220
public async signalWorkflowNextHandler({ signalName, args }: SignalInput): Promise<void> {
221-
const fn = state.signalListeners.get(signalName);
221+
const fn = state.signalHandlers.get(signalName);
222222
if (fn === undefined) {
223-
throw new IllegalStateError(`No registered signal listener for signal ${signalName}`);
223+
throw new IllegalStateError(`No registered signal handler for signal ${signalName}`);
224224
}
225225
return fn(...args);
226226
}
@@ -231,7 +231,7 @@ export class Activator implements ActivationHandler {
231231
throw new TypeError('Missing activation signalName');
232232
}
233233

234-
const fn = state.signalListeners.get(signalName);
234+
const fn = state.signalHandlers.get(signalName);
235235
if (fn === undefined) {
236236
let buffer = state.bufferedSignals.get(signalName);
237237
if (buffer === undefined) {
@@ -318,12 +318,12 @@ export class State {
318318
};
319319

320320
/**
321-
* Holds buffered signal calls until a listener is registered
321+
* Holds buffered signal calls until a handler is registered
322322
*/
323323
public readonly bufferedSignals = new Map<string, coresdk.workflow_activation.ISignalWorkflow[]>();
324324

325325
/**
326-
* Holds buffered query calls until a listener is registered.
326+
* Holds buffered query calls until a handler is registered.
327327
*
328328
* **IMPORTANT** queries are only buffered until workflow is started.
329329
* This is required because async interceptors might block workflow function invocation
@@ -332,14 +332,14 @@ export class State {
332332
public readonly bufferedQueries = Array<coresdk.workflow_activation.IQueryWorkflow>();
333333

334334
/**
335-
* Mapping of signal name to listener
335+
* Mapping of signal name to handler
336336
*/
337-
public readonly signalListeners = new Map<string, WorkflowSignalType>();
337+
public readonly signalHandlers = new Map<string, WorkflowSignalType>();
338338

339339
/**
340-
* Mapping of signal name to listener
340+
* Mapping of signal name to handler
341341
*/
342-
public readonly queryListeners = new Map<string, WorkflowQueryType>();
342+
public readonly queryHandlers = new Map<string, WorkflowQueryType>();
343343

344344
/**
345345
* Loaded in {@link initRuntime}

packages/workflow/src/workflow.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -883,7 +883,7 @@ function conditionInner(fn: () => boolean): Promise<void> {
883883
/**
884884
* Define a signal method for a Workflow.
885885
*
886-
* Definitions are used to register listeners in the Workflow via {@link setListener} and to signal Workflows using a {@link WorkflowHandle}, {@link ChildWorkflowHandle} or {@link ExternalWorkflowHandle}.
886+
* Definitions are used to register handler in the Workflow via {@link setHandler} and to signal Workflows using a {@link WorkflowHandle}, {@link ChildWorkflowHandle} or {@link ExternalWorkflowHandle}.
887887
* Definitions can be reused in multiple Workflows.
888888
*/
889889
export function defineSignal<Args extends any[] = []>(name: string): SignalDefinition<Args> {
@@ -896,7 +896,7 @@ export function defineSignal<Args extends any[] = []>(name: string): SignalDefin
896896
/**
897897
* Define a query method for a Workflow.
898898
*
899-
* Definitions are used to register listeners in the Workflow via {@link setListener} and to query Workflows using a {@link WorkflowHandle}.
899+
* Definitions are used to register handler in the Workflow via {@link setHandler} and to query Workflows using a {@link WorkflowHandle}.
900900
* Definitions can be reused in multiple Workflows.
901901
*/
902902
export function defineQuery<Ret, Args extends any[] = []>(name: string): QueryDefinition<Ret, Args> {
@@ -907,9 +907,9 @@ export function defineQuery<Ret, Args extends any[] = []>(name: string): QueryDe
907907
}
908908

909909
/**
910-
* A listener function capable of accepting the arguments for a given SignalDefinition or QueryDefinition.
910+
* A handler function capable of accepting the arguments for a given SignalDefinition or QueryDefinition.
911911
*/
912-
export type Listener<
912+
export type Handler<
913913
Ret,
914914
Args extends any[],
915915
T extends SignalDefinition<Args> | QueryDefinition<Ret, Args>
@@ -920,19 +920,19 @@ export type Listener<
920920
: never;
921921

922922
/**
923-
* Set a listener function for a Workflow query or signal.
923+
* Set a handler function for a Workflow query or signal.
924924
*
925-
* If this function is called multiple times for a given signal or query name the last listener will overwrite any previous calls.
925+
* If this function is called multiple times for a given signal or query name the last handler will overwrite any previous calls.
926926
*
927927
* @param def a {@link SignalDefinition} or {@link QueryDefinition} as returned by {@link defineSignal} or {@link defineQuery} respectively.
928-
* @param listener a compatible listener function for the given definition.
928+
* @param handler a compatible handler function for the given definition.
929929
*/
930-
export function setListener<Ret, Args extends any[], T extends SignalDefinition<Args> | QueryDefinition<Ret, Args>>(
930+
export function setHandler<Ret, Args extends any[], T extends SignalDefinition<Args> | QueryDefinition<Ret, Args>>(
931931
def: T,
932-
listener: Listener<Ret, Args, T>
932+
handler: Handler<Ret, Args, T>
933933
): void {
934934
if (def.type === 'signal') {
935-
state.signalListeners.set(def.name, listener as any);
935+
state.signalHandlers.set(def.name, handler as any);
936936
const bufferedSignals = state.bufferedSignals.get(def.name);
937937
if (bufferedSignals !== undefined) {
938938
for (const signal of bufferedSignals) {
@@ -941,7 +941,7 @@ export function setListener<Ret, Args extends any[], T extends SignalDefinition<
941941
state.bufferedSignals.delete(def.name);
942942
}
943943
} else if (def.type === 'query') {
944-
state.queryListeners.set(def.name, listener as any);
944+
state.queryHandlers.set(def.name, handler as any);
945945
} else {
946946
throw new TypeError(`Invalid definition type: ${(def as any).type}`);
947947
}

0 commit comments

Comments
 (0)