UNPKG

@tanstack/solid-start

Version:

Modern and scalable routing for Solid applications

31 lines (30 loc) 1.09 kB
import { SOLID_SERVER_REFERENCE } from "./server-rpc.js"; import { TSS_SERVER_FUNCTION } from "@tanstack/start-client-core"; import { getRequestEvent } from "@solidjs/web"; import { createServerReference } from "@solidjs/web/server-functions/server"; import { getServerFnById } from "#tanstack-start-server-fn-resolver"; //#region src/ssr-rpc.ts var createSsrRpc = (functionId) => { const url = process.env.TSS_SERVER_FN_BASE + functionId; const serverFnMeta = { id: functionId }; let serverFnPromise; const getServerFn = async () => { serverFnPromise ??= getServerFnById(functionId, { origin: "server" }).then((serverFn) => { const solidReference = serverFn[SOLID_SERVER_REFERENCE]; if (solidReference && getRequestEvent()) return createServerReference(solidReference); return serverFn; }); return await serverFnPromise; }; const fn = async (...args) => { return await (await getServerFn())(...args); }; return Object.assign(fn, { url, serverFnMeta, [TSS_SERVER_FUNCTION]: true }); }; //#endregion export { createSsrRpc }; //# sourceMappingURL=ssr-rpc.js.map