{"version":3,"file":"createSsrRpc.js","sources":["../../src/createSsrRpc.ts"],"sourcesContent":["import { TSS_SERVER_FUNCTION } from '@tanstack/start-client-core'\nimport { getServerFnById } from './getServerFnById'\nimport type { ClientFnMeta } from '@tanstack/start-client-core'\nimport type { ServerFn } from '#tanstack-start-server-fn-resolver'\n\nexport type SsrRpcImporter = () => Promise<ServerFn>\n\nexport const createSsrRpc = (functionId: string, importer?: SsrRpcImporter) => {\n  const url = process.env.TSS_SERVER_FN_BASE + functionId\n  const serverFnMeta: ClientFnMeta = { id: functionId }\n\n  const fn = async (...args: Array<any>): Promise<any> => {\n    // If an importer is provided, use it directly (server-to-server call within the SSR environment)\n    // Otherwise, fall back to manifest lookup (client-to-server call, server functions that are only referenced on the server or if the provider environment is not SSR)\n    const serverFn = importer\n      ? await importer()\n      : await getServerFnById(functionId)\n    return serverFn(...args)\n  }\n\n  return Object.assign(fn, {\n    url,\n    serverFnMeta,\n    [TSS_SERVER_FUNCTION]: true,\n  })\n}\n"],"names":[],"mappings":";;AAOO,MAAM,eAAe,CAAC,YAAoB,aAA8B;AAC7E,QAAM,MAAM,QAAQ,IAAI,qBAAqB;AAC7C,QAAM,eAA6B,EAAE,IAAI,WAAA;AAEzC,QAAM,KAAK,UAAU,SAAmC;AAGtD,UAAM,WAAW,WACb,MAAM,aACN,MAAM,gBAAgB,UAAU;AACpC,WAAO,SAAS,GAAG,IAAI;AAAA,EACzB;AAEA,SAAO,OAAO,OAAO,IAAI;AAAA,IACvB;AAAA,IACA;AAAA,IACA,CAAC,mBAAmB,GAAG;AAAA,EAAA,CACxB;AACH;"}