samples-ts/functions/sayHello.ts (39 lines of code) (raw):
import * as df from "durable-functions";
import { ActivityHandler, OrchestrationContext, OrchestrationHandler } from "durable-functions";
const helloActivityName = "sayHello";
const helloSequence: OrchestrationHandler = function* (context: OrchestrationContext) {
context.log("Starting chain sample");
const output: string[] = [];
output.push(yield context.df.callActivity(helloActivityName, "Tokyo"));
output.push(yield context.df.callActivity(helloActivityName, "Seattle"));
output.push(yield context.df.callActivity(helloActivityName, "Cairo"));
return output;
};
df.app.orchestration("helloSequence", helloSequence);
const sayHelloWithActivity: OrchestrationHandler = function* (context: OrchestrationContext) {
const input: unknown = context.df.getInput();
const output: string = yield context.df.callActivity(helloActivityName, input);
return output;
};
df.app.orchestration("sayHelloWithActivity", sayHelloWithActivity);
const sayHelloWithCustomStatus: OrchestrationHandler = function* (context: OrchestrationContext) {
const input: unknown = context.df.getInput();
const output: string = yield context.df.callActivity(helloActivityName, input);
context.df.setCustomStatus(output);
return output;
};
df.app.orchestration("sayHelloWithCustomStatus", sayHelloWithCustomStatus);
const sayHelloWithSubOrchestrator: OrchestrationHandler = function* (
context: OrchestrationContext
) {
const input: unknown = context.df.getInput();
const output: string = yield context.df.callSubOrchestrator("sayHelloWithActivity", { input });
return output;
};
df.app.orchestration("sayHelloWithSubOrchestrator", sayHelloWithSubOrchestrator);
const helloActivity: ActivityHandler = function (input: unknown): string {
return `Hello ${input}`;
};
df.app.activity(helloActivityName, {
handler: helloActivity,
});