From a0dd18c12ac5ab6280366d93d7b47cdb3036914b Mon Sep 17 00:00:00 2001 From: Adrien de Peretti Date: Fri, 22 Dec 2023 07:39:28 +0100 Subject: [PATCH] feat(workflows-sdk): Allow primitive values to be passed as well as WorkflowDataProperties (#5953) * feat(workflows-sdk): Allow primitive values to be passed as well as WorkflowDataProperties * feat(workflows-sdk): improve playground tests * Create nine-shrimps-reply.md --- .changeset/nine-shrimps-reply.md | 5 +++++ .../src/utils/{_test.ts => _playground.ts} | 15 ++++++++------- packages/workflows-sdk/src/utils/composer/type.ts | 4 ++-- 3 files changed, 15 insertions(+), 9 deletions(-) create mode 100644 .changeset/nine-shrimps-reply.md rename packages/workflows-sdk/src/utils/{_test.ts => _playground.ts} (51%) diff --git a/.changeset/nine-shrimps-reply.md b/.changeset/nine-shrimps-reply.md new file mode 100644 index 0000000000..0f6641b2f1 --- /dev/null +++ b/.changeset/nine-shrimps-reply.md @@ -0,0 +1,5 @@ +--- +"@medusajs/workflows-sdk": patch +--- + +feat(workflows-sdk): Allow primitive values to be passed as well as WorkflowDataProperties diff --git a/packages/workflows-sdk/src/utils/_test.ts b/packages/workflows-sdk/src/utils/_playground.ts similarity index 51% rename from packages/workflows-sdk/src/utils/_test.ts rename to packages/workflows-sdk/src/utils/_playground.ts index eca106c9ee..6bc33ea235 100644 --- a/packages/workflows-sdk/src/utils/_test.ts +++ b/packages/workflows-sdk/src/utils/_playground.ts @@ -1,14 +1,15 @@ import { createStep, createWorkflow, StepResponse } from "./composer" const step1 = createStep("step1", async (input: {}, context) => { - console.log("step1", input) // Here the input will be `{}` and the createWorkflow does not have to provide an input return new StepResponse({ step1: "step1" }) }) -const step2 = createStep("step2", async (input: string, context) => { - console.log("step2", input) // Here the input will be the string value `step1` - return new StepResponse({ step2: "step2" }) -}) +const step2 = createStep( + "step2", + async (input: { test: string; test2: string }, context) => { + return new StepResponse({ step2: input }) + } +) const step3 = createStep("step3", async () => { return new StepResponse({ step3: "step3" }) @@ -17,11 +18,11 @@ const step3 = createStep("step3", async () => { const workflow = createWorkflow("workflow", function () { const step1Res = step1() step3() - return step2(step1Res.step1) + return step2({ test: "test", test2: step1Res.step1 }) }) workflow() .run({}) .then((res) => { - console.log(res.result) // result: { step2: "step2" } + console.log(res.result) // result: { step2: { test: "test", test2: "step1" } } }) diff --git a/packages/workflows-sdk/src/utils/composer/type.ts b/packages/workflows-sdk/src/utils/composer/type.ts index 003458a379..3e05390c50 100644 --- a/packages/workflows-sdk/src/utils/composer/type.ts +++ b/packages/workflows-sdk/src/utils/composer/type.ts @@ -29,8 +29,8 @@ export type StepFunction = (keyof TInput extends [] { ( input: TInput extends object - ? { [K in keyof TInput]: WorkflowData } - : WorkflowData + ? { [K in keyof TInput]: WorkflowData | TInput[K] } + : WorkflowData | TInput ): WorkflowData<{ [K in keyof TOutput]: TOutput[K] }>