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.

next.config.ts
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.

next.config.ts
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']
next.config.ts
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 PORT environment variable

workflows.local.dataDir

Directory for storing local workflow data during development.

  • Type: string
  • Default: '.next/workflow-data'

On this page

GitHubEdit this page on GitHub