workflow-id-matches-export-or-filename - ESLint plugin rules
This rule requires a workflow's ID, the first argument of createWorkflow, to be a kebab-case string that matches the exported workflow name or filename.
Severity#
warn. This rule is enabled in the recommended preset.
What it Targets#
This rule targets files in your project's src/workflows directory. It reports a createWorkflow ID that:
- isn't kebab-case.
- doesn't match the exported workflow name, with a trailing
Workflowsegment stripped. - doesn't match the filename.
The following code is reported by the rule:
import {
createWorkflow,
WorkflowResponse,
} from "@medusajs/framework/workflows-sdk"
export const helloWorldWorkflow = createWorkflow(
"helloWorldWorkflow",
(input) => {
return new WorkflowResponse({ ok: true })
}
)
Instead, use a kebab-case ID that matches the workflow name:
import {
createWorkflow,
WorkflowResponse,
} from "@medusajs/framework/workflows-sdk"
export const helloWorldWorkflow = createWorkflow(
"hello-world",
(input) => {
return new WorkflowResponse({ ok: true })
}
)
Why it's Important
Using a consistent, kebab-case ID that matches the workflow's exported name or filename makes workflows easier to identify and reference.
Learn more in the Workflows documentation.
Fixable#
This rule is auto-fixable. Run the linter with the --fix option to apply the fix automatically.
Turn it Off#
To turn off this rule, set it to off in your ESLint configuration:
import { defineConfig } from "eslint/config"
import medusa from "@medusajs/eslint-plugin"
export default defineConfig([
...medusa.configs.recommended,
{
rules: {
"@medusajs/workflow-id-matches-export-or-filename": "off",
},
},
])
Or disable it for a single line using an inline comment:
// eslint-disable-next-line @medusajs/workflow-id-matches-export-or-filename
export const helloWorldWorkflow = createWorkflow(