@tanstack/solid-start
Version:
Modern and scalable routing for Solid applications
30 lines (29 loc) • 1.17 kB
JavaScript
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