diff --git a/docs/content/docs/getting-started/express.mdx b/docs/content/docs/getting-started/express.mdx index ce6176e6c..14d54d3a6 100644 --- a/docs/content/docs/getting-started/express.mdx +++ b/docs/content/docs/getting-started/express.mdx @@ -29,7 +29,7 @@ Initialize the project: npm init --y ``` -### Install `workflow`, `express` and `nitro` +### Install `workflow`, `express`, `nitro`, and `rollup` ```package-install npm i workflow express nitro rollup @@ -50,13 +50,13 @@ npm i -D @types/express Create a new file `nitro.config.ts` for your Nitro configuration with module `workflow/nitro`. This enables usage of the `"use workflow"` and `"use step"` directives. ```typescript title="nitro.config.ts" lineNumbers -import { defineNitroConfig } from 'nitro/config'; +import { defineNitroConfig } from "nitro/config"; export default defineNitroConfig({ - modules: ['workflow/nitro'], - vercel: { entryFormat: 'node' }, + modules: ["workflow/nitro"], + vercel: { entryFormat: "node" }, routes: { - '/**': { handler: './src/index.ts', format: "node" }, + '/**': { handler: './src/index.ts', format: 'node' }, }, }); ``` @@ -193,7 +193,6 @@ To invoke your new workflow, we'll create both the Express app and a new API rou ```typescript title="src/index.ts" import express from "express"; -import { fromNodeHandler, type NodeMiddleware } from "nitro/h3"; import { start } from "workflow/api"; import { handleUserSignup } from "../workflows/user-signup.js"; @@ -206,7 +205,7 @@ app.post("/api/signup", async (req, res) => { return res.json({ message: "User signup workflow started" }); }); -export default fromNodeHandler(app as NodeMiddleware); +export default app; ``` This route handler creates a `POST` request endpoint at `/api/signup` that will trigger your workflow. diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 98219af1b..6d325f55d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -36,12 +36,6 @@ catalogs: nitro: specifier: 3.0.1-alpha.1 version: 3.0.1-alpha.1 - typescript: - specifier: ^5.9.3 - version: 5.9.3 - vitest: - specifier: ^3.2.4 - version: 3.2.4 zod: specifier: 4.1.11 version: 4.1.11 @@ -1194,9 +1188,6 @@ importers: nitro: specifier: 'catalog:' version: 3.0.1-alpha.1(@netlify/blobs@9.1.2)(@vercel/functions@3.1.4(@aws-sdk/credential-provider-web-identity@3.844.0))(better-sqlite3@11.10.0)(chokidar@4.0.3)(drizzle-orm@0.44.7(@opentelemetry/api@1.9.0)(better-sqlite3@11.10.0)(pg@8.16.3)(postgres@3.4.7))(ioredis@5.8.2)(lru-cache@11.2.2)(rollup@4.53.2)(vite@7.1.12(@types/node@24.6.2)(jiti@2.6.1)(lightningcss@1.30.1)(terser@5.44.0)(tsx@4.20.6)(yaml@2.8.1)) - srvx: - specifier: ^0.9.2 - version: 0.9.6 devDependencies: '@types/express': specifier: ^5.0.5 @@ -18652,7 +18643,7 @@ snapshots: dependencies: bytes: 3.1.2 content-type: 1.0.5 - debug: 4.4.3(supports-color@8.1.1) + debug: 4.4.3 http-errors: 2.0.0 iconv-lite: 0.6.3 on-finished: 2.4.1 @@ -19396,6 +19387,10 @@ snapshots: better-sqlite3: 11.10.0 drizzle-orm: 0.44.7(@opentelemetry/api@1.9.0)(better-sqlite3@11.10.0)(pg@8.16.3)(postgres@3.4.7) + debug@4.4.3: + dependencies: + ms: 2.1.3 + debug@4.4.3(supports-color@8.1.1): dependencies: ms: 2.1.3 @@ -20014,7 +20009,7 @@ snapshots: content-type: 1.0.5 cookie: 0.7.2 cookie-signature: 1.2.2 - debug: 4.4.3(supports-color@8.1.1) + debug: 4.4.3 encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 @@ -20138,7 +20133,7 @@ snapshots: finalhandler@2.1.0: dependencies: - debug: 4.4.3(supports-color@8.1.1) + debug: 4.4.3 encodeurl: 2.0.0 escape-html: 1.0.3 on-finished: 2.4.1 @@ -20839,7 +20834,7 @@ snapshots: dependencies: '@ioredis/commands': 1.4.0 cluster-key-slot: 1.1.2 - debug: 4.4.3(supports-color@8.1.1) + debug: 4.4.3 denque: 2.1.0 lodash.defaults: 4.2.0 lodash.isarguments: 3.1.0 @@ -24132,7 +24127,7 @@ snapshots: router@2.2.0: dependencies: - debug: 4.4.3(supports-color@8.1.1) + debug: 4.4.3 depd: 2.0.0 is-promise: 4.0.0 parseurl: 1.3.3 @@ -24189,7 +24184,7 @@ snapshots: send@1.2.0: dependencies: - debug: 4.4.3(supports-color@8.1.1) + debug: 4.4.3 encodeurl: 2.0.0 escape-html: 1.0.3 etag: 1.8.1 diff --git a/workbench/express/nitro.config.ts b/workbench/express/nitro.config.ts index 8e89eea15..175d1ace4 100644 --- a/workbench/express/nitro.config.ts +++ b/workbench/express/nitro.config.ts @@ -4,7 +4,7 @@ export default defineNitroConfig({ modules: ['workflow/nitro'], vercel: { entryFormat: 'node' }, routes: { - '/**': './src/index.ts', + '/**': { handler: './src/index.ts', format: 'node' }, }, plugins: ['plugins/start-pg-world.ts'], }); diff --git a/workbench/express/package.json b/workbench/express/package.json index c4435e698..ba9ce1bf1 100644 --- a/workbench/express/package.json +++ b/workbench/express/package.json @@ -15,12 +15,11 @@ }, "dependencies": { "express": "^5.1.0", - "nitro": "catalog:", - "srvx": "^0.9.2" + "nitro": "catalog:" }, "devDependencies": { - "@workflow/world-postgres": "workspace:*", "@types/express": "^5.0.5", + "@workflow/world-postgres": "workspace:*", "ai": "catalog:", "lodash.chunk": "^4.2.0", "openai": "^6.1.0", diff --git a/workbench/express/src/index.ts b/workbench/express/src/index.ts index b459fbbf3..76ed45078 100644 --- a/workbench/express/src/index.ts +++ b/workbench/express/src/index.ts @@ -1,5 +1,4 @@ import express from 'express'; -import { toFetchHandler } from 'srvx/node'; import { getHookByToken, getRun, resumeHook, start } from 'workflow/api'; import { hydrateWorkflowArguments } from 'workflow/internal/serialization'; import { allWorkflows } from '../_workflows.js'; @@ -221,4 +220,4 @@ app.post('/api/test-direct-step-call', async (req, res) => { return res.json({ result }); }); -export default toFetchHandler(app as any); +export default app;