UNPKG

@trpc/openapi

Version:

OpenAPI document generator for tRPC routers

66 lines (65 loc) 2.77 kB
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