no-if-in-workflow-constructor - ESLint plugin rules
This rule disallows if and else statements directly inside a createWorkflow constructor or a when().then() callback.
Severity#
error. This rule is enabled in the recommended preset.
What it Targets#
This rule targets files in your project's src/workflows directory. It reports if statements placed directly in a workflow's constructor or in a when().then() callback.
The following code is reported by the rule:
Instead, use when(...).then(...) to conditionally execute steps:
1import {2 createWorkflow,3 when,4 WorkflowResponse,5} from "@medusajs/framework/workflows-sdk"6 7createWorkflow("my-workflow", (input) => {8 const result = when(9 { input },10 (data) => !!data.input11 ).then(() => {12 return doSomethingStep()13 })14 15 return new WorkflowResponse(result)16})
Why it's Important#
A workflow's constructor and callbacks run at definition time, not execution time. So, an statement evaluates against placeholder values and doesn't behave as you might expect. Use to conditionally execute steps.
Learn more in the Conditions in Workflows documentation.
Fixable#
This rule isn't auto-fixable.
Was this page helpful?