From 8e6ad3c9772af11cade3c7867bb63564e1aa6712 Mon Sep 17 00:00:00 2001 From: "Alexis H. Munsayac" Date: Sat, 4 Apr 2026 22:55:03 +0800 Subject: [PATCH 1/7] move files --- packages/start/src/{server/server-runtime.ts => fns/client.ts} | 0 packages/start/src/{server => fns}/serialization.ts | 0 .../start/src/{server/server-fns-runtime.ts => fns/server.ts} | 0 .../src/{server/server-functions-shared.ts => fns/shared.ts} | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename packages/start/src/{server/server-runtime.ts => fns/client.ts} (100%) rename packages/start/src/{server => fns}/serialization.ts (100%) rename packages/start/src/{server/server-fns-runtime.ts => fns/server.ts} (100%) rename packages/start/src/{server/server-functions-shared.ts => fns/shared.ts} (100%) diff --git a/packages/start/src/server/server-runtime.ts b/packages/start/src/fns/client.ts similarity index 100% rename from packages/start/src/server/server-runtime.ts rename to packages/start/src/fns/client.ts diff --git a/packages/start/src/server/serialization.ts b/packages/start/src/fns/serialization.ts similarity index 100% rename from packages/start/src/server/serialization.ts rename to packages/start/src/fns/serialization.ts diff --git a/packages/start/src/server/server-fns-runtime.ts b/packages/start/src/fns/server.ts similarity index 100% rename from packages/start/src/server/server-fns-runtime.ts rename to packages/start/src/fns/server.ts diff --git a/packages/start/src/server/server-functions-shared.ts b/packages/start/src/fns/shared.ts similarity index 100% rename from packages/start/src/server/server-functions-shared.ts rename to packages/start/src/fns/shared.ts From 96e0e8f1eb58a812499aeb0338b1eb4ad4950f2e Mon Sep 17 00:00:00 2001 From: "Alexis H. Munsayac" Date: Sat, 4 Apr 2026 22:59:16 +0800 Subject: [PATCH 2/7] update stuff --- packages/start/src/fns/client.ts | 2 +- .../server-functions-handler.spec.ts => fns/handler.spec.ts} | 0 .../src/{server/server-functions-handler.ts => fns/handler.ts} | 0 .../start/src/{server/server-fns.ts => fns/registration.ts} | 0 packages/start/src/fns/server.ts | 2 +- 5 files changed, 2 insertions(+), 2 deletions(-) rename packages/start/src/{server/server-functions-handler.spec.ts => fns/handler.spec.ts} (100%) rename packages/start/src/{server/server-functions-handler.ts => fns/handler.ts} (100%) rename packages/start/src/{server/server-fns.ts => fns/registration.ts} (100%) diff --git a/packages/start/src/fns/client.ts b/packages/start/src/fns/client.ts index 8b1f9fdf8..c50fb21f9 100644 --- a/packages/start/src/fns/client.ts +++ b/packages/start/src/fns/client.ts @@ -8,7 +8,7 @@ import { BodyFormat, extractBody, getHeadersAndBody, -} from "./server-functions-shared.ts"; +} from "./shared.ts"; let INSTANCE = 0; diff --git a/packages/start/src/server/server-functions-handler.spec.ts b/packages/start/src/fns/handler.spec.ts similarity index 100% rename from packages/start/src/server/server-functions-handler.spec.ts rename to packages/start/src/fns/handler.spec.ts diff --git a/packages/start/src/server/server-functions-handler.ts b/packages/start/src/fns/handler.ts similarity index 100% rename from packages/start/src/server/server-functions-handler.ts rename to packages/start/src/fns/handler.ts diff --git a/packages/start/src/server/server-fns.ts b/packages/start/src/fns/registration.ts similarity index 100% rename from packages/start/src/server/server-fns.ts rename to packages/start/src/fns/registration.ts diff --git a/packages/start/src/fns/server.ts b/packages/start/src/fns/server.ts index a60ce3c7d..de6ecd8a8 100644 --- a/packages/start/src/fns/server.ts +++ b/packages/start/src/fns/server.ts @@ -1,6 +1,6 @@ import { getRequestEvent } from "solid-js/web"; import { provideRequestEvent } from "solid-js/web/storage"; -import { registerServerFunction } from "./server-fns.ts"; +import { registerServerFunction } from "./registration.ts"; interface Registration { id: string; From 5bf8d8990d02686cef2b29bcb1ab57b00258e96d Mon Sep 17 00:00:00 2001 From: "Alexis H. Munsayac" Date: Sat, 4 Apr 2026 23:00:31 +0800 Subject: [PATCH 3/7] Fix paths again --- packages/start/src/fns/handler.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/start/src/fns/handler.ts b/packages/start/src/fns/handler.ts index 0bde2b4be..53c821476 100644 --- a/packages/start/src/fns/handler.ts +++ b/packages/start/src/fns/handler.ts @@ -4,8 +4,8 @@ import { sharedConfig } from "solid-js"; import { renderToString } from "solid-js/web"; import { provideRequestEvent } from "solid-js/web/storage"; -import { getFetchEvent, mergeResponseHeaders } from "./fetchEvent.ts"; -import { createPageEvent } from "./handler.ts"; +import { getFetchEvent, mergeResponseHeaders } from "../server/fetchEvent.ts"; +import { createPageEvent } from "../server/handler.ts"; import { deserializeFromJSONString, serializeToJSONStream, @@ -16,12 +16,12 @@ import { BodyFormat, extractBody, getHeadersAndBody, -} from "./server-functions-shared.ts"; -import "solid-start:server-fn-manifest"; +} from "./shared.ts"; +import "solidstart:server-fn-manifest"; -import { getServerFunction } from "./server-fns.ts"; -import type { FetchEvent, PageEvent } from "./types.ts"; -import { getExpectedRedirectStatus } from "./util.ts"; +import { getServerFunction } from "./registration.ts"; +import type { FetchEvent, PageEvent } from "../server/types.ts"; +import { getExpectedRedirectStatus } from "../server/util.ts"; export async function handleServerFunction(h3Event: H3Event) { const event = getFetchEvent(h3Event); From b5cea25740702d08efb44b68e12332993e98e9cc Mon Sep 17 00:00:00 2001 From: "Alexis H. Munsayac" Date: Sat, 4 Apr 2026 23:02:03 +0800 Subject: [PATCH 4/7] Fix subpath --- packages/start/package.json | 8 ++++++-- packages/start/src/server/handler.ts | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/start/package.json b/packages/start/package.json index 6fc06bcc4..aa99a5fdf 100644 --- a/packages/start/package.json +++ b/packages/start/package.json @@ -19,7 +19,9 @@ "./client/spa": "./src/client/spa/index.tsx", "./middleware": "./src/middleware/index.ts", "./http": "./src/http/index.ts", - "./env": "./env.d.ts" + "./env": "./env.d.ts", + "./fns/server": "./src/fns/server.ts", + "./fns/client": "./src/fns/client.ts" }, "publishConfig": { "access": "public", @@ -33,7 +35,9 @@ "./client/spa": "./dist/client/spa/index.jsx", "./middleware": "./dist/middleware/index.js", "./http": "./dist/http/index.js", - "./env": "./env.d.ts" + "./env": "./env.d.ts", + "./fns/server": "./dist/fns/server.js", + "./fns/client": "./dist/fns/client.js" } }, "dependencies": { diff --git a/packages/start/src/server/handler.ts b/packages/start/src/server/handler.ts index fb703ccc2..9b1c9f218 100644 --- a/packages/start/src/server/handler.ts +++ b/packages/start/src/server/handler.ts @@ -9,7 +9,7 @@ import { createRoutes } from "../router.tsx"; import { decorateHandler, decorateMiddleware } from "./fetchEvent.ts"; import { getSsrManifest } from "./manifest/ssr-manifest.ts"; import { matchAPIRoute } from "./routes.ts"; -import { handleServerFunction } from "./server-functions-handler.ts"; +import { handleServerFunction } from "../fns/handler.ts"; import type { APIEvent, FetchEvent, HandlerOptions, PageEvent } from "./types.ts"; import { getExpectedRedirectStatus } from "./util.ts"; From 7ed459127ed57d00003821ab08c3732099bdf887 Mon Sep 17 00:00:00 2001 From: "Alexis H. Munsayac" Date: Sat, 4 Apr 2026 23:06:46 +0800 Subject: [PATCH 5/7] Add `serverFunctions` option --- packages/start/src/config/index.ts | 14 ++++++-------- packages/start/src/directives/index.ts | 1 + 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/packages/start/src/config/index.ts b/packages/start/src/config/index.ts index cf0f10a3f..419563687 100644 --- a/packages/start/src/config/index.ts +++ b/packages/start/src/config/index.ts @@ -4,10 +4,10 @@ import { extname, isAbsolute, join } from "node:path"; import { fileURLToPath } from "node:url"; import { normalizePath, type PluginOption } from "vite"; import solid, { type Options as SolidOptions } from "vite-plugin-solid"; -import { serverFunctionsPlugin } from "../directives/index.ts"; +import { ServerFunctionsOptions, serverFunctionsPlugin } from "../directives/index.ts"; import { DEFAULT_EXTENSIONS, VIRTUAL_MODULES, VITE_ENVIRONMENTS } from "./constants.ts"; import { devServer } from "./dev-server.ts"; -import { type EnvPluginOptions, envPlugin } from "./env.ts"; +import { envPlugin, type EnvPluginOptions } from "./env.ts"; import { SolidStartClientFileRouter, SolidStartServerFileRouter } from "./fs-router.ts"; import { fsRoutes } from "./fs-routes/index.ts"; import type { BaseFileSystemRouter } from "./fs-routes/router.ts"; @@ -33,6 +33,7 @@ export interface SolidStartOptions { mode?: "js" | "json"; }; env?: EnvPluginOptions; + serverFunctions?: Pick; } const absolute = (path: string, root: string) => @@ -182,13 +183,10 @@ export function solidStart(options?: SolidStartOptions): Array { serverFunctionsPlugin({ manifest: VIRTUAL_MODULES.serverFnManifest, runtime: { - server: normalizePath( - fileURLToPath(new URL("../server/server-fns-runtime.ts", import.meta.url)), - ), - client: normalizePath( - fileURLToPath(new URL("../server/server-runtime.ts", import.meta.url)), - ), + server: '@solidjs/start/fns/server', + client: '@solidjs/start/fns/client', }, + filter: options?.serverFunctions?.filter, }), { name: "solid-start:virtual-modules", diff --git a/packages/start/src/directives/index.ts b/packages/start/src/directives/index.ts index 009756d37..0219fe346 100644 --- a/packages/start/src/directives/index.ts +++ b/packages/start/src/directives/index.ts @@ -113,6 +113,7 @@ function invalidateModules( } } + export function serverFunctionsPlugin(options: ServerFunctionsOptions): Plugin[] { const filter = createFilter( options.filter?.include || DEFAULT_INCLUDE, From 80ce7e186d2285a171f1f9c5f070ce9d0a49351b Mon Sep 17 00:00:00 2001 From: "Alexis H. Munsayac" Date: Sun, 5 Apr 2026 00:37:53 +0800 Subject: [PATCH 6/7] Update index.ts --- packages/start/src/config/index.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/start/src/config/index.ts b/packages/start/src/config/index.ts index 419563687..32f309011 100644 --- a/packages/start/src/config/index.ts +++ b/packages/start/src/config/index.ts @@ -1,10 +1,9 @@ import { defu } from "defu"; import { globSync } from "node:fs"; import { extname, isAbsolute, join } from "node:path"; -import { fileURLToPath } from "node:url"; -import { normalizePath, type PluginOption } from "vite"; +import type { PluginOption } from "vite"; import solid, { type Options as SolidOptions } from "vite-plugin-solid"; -import { ServerFunctionsOptions, serverFunctionsPlugin } from "../directives/index.ts"; +import { type ServerFunctionsOptions, serverFunctionsPlugin } from "../directives/index.ts"; import { DEFAULT_EXTENSIONS, VIRTUAL_MODULES, VITE_ENVIRONMENTS } from "./constants.ts"; import { devServer } from "./dev-server.ts"; import { envPlugin, type EnvPluginOptions } from "./env.ts"; From 224e6ec79a6c71ab0a8749b119f17fd757b91acc Mon Sep 17 00:00:00 2001 From: Katja Lutz Date: Fri, 8 May 2026 20:00:25 +0200 Subject: [PATCH 7/7] fix: use proper id for server-fn manifest import --- packages/start/src/fns/handler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/start/src/fns/handler.ts b/packages/start/src/fns/handler.ts index 53c821476..8f21cf740 100644 --- a/packages/start/src/fns/handler.ts +++ b/packages/start/src/fns/handler.ts @@ -17,7 +17,7 @@ import { extractBody, getHeadersAndBody, } from "./shared.ts"; -import "solidstart:server-fn-manifest"; +import "solid-start:server-fn-manifest"; import { getServerFunction } from "./registration.ts"; import type { FetchEvent, PageEvent } from "../server/types.ts";