withWorkflow
Configures webpack/turbopack loaders to transform workflow code ("use step"/"use workflow" directives)
Usage
To enable "use step" and "use workflow" directives while developing locally or deploying to production, wrap your nextConfig with withWorkflow.
import { withWorkflow } from "workflow/next";
import type { NextConfig } from "next";
const nextConfig: NextConfig = {
// … rest of your Next.js config
};
// not required but allows configuring workflow options
const workflowConfig = {}
export default withWorkflow(nextConfig, workflowConfig); If you are exporting a function in your next.config you will need to ensure you call the function returned from withWorkflow.
import { NextConfig } from "next";
import { withWorkflow } from "workflow/next";
import createNextIntlPlugin from "next-intl/plugin";
const withNextIntl = createNextIntlPlugin();
export default async function config(
phase: string,
ctx: {
defaultConfig: NextConfig
}
): Promise<NextConfig> {
let nextConfig: NextConfig | typeof config = {};
for (const configModifier of [withNextIntl, withWorkflow]) {
nextConfig = configModifier(nextConfig);
if (typeof nextConfig === "function") {
nextConfig = await nextConfig(phase, ctx);
}
}
return nextConfig;
}Configuration
The second argument to withWorkflow accepts the following options:
workflows.dirs
Directories to scan for workflows and steps. If provided, this completely overrides the defaults.
- Type:
string[] - Default:
['pages', 'app', 'src/pages', 'src/app']
import { withWorkflow } from "workflow/next";
import type { NextConfig } from "next";
const nextConfig: NextConfig = {};
export default withWorkflow(nextConfig, {
workflows: {
dirs: ['workflows', 'src/workflows'],
},
});workflows.local.port
Port for the local workflow server during development.
- Type:
number - Default: Uses the
PORTenvironment variable
workflows.local.dataDir
Directory for storing local workflow data during development.
- Type:
string - Default:
'.next/workflow-data'