workflow
Version:
Workflow DevKit - Build durable, resilient, and observable workflows
57 lines (43 loc) • 1.72 kB
text/mdx
---
title: withWorkflow
description: Configure webpack/turbopack to transform workflow directives in Next.js.
type: reference
summary: Wrap your Next.js config with withWorkflow to enable workflow directive transformation.
prerequisites:
- /docs/getting-started/next
---
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`.
```typescript title="next.config.ts" lineNumbers
import { withWorkflow } from "workflow/next"; // [!code highlight]
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); // [!code highlight]
```
If you are exporting a function in your `next.config` you will need to ensure you call the function returned from `withWorkflow`.
```typescript title="next.config.ts" lineNumbers
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;
}
```