From f96f8bd6135378213d809dfedf64f4046857dd05 Mon Sep 17 00:00:00 2001 From: "Alexis H. Munsayac" Date: Sat, 4 Apr 2026 22:55:03 +0800 Subject: [PATCH 1/6] 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 b14146f32d6a3076e0396f07d0645fac18d0e78a Mon Sep 17 00:00:00 2001 From: "Alexis H. Munsayac" Date: Sat, 4 Apr 2026 22:59:16 +0800 Subject: [PATCH 2/6] 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 e3dc2d15729f8d0dfeae9f21fbf113f47895a9aa Mon Sep 17 00:00:00 2001 From: "Alexis H. Munsayac" Date: Sat, 4 Apr 2026 23:00:31 +0800 Subject: [PATCH 3/6] Fix paths again --- packages/start/src/fns/handler.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/start/src/fns/handler.ts b/packages/start/src/fns/handler.ts index 46fb65d55..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"; +} 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 6d262716ee7bf18661cbee86da4ed0adbafbcaa7 Mon Sep 17 00:00:00 2001 From: "Alexis H. Munsayac" Date: Sat, 4 Apr 2026 23:02:03 +0800 Subject: [PATCH 4/6] 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 e3f75341e..21cf61bc1 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 3b0609db9..c67ba8193 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 1649b0095062144653a1d317a045c451e3e7f33d Mon Sep 17 00:00:00 2001 From: "Alexis H. Munsayac" Date: Sat, 4 Apr 2026 23:06:46 +0800 Subject: [PATCH 5/6] 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 8e778228ae8e26b84a44a91d8ebe7ab7fb99704d Mon Sep 17 00:00:00 2001 From: "Alexis H. Munsayac" Date: Sun, 5 Apr 2026 00:37:53 +0800 Subject: [PATCH 6/6] 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";