UNPKG

everything-dev

Version:

A consolidated product package for building Module Federation apps with oRPC APIs.

41 lines (39 loc) • 1.29 kB
import { createTanstackQueryUtils } from "@orpc/tanstack-query"; import { useRouter } from "@tanstack/react-router"; import { createRpcClient } from "every-plugin/client"; //#region src/ui/api.ts function createApiClient(config, headers) { return createRpcClient({ hostUrl: config.hostUrl, path: config.rpcBase, connectionError: config.connectionError }, headers); } function createPluginApiClient(pluginKey, config, headers) { return createRpcClient({ hostUrl: config.hostUrl, path: `${config.rpcBase}/${pluginKey}`, connectionError: config.connectionError }, headers); } function createServiceClients(config, keys, headers) { const clients = {}; for (const key of keys) if (key === "api") clients[key] = createApiClient(config, headers); else clients[key] = createPluginApiClient(key, config, headers); return clients; } function useClientContext() { return useRouter().options.context; } function useApiClient() { return useClientContext().apiClient; } function useOrpc() { return createTanstackQueryUtils(useApiClient()); } function usePluginClients() { return useClientContext().pluginClients ?? {}; } //#endregion export { createApiClient, createPluginApiClient, createServiceClients, useApiClient, useOrpc, usePluginClients }; //# sourceMappingURL=api.mjs.map