Files
vercel__workflow/scripts/create-test-matrix.mjs
Peter Wielander bb910f2571 [backport] [workbench] Add TanStack Start workbench (#1875, #1907) (#1914)
* [workbench] Add TanStack Start workbench and tests (#1875)

(cherry picked from commit 8202663857)

* Fix pnpm type issue after tanstack PR (#1907)

(cherry picked from commit a7071bf3d4)
2026-05-04 19:30:39 +00:00

164 lines
4.5 KiB
JavaScript

// Framework-specific dev test configurations
const DEV_TEST_CONFIGS = {
'nextjs-turbopack': {
generatedStepPath: 'app/.well-known/workflow/v1/step/route.js',
generatedWorkflowPath: 'app/.well-known/workflow/v1/flow/route.js',
apiFilePath: 'app/api/chat/route.ts',
apiFileImportPath: '../../..',
},
'nextjs-webpack': {
generatedStepPath: 'app/.well-known/workflow/v1/step/route.js',
generatedWorkflowPath: 'app/.well-known/workflow/v1/flow/route.js',
apiFilePath: 'app/api/chat/route.ts',
apiFileImportPath: '../../..',
},
nitro: {
generatedStepPath: 'node_modules/.nitro/workflow/steps.mjs',
generatedWorkflowPath: 'node_modules/.nitro/workflow/workflows.mjs',
apiFilePath: 'routes/api/chat.post.ts',
apiFileImportPath: '../..',
},
nuxt: {
generatedStepPath: '.nuxt/workflow/steps.mjs',
generatedWorkflowPath: '.nuxt/workflow/workflows.mjs',
apiFilePath: 'server/api/chat.post.ts',
apiFileImportPath: '../..',
},
sveltekit: {
generatedStepPath: 'src/routes/.well-known/workflow/v1/step/+server.js',
generatedWorkflowPath: 'src/routes/.well-known/workflow/v1/flow/+server.js',
apiFilePath: 'src/routes/api/chat/+server.ts',
apiFileImportPath: '../../../..',
workflowsDir: 'src/workflows',
},
vite: {
generatedStepPath: 'node_modules/.nitro/workflow/steps.mjs',
generatedWorkflowPath: 'node_modules/.nitro/workflow/workflows.mjs',
apiFilePath: 'routes/api/chat.post.ts',
apiFileImportPath: '../..',
},
hono: {
generatedStepPath: 'node_modules/.nitro/workflow/steps.mjs',
generatedWorkflowPath: 'node_modules/.nitro/workflow/workflows.mjs',
apiFilePath: './src/index.ts',
apiFileImportPath: '..',
},
express: {
generatedStepPath: 'node_modules/.nitro/workflow/steps.mjs',
generatedWorkflowPath: 'node_modules/.nitro/workflow/workflows.mjs',
apiFilePath: './src/index.ts',
apiFileImportPath: '..',
},
fastify: {
generatedStepPath: 'node_modules/.nitro/workflow/steps.mjs',
generatedWorkflowPath: 'node_modules/.nitro/workflow/workflows.mjs',
apiFilePath: './src/index.ts',
apiFileImportPath: '..',
},
nest: {
generatedStepPath: '.nestjs/workflow/steps.mjs',
generatedWorkflowPath: '.nestjs/workflow/workflows.mjs',
apiFilePath: './src/app.controller.ts',
apiFileImportPath: '..',
workflowsDir: 'src/workflows',
},
astro: {
generatedStepPath: 'src/pages/.well-known/workflow/v1/step.js',
generatedWorkflowPath: 'src/pages/.well-known/workflow/v1/flow.js',
apiFilePath: 'src/pages/api/chat.ts',
apiFileImportPath: '../..',
workflowsDir: 'src/workflows',
},
'tanstack-start': {
generatedStepPath: 'node_modules/.nitro/workflow/steps.mjs',
generatedWorkflowPath: 'node_modules/.nitro/workflow/workflows.mjs',
apiFilePath: 'src/routes/api/chat.ts',
apiFileImportPath: '../../..',
},
};
const matrix = {
app: [
{
name: 'nextjs-turbopack',
project: 'example-nextjs-workflow-turbopack',
...DEV_TEST_CONFIGS['nextjs-turbopack'],
},
{
name: 'nextjs-webpack',
project: 'example-nextjs-workflow-webpack',
...DEV_TEST_CONFIGS['nextjs-webpack'],
},
],
};
const newItems = [];
for (const item of matrix.app) {
newItems.push({ ...item, canary: true });
}
matrix.app.push(...newItems);
// Manually add nitro
matrix.app.push({
name: 'nitro',
project: 'workbench-nitro-workflow',
...DEV_TEST_CONFIGS.nitro,
});
matrix.app.push({
name: 'sveltekit',
project: 'workbench-sveltekit-workflow',
...DEV_TEST_CONFIGS.sveltekit,
});
matrix.app.push({
name: 'nuxt',
project: 'workbench-nuxt-workflow',
...DEV_TEST_CONFIGS.nuxt,
});
matrix.app.push({
name: 'hono',
project: 'workbench-hono-workflow',
...DEV_TEST_CONFIGS.hono,
});
matrix.app.push({
name: 'vite',
project: 'workbench-vite-workflow',
...DEV_TEST_CONFIGS.vite,
});
matrix.app.push({
name: 'express',
project: 'workbench-express-workflow',
...DEV_TEST_CONFIGS.express,
});
matrix.app.push({
name: 'fastify',
project: 'workbench-fastify-workflow',
...DEV_TEST_CONFIGS.fastify,
});
matrix.app.push({
name: 'nest',
project: 'workbench-nest-workflow',
...DEV_TEST_CONFIGS.nest,
});
matrix.app.push({
name: 'astro',
project: 'workbench-astro-workflow',
...DEV_TEST_CONFIGS.astro,
});
matrix.app.push({
name: 'tanstack-start',
project: 'workbench-tanstack-start-workflow',
...DEV_TEST_CONFIGS['tanstack-start'],
});
console.log(JSON.stringify(matrix));