@trpc/openapi
Version:
66 lines (65 loc) • 2.77 kB
text/typescript
import { Plugins } from "@hey-api/openapi-ts";
import { TRPCCombinedDataTransformer, TRPCDataTransformer } from "@trpc/server";
//#region src/heyapi/index.d.ts
type DataTransformerOptions = TRPCDataTransformer | TRPCCombinedDataTransformer;
interface TRPCHeyApiClientOptions {
transformer?: DataTransformerOptions;
}
type HeyAPIResolvers = Plugins.HeyApiTypeScript.Resolvers;
type HeyApiConfig = ReturnType<Plugins.HeyApiClientFetch.Client['getConfig']>;
type TRPCHeyApiClientConfig = Required<Pick<HeyApiConfig, 'querySerializer'>> & Pick<HeyApiConfig, 'bodySerializer' | 'responseTransformer'>;
/**
* Returns the `~resolvers` object for the `@hey-api/typescript` plugin.
*
* Maps `date` and `date-time` string formats to `Date` so that the
* generated SDK uses `Date` instead of `string` for those fields.
*
* @example
* ```ts
* import { createClient } from '@hey-api/openapi-ts';
* import { createTRPCHeyApiTypeResolvers } from '@trpc/openapi/heyapi';
*
* await createClient({
* plugins: [
* { name: '@hey-api/typescript', '~resolvers': createTRPCHeyApiTypeResolvers() },
* ],
* });
* ```
*/
declare function createTRPCHeyApiTypeResolvers(): HeyAPIResolvers;
/**
* @internal - Prefer `configureTRPCHeyApiClient`
*/
declare function createTRPCHeyApiClientConfig(opts?: TRPCHeyApiClientOptions): {
readonly bodySerializer?: ((body: unknown) => string) | undefined;
readonly responseTransformer?: ((data: unknown) => Promise<unknown>) | undefined;
readonly querySerializer: (query: Record<string, unknown>) => string;
};
/**
* @internal - Prefer `configureTRPCHeyApiClient`
*/
declare function createTRPCErrorInterceptor(transformerOpts: DataTransformerOptions): (error: unknown) => unknown;
/**
* Configures a hey-api client for use with a tRPC OpenAPI backend.
*
* Sets up querySerializer, bodySerializer, responseTransformer, and
* an error interceptor (for transformer-based error deserialization)
* in a single call.
*
* @example
* ```ts
* import { configureTRPCHeyApiClient } from '@trpc/openapi/heyapi';
* import superjson from 'superjson';
* import { client } from './generated/client.gen';
*
* configureTRPCHeyApiClient(client, {
* baseUrl: 'http://localhost:3000',
* transformer: superjson,
* });
* ```
*/
declare function configureTRPCHeyApiClient(client: Plugins.HeyApiClientFetch.Client, opts: TRPCHeyApiClientOptions & Omit<HeyApiConfig, keyof TRPCHeyApiClientConfig>): void;
//# sourceMappingURL=index.d.ts.map
//#endregion
export { DataTransformerOptions, HeyAPIResolvers, HeyApiConfig, TRPCHeyApiClientConfig, TRPCHeyApiClientOptions, configureTRPCHeyApiClient, createTRPCErrorInterceptor, createTRPCHeyApiClientConfig, createTRPCHeyApiTypeResolvers };
//# sourceMappingURL=index.d.cts.map