feat: add tanstack support#159
Conversation
🦋 Changeset detectedLatest commit: 4b9fdb5 The changes in this PR will be included in the next version bump. Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
4a2f2b3 to
20477c3
Compare
Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>
There was a problem hiding this comment.
Additional Suggestion:
The SvelteKitBuilder constructor hardcodes the dirs array, overriding any custom dirs value passed in the configuration. This prevents users from specifying custom workflow directories through the config interface.
View Details
📝 Patch Details
diff --git a/packages/sveltekit/src/builder.ts b/packages/sveltekit/src/builder.ts
index 531c754..02a7f7c 100644
--- a/packages/sveltekit/src/builder.ts
+++ b/packages/sveltekit/src/builder.ts
@@ -20,7 +20,7 @@ export class SvelteKitBuilder extends BaseBuilder {
super({
...config,
- dirs: ['workflows', 'src/workflows', 'routes', 'src/routes'],
+ dirs: config?.dirs ?? ['workflows', 'src/workflows', 'routes', 'src/routes'],
buildTarget: 'sveltekit' as const,
stepsBundlePath: '', // unused in base
workflowsBundlePath: '', // unused in base
Analysis
SvelteKitBuilder Constructor Ignores Custom dirs Configuration
What fails: The dirs option passed to SvelteKitBuilder constructor is silently ignored because the hardcoded dirs array assignment in the super() call overrides any custom value from the config parameter.
How to trigger: Create a SvelteKitBuilder instance with custom directories:
const builder = new SvelteKitBuilder({ dirs: ['my-workflows', 'custom-dir'] });
// Expected: builder.config.dirs === ['my-workflows', 'custom-dir']
// Actual: builder.config.dirs === ['workflows', 'src/workflows', 'routes', 'src/routes']What happens vs expected: When calling methods like getInputFiles() (inherited from BaseBuilder), only the hardcoded default directories are scanned, making the dirs configuration parameter non-functional. This prevents users from specifying custom workflow directories through the configuration interface.
Root cause: In packages/sveltekit/src/builder.ts line 23, the object property spread (...config) is immediately overridden by an explicit dirs assignment, since JavaScript property assignments that follow a spread operator override the spread's properties.
Fix: Use nullish coalescing to preserve custom dirs while providing defaults:
dirs: config?.dirs ?? ['workflows', 'src/workflows', 'routes', 'src/routes']|
Deployment failed with the following error: |
|
Hey I am interested in this. What's the status for this one? |
|
@andrewdoro I followed the nitro instructions, and it works just fine for me. The only issue I ran into is this #798 |
|
Hey y'all! When I try to follow Nitro instructions for my TanStack Start app, I get the following error (the dev server hangs for 60sec and then spits this out): bun dev
$ bun --bun vite dev
Discovering workflow directives 4570ms
Created intermediate workflow bundle 155ms
Created steps bundle 24ms
Creating webhook route
Creating manifest...
Created manifest with 9 step(s) and 1 workflow(s) 27ms
10:58:08 AM [vite] (client) Re-optimizing dependencies because lockfile has changed
ROLLDOWN-VITE v7.3.1 ready in 6731 ms
➜ Local: http://localhost:3000/
➜ Network: use --host to expose
➜ press h + enter to show help
2026-01-23 10:58:09 [sentry] Sentry initialized on server {}
470 | let id = "", i = size | 0;
471 | for (; i--;) id += "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[Math.random() * 64 | 0];
472 | return id;
473 | };
474 | function reviveInvokeError(e) {
475 | let error = Error(e.message || "Unknown invoke error");
^
error: transport invoke timed out after 60000ms (data: {"type":"custom","event":"vite:invoke","data":{"name":"fetchModule","id":"send:w-829_oRXqv5OQVb6_n3V","data":["file:///Users/cravend/src/app/node_modules/.nitro/workflow/steps.mjs","\u0000virtual:",{"cached":false,"startOffset":2}]}})
at reviveInvokeError (/Users/cravend/src/app/node_modules/.bun/rolldown-vite@7.3.1+909d114dfec580fe/node_modules/rolldown-vite/dist/node/module-runner.js:475:14)
at invoke (/Users/cravend/src/app/node_modules/.bun/rolldown-vite@7.3.1+909d114dfec580fe/node_modules/rolldown-vite/dist/node/module-runner.js:549:11)
471 | for (; i--;) id += "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[Math.random() * 64 | 0];
472 | return id;
473 | };
474 | function reviveInvokeError(e) {
475 | let error = Error(e.message || "Unknown invoke error");
476 | return Object.assign(error, e, { runnerError: /* @__PURE__ */ Error("RunnerError") }), error;
^
error: RunnerError
at reviveInvokeError (/Users/cravend/src/app/node_modules/.bun/rolldown-vite@7.3.1+909d114dfec580fe/node_modules/rolldown-vite/dist/node/module-runner.js:476:64)
at invoke (/Users/cravend/src/app/node_modules/.bun/rolldown-vite@7.3.1+909d114dfec580fe/node_modules/rolldown-vite/dist/node/module-runner.js:549:11)
470 | let id = "", i = size | 0;
471 | for (; i--;) id += "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[Math.random() * 64 | 0];
472 | return id;
473 | };
474 | function reviveInvokeError(e) {
475 | let error = Error(e.message || "Unknown invoke error");
^
error: transport invoke timed out after 60000ms (data: {"type":"custom","event":"vite:invoke","data":{"name":"fetchModule","id":"send:_-Nwpw0pTyO-lwNj5Wi3s","data":["/node_modules/.bun/@tanstack+start-server-core@1.154.12+cf7a91fbc0ade779/node_modules/@tanstack/start-server-core/dist/esm/constants.js","/Users/cravend/src/app/node_modules/.bun/@tanstack+start-server-core@1.154.12+cf7a91fbc0ade779/node_modules/@tanstack/start-server-core/dist/esm/index.js",{"cached":true,"startOffset":2}]}})
at reviveInvokeError (/Users/cravend/src/app/node_modules/.bun/rolldown-vite@7.3.1+909d114dfec580fe/node_modules/rolldown-vite/dist/node/module-runner.js:475:14)
at invoke (/Users/cravend/src/app/node_modules/.bun/rolldown-vite@7.3.1+909d114dfec580fe/node_modules/rolldown-vite/dist/node/module-runner.js:549:11)
471 | for (; i--;) id += "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[Math.random() * 64 | 0];
472 | return id;
473 | };
474 | function reviveInvokeError(e) {
475 | let error = Error(e.message || "Unknown invoke error");
476 | return Object.assign(error, e, { runnerError: /* @__PURE__ */ Error("RunnerError") }), error;
^
error: RunnerError
at reviveInvokeError (/Users/cravend/src/app/node_modules/.bun/rolldown-vite@7.3.1+909d114dfec580fe/node_modules/rolldown-vite/dist/node/module-runner.js:476:64)
at invoke (/Users/cravend/src/app/node_modules/.bun/rolldown-vite@7.3.1+909d114dfec580fe/node_modules/rolldown-vite/dist/node/module-runner.js:549:11)any ideas? What's weird is the first time I ran it, it worked, and then I've been getting this every time since (even on fresh installs, delete all folders, etc). I'm on |
|
Closed in favor of #877 |
adds tanstack support