everything-dev
Version:
A consolidated product package for building Module Federation apps with oRPC APIs.
41 lines (39 loc) • 1.29 kB
JavaScript
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