everything-dev
Version:
A consolidated product package for building Module Federation apps with oRPC APIs.
31 lines • 1.96 kB
text/typescript
import { ContractRouterClient, RouterContract } from "@orpc/contract";
//#region src/ui/api.d.ts
/**
* Localized copy for the API connection-failure toast — the app's authored
* override seam (ADR 0023). Called at error time, so the implementation may
* resolve the active locale itself.
*/
type ApiConnectionErrorCopy = () => {
title: string;
description: string;
};
/** typed client for the app's default router contract (router-context default) */
type ApiClient<T extends RouterContract = RouterContract> = ContractRouterClient<T>;
interface ClientServiceConfig {
hostUrl: string;
rpcBase: `/${string}`;
connectionError?: ApiConnectionErrorCopy;
}
type ClientRouterContext = {
apiClient?: unknown;
pluginClients?: Record<string, unknown>;
};
declare function createApiClient<T extends RouterContract = RouterContract>(config: ClientServiceConfig, headers?: Headers): ContractRouterClient<T>;
declare function createPluginApiClient<T extends RouterContract = RouterContract>(pluginKey: string, config: ClientServiceConfig, headers?: Headers): ContractRouterClient<T>;
declare function createServiceClients<C extends Record<string, RouterContract>, K extends keyof C & string = keyof C & string>(config: ClientServiceConfig, keys: readonly K[], headers?: Headers): Pick<{ [P in keyof C]: ContractRouterClient<C[P]>; }, K>;
declare function useApiClient<T extends RouterContract = RouterContract>(): ContractRouterClient<T>;
declare function useOrpc<T extends RouterContract = RouterContract>(): import("@orpc/tanstack-query").RouterUtils<ContractRouterClient<T, object>>;
declare function usePluginClients<C extends Record<string, unknown> = Record<string, unknown>>(): C;
//#endregion
export { ApiClient, ApiConnectionErrorCopy, type ClientRouterContext, ClientServiceConfig, type RouterContract, createApiClient, createPluginApiClient, createServiceClients, useApiClient, useOrpc, usePluginClients };
//# sourceMappingURL=api.d.mts.map