UNPKG

@tanstack/solid-start

Version:

Modern and scalable routing for Solid applications

30 lines (29 loc) 1.17 kB
import { encodeSolidStartPayload } from "./solid-rpc-payload.js"; import { getSolidStartServerFunctionCodec } from "./solid-rpc-codec.js"; import { subscribeSolidStartFlightData } from "./solid-rpc-flight-client.js"; import { TSS_SERVER_FUNCTION } from "@tanstack/start-client-core"; import { GET, configureServerFunctionsClient, createServerReference } from "@solidjs/web/server-functions/client"; //#region src/client-rpc.ts function createClientRpc(functionId) { subscribeSolidStartFlightData(); const endpoint = process.env.TSS_SERVER_FN_BASE; const url = endpoint + functionId; const serverFnMeta = { id: functionId }; configureServerFunctionsClient({ endpoint, codec: getSolidStartServerFunctionCodec() }); const solidReference = createServerReference(functionId, void 0, endpoint); const solidGetReference = GET(solidReference); const clientFn = (...args) => { return (args[0]?.method === "GET" ? solidGetReference : solidReference)(...encodeSolidStartPayload(args)); }; return Object.assign(clientFn, { url, serverFnMeta, [TSS_SERVER_FUNCTION]: true }); } //#endregion export { createClientRpc }; //# sourceMappingURL=client-rpc.js.map