UNPKG

@tanstack/solid-start

Version:

Modern and scalable routing for Solid applications

33 lines (32 loc) 1.22 kB
import { decodeSolidStartPayload } from "./solid-rpc-payload.js"; import { TSS_SERVER_FUNCTION } from "@tanstack/start-client-core"; import { GET, createServerReference, registerServerReference } from "@solidjs/web/server-functions/server"; //#region src/server-rpc.ts var SOLID_SERVER_REFERENCE = Symbol.for("tanstack.solid-start.server-reference"); var createServerRpc = (serverFnMeta, splitImportFn) => { const url = process.env.TSS_SERVER_FN_BASE + serverFnMeta.id; const solidServerFn = (...args) => { return splitImportFn(decodeSolidStartPayload(args)); }; const reference = registerServerReference(serverFnMeta.id, solidServerFn, serverFnMeta.name); const solidReference = createServerReference(reference); let method = splitImportFn.method; Object.defineProperty(splitImportFn, "method", { configurable: true, enumerable: true, get: () => method, set: (nextMethod) => { method = nextMethod; if (nextMethod === "GET") GET(solidReference); } }); return Object.assign(splitImportFn, { url, serverFnMeta, [SOLID_SERVER_REFERENCE]: reference, [TSS_SERVER_FUNCTION]: true }); }; //#endregion export { SOLID_SERVER_REFERENCE, createServerRpc }; //# sourceMappingURL=server-rpc.js.map