@trpc/openapi 11.18.1-canary.9 → 11.19.0-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,14 +1,13 @@
1
1
  import { Plugins } from "@hey-api/openapi-ts";
2
2
  import { TRPCCombinedDataTransformer, TRPCDataTransformer } from "@trpc/server";
3
-
4
3
  //#region src/heyapi/index.d.ts
5
- type DataTransformerOptions = TRPCDataTransformer | TRPCCombinedDataTransformer;
6
- interface TRPCHeyApiClientOptions {
4
+ export type DataTransformerOptions = TRPCDataTransformer | TRPCCombinedDataTransformer;
5
+ export interface TRPCHeyApiClientOptions {
7
6
  transformer?: DataTransformerOptions;
8
7
  }
9
- type HeyAPIResolvers = Plugins.HeyApiTypeScript.Resolvers;
10
- type HeyApiConfig = ReturnType<Plugins.HeyApiClientFetch.Client['getConfig']>;
11
- type TRPCHeyApiClientConfig = Required<Pick<HeyApiConfig, 'querySerializer'>> & Pick<HeyApiConfig, 'bodySerializer' | 'responseTransformer'>;
8
+ export type HeyAPIResolvers = Plugins.HeyApiTypeScript.Resolvers;
9
+ export type HeyApiConfig = ReturnType<Plugins.HeyApiClientFetch.Client['getConfig']>;
10
+ export type TRPCHeyApiClientConfig = Required<Pick<HeyApiConfig, 'querySerializer'>> & Pick<HeyApiConfig, 'bodySerializer' | 'responseTransformer'>;
12
11
  /**
13
12
  * Returns the `~resolvers` object for the `@hey-api/typescript` plugin.
14
13
  *
@@ -27,11 +26,11 @@ type TRPCHeyApiClientConfig = Required<Pick<HeyApiConfig, 'querySerializer'>> &
27
26
  * });
28
27
  * ```
29
28
  */
30
- declare function createTRPCHeyApiTypeResolvers(): HeyAPIResolvers;
29
+ export declare function createTRPCHeyApiTypeResolvers(): HeyAPIResolvers;
31
30
  /**
32
31
  * @internal - Prefer `configureTRPCHeyApiClient`
33
32
  */
34
- declare function createTRPCHeyApiClientConfig(opts?: TRPCHeyApiClientOptions): {
33
+ export declare function createTRPCHeyApiClientConfig(opts?: TRPCHeyApiClientOptions): {
35
34
  readonly bodySerializer?: ((body: unknown) => string) | undefined;
36
35
  readonly responseTransformer?: ((data: unknown) => Promise<unknown>) | undefined;
37
36
  readonly querySerializer: (query: Record<string, unknown>) => string;
@@ -39,7 +38,7 @@ declare function createTRPCHeyApiClientConfig(opts?: TRPCHeyApiClientOptions): {
39
38
  /**
40
39
  * @internal - Prefer `configureTRPCHeyApiClient`
41
40
  */
42
- declare function createTRPCErrorInterceptor(transformerOpts: DataTransformerOptions): (error: unknown) => unknown;
41
+ export declare function createTRPCErrorInterceptor(transformerOpts: DataTransformerOptions): (error: unknown) => unknown;
43
42
  /**
44
43
  * Configures a hey-api client for use with a tRPC OpenAPI backend.
45
44
  *
@@ -59,8 +58,6 @@ declare function createTRPCErrorInterceptor(transformerOpts: DataTransformerOpti
59
58
  * });
60
59
  * ```
61
60
  */
62
- declare function configureTRPCHeyApiClient(client: Plugins.HeyApiClientFetch.Client, opts: TRPCHeyApiClientOptions & Omit<HeyApiConfig, keyof TRPCHeyApiClientConfig>): void;
63
- //# sourceMappingURL=index.d.ts.map
61
+ export declare function configureTRPCHeyApiClient(client: Plugins.HeyApiClientFetch.Client, opts: TRPCHeyApiClientOptions & Omit<HeyApiConfig, keyof TRPCHeyApiClientConfig>): void;
64
62
  //#endregion
65
- export { DataTransformerOptions, HeyAPIResolvers, HeyApiConfig, TRPCHeyApiClientConfig, TRPCHeyApiClientOptions, configureTRPCHeyApiClient, createTRPCErrorInterceptor, createTRPCHeyApiClientConfig, createTRPCHeyApiTypeResolvers };
66
63
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/heyapi/index.ts"],"sourcesContent":[],"mappings":";;;;KAMY,sBAAA,GACR,sBACA;UACa,uBAAA;EAHL,WAAA,CAAA,EAII,sBAJkB;;AAC9B,KAMQ,eAAA,GAAkB,OAAA,CAAQ,gBAAA,CAAiB,SANnD;AACA,KAOQ,YAAA,GAAe,UAPvB,CAQF,OAAA,CAAQ,iBAAA,CAAkB,MARxB,CAAA,WAAA,CAAA,CAAA;AAA2B,KAWnB,sBAAA,GAAyB,QAXN,CAY7B,IAZ6B,CAYxB,YAZwB,EAAA,iBAAA,CAAA,CAAA,GAc7B,IAd6B,CAcxB,YAdwB,EAAA,gBAAA,GAAA,qBAAA,CAAA;AAC/B;AAIA;AAEA;;;;AAAqC;AAIrC;;;;;;;AAGM;AA6BN;AAoBA;;AAAoD,iBApBpC,6BAAA,CAAA,CAoBoC,EApBH,eAoBG;;;AAMjB;AA2CnB,iBAjDA,4BAAA,CAkDG,IAAsB,CAAtB,EAlDiC,uBAkDX,CAAA,EAAA;EAgCzB,SAAA,cAAA,CAAA,EAAA,CAAA,CAAyB,IAAA,EAAA,OAAA,EAAA,GAAA,MAAA,CAAA,GAAA,SAAA;EAAA,SAAA,mBAAA,CAAA,EAAA,CAAA,CAAA,IAAA,EAAA,OAAA,EAAA,GAlDM,OAkDN,CAAA,OAAA,CAAA,CAAA,GAAA,SAAA;EAAA,SAC/B,eAAQ,EAAA,CAAA,KAAkB,EA7EP,MA6EO,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,GAAA,MAAA;CAAM;;;;AAElC,iBApCQ,0BAAA,CAoCR,eAAA,EAnCW,sBAmCX,CAAA,EAAA,CAAA,KAAA,EAAA,OAAA,EAAA,GAAA,OAAA;;;;;;;;;;;;;;;;;;;;iBAHQ,yBAAA,SACN,OAAA,CAAQ,iBAAA,CAAkB,cAC5B,0BACJ,KAAK,oBAAoB"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/heyapi/index.ts"],"mappings":";;;YAMY,yBACV,sBAAsB;iBACP;EACf,cAAc;;YAGJ,kBAAkB,QAAQ,iBAAiB;YAE3C,eAAe,WACzB,QAAQ,kBAAkB;YAGhB,yBAAyB,SACnC,KAAK,oCAEL,KAAK;;;;;;;;;;;;;;;;;;;wBA6BS,iCAAiC;;;;wBAoBjC,6BAA6B,OAAO;WA4BvB,mBAAA;WAIW,wBAAA,kBAAO;WA1BlB,kBAAA,OAAA;;;;;wBA2Cb,2BACd,iBAAiB,0BAGT;;;;;;;;;;;;;;;;;;;;wBA6BM,0BACd,QAAQ,QAAQ,kBAAkB,QAClC,MAAM,0BACJ,KAAK,oBAAoB"}
@@ -1,40 +1,27 @@
1
- import { __commonJS, __toESM } from "../chunk-CJ2cON1m.mjs";
2
- import { require_objectSpread2 } from "../objectSpread2-Blgb1OZh.mjs";
3
-
4
- //#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectWithoutPropertiesLoose.js
5
- var require_objectWithoutPropertiesLoose = __commonJS({ "../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectWithoutPropertiesLoose.js"(exports, module) {
6
- function _objectWithoutPropertiesLoose(r, e) {
7
- if (null == r) return {};
8
- var t = {};
9
- for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
10
- if (e.includes(n)) continue;
11
- t[n] = r[n];
12
- }
13
- return t;
1
+ import { t as _objectSpread2 } from "../objectSpread2-Dh4InpQf.mjs";
2
+ //#region \0@oxc-project+runtime@0.149.0/helpers/esm/objectWithoutPropertiesLoose.js
3
+ function _objectWithoutPropertiesLoose(r, e) {
4
+ if (null == r) return {};
5
+ var t = {};
6
+ for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
7
+ if (e.includes(n)) continue;
8
+ t[n] = r[n];
14
9
  }
15
- module.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;
16
- } });
17
-
10
+ return t;
11
+ }
18
12
  //#endregion
19
- //#region ../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectWithoutProperties.js
20
- var require_objectWithoutProperties = __commonJS({ "../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectWithoutProperties.js"(exports, module) {
21
- var objectWithoutPropertiesLoose = require_objectWithoutPropertiesLoose();
22
- function _objectWithoutProperties$1(e, t) {
23
- if (null == e) return {};
24
- var o, r, i = objectWithoutPropertiesLoose(e, t);
25
- if (Object.getOwnPropertySymbols) {
26
- var s = Object.getOwnPropertySymbols(e);
27
- for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
28
- }
29
- return i;
13
+ //#region \0@oxc-project+runtime@0.149.0/helpers/esm/objectWithoutProperties.js
14
+ function _objectWithoutProperties(e, t) {
15
+ if (null == e) return {};
16
+ var o, r, i = _objectWithoutPropertiesLoose(e, t);
17
+ if (Object.getOwnPropertySymbols) {
18
+ var s = Object.getOwnPropertySymbols(e);
19
+ for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
30
20
  }
31
- module.exports = _objectWithoutProperties$1, module.exports.__esModule = true, module.exports["default"] = module.exports;
32
- } });
33
-
21
+ return i;
22
+ }
34
23
  //#endregion
35
24
  //#region src/heyapi/index.ts
36
- var import_objectSpread2 = __toESM(require_objectSpread2(), 1);
37
- var import_objectWithoutProperties = __toESM(require_objectWithoutProperties(), 1);
38
25
  const _excluded = ["transformer"];
39
26
  function resolveTransformer(transformer) {
40
27
  if ("input" in transformer) return transformer;
@@ -65,11 +52,9 @@ function createTRPCHeyApiTypeResolvers() {
65
52
  return {
66
53
  string(ctx) {
67
54
  if (ctx.schema.format === "date-time" || ctx.schema.format === "date") return ctx.$.type("Date");
68
- return void 0;
69
55
  },
70
56
  number(ctx) {
71
57
  if (ctx.schema.format === "bigint") return ctx.$.type("bigint");
72
- return void 0;
73
58
  }
74
59
  };
75
60
  }
@@ -78,7 +63,7 @@ function createTRPCHeyApiTypeResolvers() {
78
63
  */
79
64
  function createTRPCHeyApiClientConfig(opts) {
80
65
  const transformer = (opts === null || opts === void 0 ? void 0 : opts.transformer) ? resolveTransformer(opts.transformer) : void 0;
81
- return (0, import_objectSpread2.default)({ querySerializer: (query) => {
66
+ return _objectSpread2({ querySerializer: (query) => {
82
67
  const params = new URLSearchParams();
83
68
  for (const [key, value] of Object.entries(query)) {
84
69
  if (value === void 0) continue;
@@ -129,12 +114,12 @@ function createTRPCErrorInterceptor(transformerOpts) {
129
114
  * ```
130
115
  */
131
116
  function configureTRPCHeyApiClient(client, opts) {
132
- const { transformer } = opts, heyConfig = (0, import_objectWithoutProperties.default)(opts, _excluded);
117
+ const { transformer } = opts, heyConfig = _objectWithoutProperties(opts, _excluded);
133
118
  const trpcConfig = createTRPCHeyApiClientConfig({ transformer });
134
- client.setConfig((0, import_objectSpread2.default)((0, import_objectSpread2.default)({}, heyConfig), trpcConfig));
119
+ client.setConfig(_objectSpread2(_objectSpread2({}, heyConfig), trpcConfig));
135
120
  if (transformer) client.interceptors.error.use(createTRPCErrorInterceptor(transformer));
136
121
  }
137
-
138
122
  //#endregion
139
123
  export { configureTRPCHeyApiClient, createTRPCErrorInterceptor, createTRPCHeyApiClientConfig, createTRPCHeyApiTypeResolvers };
124
+
140
125
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["_objectWithoutProperties","transformer: DataTransformerOptions","opts?: TRPCHeyApiClientOptions","query: Record<string, unknown>","body: unknown","data: unknown","transformerOpts: DataTransformerOptions","error: unknown","client: Plugins.HeyApiClientFetch.Client","opts: TRPCHeyApiClientOptions &\n Omit<HeyApiConfig, keyof TRPCHeyApiClientConfig>"],"sources":["../../../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectWithoutPropertiesLoose.js","../../../../node_modules/.pnpm/@oxc-project+runtime@0.72.2/node_modules/@oxc-project/runtime/src/helpers/objectWithoutProperties.js","../../src/heyapi/index.ts"],"sourcesContent":["function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var s = Object.getOwnPropertySymbols(e);\n for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import type { Plugins } from '@hey-api/openapi-ts';\nimport type {\n TRPCCombinedDataTransformer,\n TRPCDataTransformer,\n} from '@trpc/server';\n\nexport type DataTransformerOptions =\n | TRPCDataTransformer\n | TRPCCombinedDataTransformer;\nexport interface TRPCHeyApiClientOptions {\n transformer?: DataTransformerOptions;\n}\n\nexport type HeyAPIResolvers = Plugins.HeyApiTypeScript.Resolvers;\n\nexport type HeyApiConfig = ReturnType<\n Plugins.HeyApiClientFetch.Client['getConfig']\n>;\n\nexport type TRPCHeyApiClientConfig = Required<\n Pick<HeyApiConfig, 'querySerializer'>\n> &\n Pick<HeyApiConfig, 'bodySerializer' | 'responseTransformer'>;\n\nfunction resolveTransformer(\n transformer: DataTransformerOptions,\n): TRPCCombinedDataTransformer {\n if ('input' in transformer) {\n return transformer;\n }\n return { input: transformer, output: transformer };\n}\n\n/**\n * Returns the `~resolvers` object for the `@hey-api/typescript` plugin.\n *\n * Maps `date` and `date-time` string formats to `Date` so that the\n * generated SDK uses `Date` instead of `string` for those fields.\n *\n * @example\n * ```ts\n * import { createClient } from '@hey-api/openapi-ts';\n * import { createTRPCHeyApiTypeResolvers } from '@trpc/openapi/heyapi';\n *\n * await createClient({\n * plugins: [\n * { name: '@hey-api/typescript', '~resolvers': createTRPCHeyApiTypeResolvers() },\n * ],\n * });\n * ```\n */\nexport function createTRPCHeyApiTypeResolvers(): HeyAPIResolvers {\n return {\n string(ctx) {\n if (ctx.schema.format === 'date-time' || ctx.schema.format === 'date') {\n return ctx.$.type('Date');\n }\n return undefined;\n },\n number(ctx) {\n if (ctx.schema.format === 'bigint') {\n return ctx.$.type('bigint');\n }\n return undefined;\n },\n };\n}\n\n/**\n * @internal - Prefer `configureTRPCHeyApiClient`\n */\nexport function createTRPCHeyApiClientConfig(opts?: TRPCHeyApiClientOptions) {\n const transformer = opts?.transformer\n ? resolveTransformer(opts.transformer)\n : undefined;\n\n return {\n querySerializer: (query: Record<string, unknown>) => {\n const params = new URLSearchParams();\n\n for (const [key, value] of Object.entries(query)) {\n if (value === undefined) {\n continue;\n }\n\n if (key === 'input' && transformer) {\n params.append(\n key,\n JSON.stringify(transformer.input.serialize(value)),\n );\n } else {\n params.append(key, JSON.stringify(value));\n }\n }\n\n return params.toString();\n },\n\n ...(transformer && {\n bodySerializer: (body: unknown) => {\n return JSON.stringify(transformer.input.serialize(body));\n },\n\n responseTransformer: async (data: unknown) => {\n if (!!data && typeof data === 'object' && 'result' in data) {\n const result = (data as any).result;\n if (!result.type || result.type === 'data') {\n result.data = transformer.output.deserialize(result.data);\n }\n }\n\n return data;\n },\n }),\n } as const satisfies TRPCHeyApiClientConfig;\n}\n\n/**\n * @internal - Prefer `configureTRPCHeyApiClient`\n */\nexport function createTRPCErrorInterceptor(\n transformerOpts: DataTransformerOptions,\n) {\n const transformer = resolveTransformer(transformerOpts);\n return (error: unknown) => {\n if (!!error && typeof error === 'object' && 'error' in error) {\n (error as any).error = transformer.output.deserialize(\n (error as any).error,\n );\n }\n return error;\n };\n}\n\n/**\n * Configures a hey-api client for use with a tRPC OpenAPI backend.\n *\n * Sets up querySerializer, bodySerializer, responseTransformer, and\n * an error interceptor (for transformer-based error deserialization)\n * in a single call.\n *\n * @example\n * ```ts\n * import { configureTRPCHeyApiClient } from '@trpc/openapi/heyapi';\n * import superjson from 'superjson';\n * import { client } from './generated/client.gen';\n *\n * configureTRPCHeyApiClient(client, {\n * baseUrl: 'http://localhost:3000',\n * transformer: superjson,\n * });\n * ```\n */\nexport function configureTRPCHeyApiClient(\n client: Plugins.HeyApiClientFetch.Client,\n opts: TRPCHeyApiClientOptions &\n Omit<HeyApiConfig, keyof TRPCHeyApiClientConfig>,\n) {\n const { transformer, ...heyConfig } = opts;\n const trpcConfig = createTRPCHeyApiClientConfig({ transformer });\n\n client.setConfig({ ...heyConfig, ...trpcConfig });\n\n if (transformer) {\n client.interceptors.error.use(createTRPCErrorInterceptor(transformer));\n }\n}\n"],"x_google_ignoreList":[0,1],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../src/heyapi/index.ts"],"sourcesContent":["import type { Plugins } from '@hey-api/openapi-ts';\nimport type {\n TRPCCombinedDataTransformer,\n TRPCDataTransformer,\n} from '@trpc/server';\n\nexport type DataTransformerOptions =\n TRPCDataTransformer | TRPCCombinedDataTransformer;\nexport interface TRPCHeyApiClientOptions {\n transformer?: DataTransformerOptions;\n}\n\nexport type HeyAPIResolvers = Plugins.HeyApiTypeScript.Resolvers;\n\nexport type HeyApiConfig = ReturnType<\n Plugins.HeyApiClientFetch.Client['getConfig']\n>;\n\nexport type TRPCHeyApiClientConfig = Required<\n Pick<HeyApiConfig, 'querySerializer'>\n> &\n Pick<HeyApiConfig, 'bodySerializer' | 'responseTransformer'>;\n\nfunction resolveTransformer(\n transformer: DataTransformerOptions,\n): TRPCCombinedDataTransformer {\n if ('input' in transformer) {\n return transformer;\n }\n return { input: transformer, output: transformer };\n}\n\n/**\n * Returns the `~resolvers` object for the `@hey-api/typescript` plugin.\n *\n * Maps `date` and `date-time` string formats to `Date` so that the\n * generated SDK uses `Date` instead of `string` for those fields.\n *\n * @example\n * ```ts\n * import { createClient } from '@hey-api/openapi-ts';\n * import { createTRPCHeyApiTypeResolvers } from '@trpc/openapi/heyapi';\n *\n * await createClient({\n * plugins: [\n * { name: '@hey-api/typescript', '~resolvers': createTRPCHeyApiTypeResolvers() },\n * ],\n * });\n * ```\n */\nexport function createTRPCHeyApiTypeResolvers(): HeyAPIResolvers {\n return {\n string(ctx) {\n if (ctx.schema.format === 'date-time' || ctx.schema.format === 'date') {\n return ctx.$.type('Date');\n }\n return undefined;\n },\n number(ctx) {\n if (ctx.schema.format === 'bigint') {\n return ctx.$.type('bigint');\n }\n return undefined;\n },\n };\n}\n\n/**\n * @internal - Prefer `configureTRPCHeyApiClient`\n */\nexport function createTRPCHeyApiClientConfig(opts?: TRPCHeyApiClientOptions) {\n const transformer = opts?.transformer\n ? resolveTransformer(opts.transformer)\n : undefined;\n\n return {\n querySerializer: (query: Record<string, unknown>) => {\n const params = new URLSearchParams();\n\n for (const [key, value] of Object.entries(query)) {\n if (value === undefined) {\n continue;\n }\n\n if (key === 'input' && transformer) {\n params.append(\n key,\n JSON.stringify(transformer.input.serialize(value)),\n );\n } else {\n params.append(key, JSON.stringify(value));\n }\n }\n\n return params.toString();\n },\n\n ...(transformer && {\n bodySerializer: (body: unknown) => {\n return JSON.stringify(transformer.input.serialize(body));\n },\n\n responseTransformer: async (data: unknown) => {\n if (!!data && typeof data === 'object' && 'result' in data) {\n const result = (data as any).result;\n if (!result.type || result.type === 'data') {\n result.data = transformer.output.deserialize(result.data);\n }\n }\n\n return data;\n },\n }),\n } as const satisfies TRPCHeyApiClientConfig;\n}\n\n/**\n * @internal - Prefer `configureTRPCHeyApiClient`\n */\nexport function createTRPCErrorInterceptor(\n transformerOpts: DataTransformerOptions,\n) {\n const transformer = resolveTransformer(transformerOpts);\n return (error: unknown) => {\n if (!!error && typeof error === 'object' && 'error' in error) {\n (error as any).error = transformer.output.deserialize(\n (error as any).error,\n );\n }\n return error;\n };\n}\n\n/**\n * Configures a hey-api client for use with a tRPC OpenAPI backend.\n *\n * Sets up querySerializer, bodySerializer, responseTransformer, and\n * an error interceptor (for transformer-based error deserialization)\n * in a single call.\n *\n * @example\n * ```ts\n * import { configureTRPCHeyApiClient } from '@trpc/openapi/heyapi';\n * import superjson from 'superjson';\n * import { client } from './generated/client.gen';\n *\n * configureTRPCHeyApiClient(client, {\n * baseUrl: 'http://localhost:3000',\n * transformer: superjson,\n * });\n * ```\n */\nexport function configureTRPCHeyApiClient(\n client: Plugins.HeyApiClientFetch.Client,\n opts: TRPCHeyApiClientOptions &\n Omit<HeyApiConfig, keyof TRPCHeyApiClientConfig>,\n) {\n const { transformer, ...heyConfig } = opts;\n const trpcConfig = createTRPCHeyApiClientConfig({ transformer });\n\n client.setConfig({ ...heyConfig, ...trpcConfig });\n\n if (transformer) {\n client.interceptors.error.use(createTRPCErrorInterceptor(transformer));\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA6JU,MAAA,YAAA,CAAA,aAAA;AAtIV,SAAS,mBACP,aAC6B;CAC7B,IAAI,WAAW,aACb,OAAO;CAET,OAAO;EAAE,OAAO;EAAa,QAAQ;CAAY;AACnD;;;;;;;;;;;;;;;;;;;AAoBA,SAAgB,gCAAiD;CAC/D,OAAO;EACL,OAAO,KAAK;GACV,IAAI,IAAI,OAAO,WAAW,eAAe,IAAI,OAAO,WAAW,QAC7D,OAAO,IAAI,EAAE,KAAK,MAAM;EAG5B;EACA,OAAO,KAAK;GACV,IAAI,IAAI,OAAO,WAAW,UACxB,OAAO,IAAI,EAAE,KAAK,QAAQ;EAG9B;CACF;AACF;;;;AAKA,SAAgB,6BAA6B,MAAgC;CAC3E,MAAM,eAAA,SAAA,QAAA,SAAA,KAAA,IAAA,KAAA,IAAc,KAAM,eACtB,mBAAmB,KAAK,WAAW,IACnC,KAAA;CAEJ,OAAA,eAAA,EACE,kBAAkB,UAAmC;EACnD,MAAM,SAAS,IAAI,gBAAgB;EAEnC,KAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,KAAK,GAAG;GAChD,IAAI,UAAU,KAAA,GACZ;GAGF,IAAI,QAAQ,WAAW,aACrB,OAAO,OACL,KACA,KAAK,UAAU,YAAY,MAAM,UAAU,KAAK,CAAC,CACnD;QAEA,OAAO,OAAO,KAAK,KAAK,UAAU,KAAK,CAAC;EAE5C;EAEA,OAAO,OAAO,SAAS;CACzB,EAAA,GAEI,eAAe;EACjB,iBAAiB,SAAkB;GACjC,OAAO,KAAK,UAAU,YAAY,MAAM,UAAU,IAAI,CAAC;EACzD;EAEA,qBAAqB,OAAO,SAAkB;GAC5C,IAAI,CAAC,CAAC,QAAQ,OAAO,SAAS,YAAY,YAAY,MAAM;IAC1D,MAAM,SAAU,KAAa;IAC7B,IAAI,CAAC,OAAO,QAAQ,OAAO,SAAS,QAClC,OAAO,OAAO,YAAY,OAAO,YAAY,OAAO,IAAI;GAE5D;GAEA,OAAO;EACT;CACF,CACF;AACF;;;;AAKA,SAAgB,2BACd,iBACA;CACA,MAAM,cAAc,mBAAmB,eAAe;CACtD,QAAQ,UAAmB;EACzB,IAAI,CAAC,CAAC,SAAS,OAAO,UAAU,YAAY,WAAW,OACrD,MAAe,QAAQ,YAAY,OAAO,YACvC,MAAc,KACjB;EAEF,OAAO;CACT;AACF;;;;;;;;;;;;;;;;;;;;AAqBA,SAAgB,0BACd,QACA,MAEA;CACA,MAAM,EAAE,gBAAA,MAAgB,YAAA,yBAAc,MAAA,SAAA;CACtC,MAAM,aAAa,6BAA6B,EAAE,YAAY,CAAC;CAE/D,OAAO,UAAA,eAAA,eAAA,CAAA,GAAe,SAAA,GAAc,UAAW,CAAC;CAEhD,IAAI,aACF,OAAO,aAAa,MAAM,IAAI,2BAA2B,WAAW,CAAC;AAEzE"}