@kubb/plugin-ts 5.0.0-alpha.14 → 5.0.0-alpha.16

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.
@@ -4,7 +4,8 @@ import { resolverTs } from './resolverTs.ts'
4
4
 
5
5
  /**
6
6
  * Legacy resolver for `@kubb/plugin-ts` that reproduces the naming conventions
7
- * used before the v2 resolver refactor. Enable via `legacy: true` in plugin options.
7
+ * used before the v2 resolver refactor. Enable via `compatibilityPreset: 'kubbV4'`
8
+ * (or by composing this resolver manually).
8
9
  *
9
10
  * Key differences from the default resolver:
10
11
  * - Response status types: `<OperationId><StatusCode>` (e.g. `CreatePets201`) instead of `<OperationId>Status201`
package/src/types.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { OperationNode, ParameterNode, SchemaNode, StatusCode, Visitor } from '@kubb/ast/types'
2
- import type { Group, Output, PluginFactoryOptions, Resolver } from '@kubb/core'
2
+ import type { CompatibilityPreset, Group, Output, PluginFactoryOptions, Resolver } from '@kubb/core'
3
3
  import type { contentType, Oas } from '@kubb/oas'
4
4
  import type { Exclude, Include, Override, ResolvePathOptions } from '@kubb/plugin-oas'
5
5
  import type { Generator } from '@kubb/plugin-oas/generators'
@@ -135,54 +135,54 @@ export type ResolverTs = Resolver & {
135
135
  resolveEnumKeyTypedName(node: SchemaNode): string
136
136
  /**
137
137
  * Resolves the variable/function name for an operation's grouped path parameters type.
138
- * Only available in legacy mode (`legacy: true`).
138
+ * Only available with `compatibilityPreset: 'kubbV4'`.
139
139
  *
140
- * @deprecated Legacy only — will be removed in v6. Use `resolveParamName` per individual parameter instead.
140
+ * @deprecated Kubb v4 compatibility only — use `resolveParamName` per individual parameter instead.
141
141
  * @example
142
142
  * resolver.resolvePathParamsName(node) // → 'GetPetByIdPathParams'
143
143
  */
144
144
  resolvePathParamsName?(node: OperationNode): string
145
145
  /**
146
146
  * Resolves the TypeScript type alias name for an operation's grouped path parameters type.
147
- * Only available in legacy mode (`legacy: true`).
147
+ * Only available with `compatibilityPreset: 'kubbV4'`.
148
148
  *
149
- * @deprecated Legacy only — will be removed in v6. Use `resolveParamTypedName` per individual parameter instead.
149
+ * @deprecated Kubb v4 compatibility only — use `resolveParamTypedName` per individual parameter instead.
150
150
  * @example
151
151
  * resolver.resolvePathParamsTypedName(node) // → 'GetPetByIdPathParams'
152
152
  */
153
153
  resolvePathParamsTypedName?(node: OperationNode): string
154
154
  /**
155
155
  * Resolves the variable/function name for an operation's grouped query parameters type.
156
- * Only available in legacy mode (`legacy: true`).
156
+ * Only available with `compatibilityPreset: 'kubbV4'`.
157
157
  *
158
- * @deprecated Legacy only — will be removed in v6. Use `resolveParamName` per individual parameter instead.
158
+ * @deprecated Kubb v4 compatibility only — use `resolveParamName` per individual parameter instead.
159
159
  * @example
160
160
  * resolver.resolveQueryParamsName(node) // → 'FindPetsByStatusQueryParams'
161
161
  */
162
162
  resolveQueryParamsName?(node: OperationNode): string
163
163
  /**
164
164
  * Resolves the TypeScript type alias name for an operation's grouped query parameters type.
165
- * Only available in legacy mode (`legacy: true`).
165
+ * Only available with `compatibilityPreset: 'kubbV4'`.
166
166
  *
167
- * @deprecated Legacy only — will be removed in v6. Use `resolveParamTypedName` per individual parameter instead.
167
+ * @deprecated Kubb v4 compatibility only — use `resolveParamTypedName` per individual parameter instead.
168
168
  * @example
169
169
  * resolver.resolveQueryParamsTypedName(node) // → 'FindPetsByStatusQueryParams'
170
170
  */
171
171
  resolveQueryParamsTypedName?(node: OperationNode): string
172
172
  /**
173
173
  * Resolves the variable/function name for an operation's grouped header parameters type.
174
- * Only available in legacy mode (`legacy: true`).
174
+ * Only available with `compatibilityPreset: 'kubbV4'`.
175
175
  *
176
- * @deprecated Legacy only — will be removed in v6. Use `resolveParamName` per individual parameter instead.
176
+ * @deprecated Kubb v4 compatibility only — use `resolveParamName` per individual parameter instead.
177
177
  * @example
178
178
  * resolver.resolveHeaderParamsName(node) // → 'DeletePetHeaderParams'
179
179
  */
180
180
  resolveHeaderParamsName?(node: OperationNode): string
181
181
  /**
182
182
  * Resolves the TypeScript type alias name for an operation's grouped header parameters type.
183
- * Only available in legacy mode (`legacy: true`).
183
+ * Only available with `compatibilityPreset: 'kubbV4'`.
184
184
  *
185
- * @deprecated Legacy only — will be removed in v6. Use `resolveParamTypedName` per individual parameter instead.
185
+ * @deprecated Kubb v4 compatibility only — use `resolveParamTypedName` per individual parameter instead.
186
186
  * @example
187
187
  * resolver.resolveHeaderParamsTypedName(node) // → 'DeletePetHeaderParams'
188
188
  */
@@ -276,10 +276,12 @@ export type Options = {
276
276
  */
277
277
  UNSTABLE_NAMING?: true
278
278
  /**
279
- * Enable legacy naming conventions for backwards compatibility.
280
- * @default false
279
+ * Apply a compatibility naming preset.
280
+ * Use `kubbV4` for strict v4 type-generation compatibility.
281
+ * You can further customize naming with `resolvers`.
282
+ * @default 'default'
281
283
  */
282
- legacy?: boolean
284
+ compatibilityPreset?: CompatibilityPreset
283
285
  /**
284
286
  * Array of named resolvers that control naming conventions.
285
287
  * Later entries override earlier ones (last wins).
@@ -322,7 +324,7 @@ type ResolvedOptions = {
322
324
  arrayType: NonNullable<Options['arrayType']>
323
325
  syntaxType: NonNullable<Options['syntaxType']>
324
326
  paramsCasing: Options['paramsCasing']
325
- legacy: NonNullable<Options['legacy']>
327
+ compatibilityPreset: NonNullable<CompatibilityPreset>
326
328
  resolver: ResolverTs
327
329
  /**
328
330
  * The resolver without user naming overrides applied.
@@ -1,51 +0,0 @@
1
- import { t as __name } from "./chunk--u3MIqq1.js";
2
- import { r as ResolverTs } from "./types-D9zzvE0V.js";
3
-
4
- //#region src/resolvers/resolverTs.d.ts
5
- /**
6
- * Resolver for `@kubb/plugin-ts` that provides the default naming and path-resolution
7
- * helpers used by the plugin. Import this in other plugins to resolve the exact names and
8
- * paths that `plugin-ts` generates without hardcoding the conventions.
9
- *
10
- * The `default` method is automatically injected by `defineResolver` — it uses `camelCase`
11
- * for identifiers/files and `pascalCase` for type names.
12
- *
13
- * @example
14
- * ```ts
15
- * import { resolver } from '@kubb/plugin-ts'
16
- *
17
- * resolver.default('list pets', 'type') // → 'ListPets'
18
- * resolver.resolveName('list pets status 200') // → 'listPetsStatus200'
19
- * resolver.resolveTypedName('list pets status 200') // → 'ListPetsStatus200'
20
- * resolver.resolvePathName('list pets', 'file') // → 'listPets'
21
- * ```
22
- */
23
- declare const resolverTs: ResolverTs;
24
- //#endregion
25
- //#region src/resolvers/resolverTsLegacy.d.ts
26
- /**
27
- * Legacy resolver for `@kubb/plugin-ts` that reproduces the naming conventions
28
- * used before the v2 resolver refactor. Enable via `legacy: true` in plugin options.
29
- *
30
- * Key differences from the default resolver:
31
- * - Response status types: `<OperationId><StatusCode>` (e.g. `CreatePets201`) instead of `<OperationId>Status201`
32
- * - Default/error responses: `<OperationId>Error` instead of `<OperationId>StatusDefault`
33
- * - Request body: `<OperationId>MutationRequest` (non-GET) / `<OperationId>QueryRequest` (GET)
34
- * - Combined responses type: `<OperationId>Mutation` / `<OperationId>Query`
35
- * - Response union: `<OperationId>MutationResponse` / `<OperationId>QueryResponse`
36
- *
37
- * @example
38
- * ```ts
39
- * import { resolverTsLegacy } from '@kubb/plugin-ts'
40
- *
41
- * resolverTsLegacy.resolveResponseStatusTypedName(node, 201) // → 'CreatePets201'
42
- * resolverTsLegacy.resolveResponseStatusTypedName(node, 'default') // → 'CreatePetsError'
43
- * resolverTsLegacy.resolveDataTypedName(node) // → 'CreatePetsMutationRequest' (POST)
44
- * resolverTsLegacy.resolveResponsesTypedName(node) // → 'CreatePetsMutation' (POST)
45
- * resolverTsLegacy.resolveResponseTypedName(node) // → 'CreatePetsMutationResponse' (POST)
46
- * ```
47
- */
48
- declare const resolverTsLegacy: ResolverTs;
49
- //#endregion
50
- export { resolverTs as n, resolverTsLegacy as t };
51
- //# sourceMappingURL=index-B5pSjbZv.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolvers-C_vYX56l.js","names":[],"sources":["../src/resolvers/resolverTs.ts","../src/resolvers/resolverTsLegacy.ts"],"sourcesContent":["import { pascalCase } from '@internals/utils'\nimport { defineResolver } from '@kubb/core'\nimport type { PluginTs } from '../types.ts'\n\nfunction resolveName(name: string, type?: 'file' | 'function' | 'type' | 'const'): string {\n return pascalCase(name, { isFile: type === 'file' })\n}\n\n/**\n * Resolver for `@kubb/plugin-ts` that provides the default naming and path-resolution\n * helpers used by the plugin. Import this in other plugins to resolve the exact names and\n * paths that `plugin-ts` generates without hardcoding the conventions.\n *\n * The `default` method is automatically injected by `defineResolver` — it uses `camelCase`\n * for identifiers/files and `pascalCase` for type names.\n *\n * @example\n * ```ts\n * import { resolver } from '@kubb/plugin-ts'\n *\n * resolver.default('list pets', 'type') // → 'ListPets'\n * resolver.resolveName('list pets status 200') // → 'listPetsStatus200'\n * resolver.resolveTypedName('list pets status 200') // → 'ListPetsStatus200'\n * resolver.resolvePathName('list pets', 'file') // → 'listPets'\n * ```\n */\nexport const resolverTs = defineResolver<PluginTs>(() => {\n return {\n name: 'default',\n default(name, type) {\n return resolveName(name, type)\n },\n resolveName(name) {\n return this.default(name, 'function')\n },\n resolveTypedName(name) {\n return this.default(name, 'type')\n },\n resolvePathName(name, type) {\n return this.default(name, type)\n },\n resolveParamName(node, param) {\n return this.resolveName(`${node.operationId} ${this.default(param.in)} ${param.name}`)\n },\n resolveParamTypedName(node, param) {\n return this.resolveTypedName(`${node.operationId} ${this.default(param.in)} ${param.name}`)\n },\n resolveResponseStatusName(node, statusCode) {\n return this.resolveName(`${node.operationId} Status ${statusCode}`)\n },\n resolveResponseStatusTypedName(node, statusCode) {\n return this.resolveTypedName(`${node.operationId} Status ${statusCode}`)\n },\n resolveDataName(node) {\n return this.resolveName(`${node.operationId} Data`)\n },\n resolveDataTypedName(node) {\n return this.resolveTypedName(`${node.operationId} Data`)\n },\n resolveRequestConfigName(node) {\n return this.resolveName(`${node.operationId} RequestConfig`)\n },\n resolveRequestConfigTypedName(node) {\n return this.resolveTypedName(`${node.operationId} RequestConfig`)\n },\n resolveResponsesName(node) {\n return this.resolveName(`${node.operationId} Responses`)\n },\n resolveResponsesTypedName(node) {\n return this.resolveTypedName(`${node.operationId} Responses`)\n },\n resolveResponseName(node) {\n return this.resolveName(`${node.operationId} Response`)\n },\n resolveResponseTypedName(node) {\n return this.resolveTypedName(`${node.operationId} Response`)\n },\n resolveEnumKeyTypedName(node) {\n return `${this.resolveTypedName(node.name ?? '')}Key`\n },\n resolvePathParamsName(_node) {\n throw new Error('resolvePathParamsName is only available in legacy mode (legacy: true). Use resolveParamName per individual parameter instead.')\n },\n resolvePathParamsTypedName(_node) {\n throw new Error('resolvePathParamsTypedName is only available in legacy mode (legacy: true). Use resolveParamTypedName per individual parameter instead.')\n },\n resolveQueryParamsName(node) {\n return this.resolveName(`${node.operationId} QueryParams`)\n },\n resolveQueryParamsTypedName(node) {\n return this.resolveTypedName(`${node.operationId} QueryParams`)\n },\n resolveHeaderParamsName(_node) {\n throw new Error('resolveHeaderParamsName is only available in legacy mode (legacy: true). Use resolveParamName per individual parameter instead.')\n },\n resolveHeaderParamsTypedName(_node) {\n throw new Error(\n 'resolveHeaderParamsTypedName is only available in legacy mode (legacy: true). Use resolveParamTypedName per individual parameter instead.',\n )\n },\n }\n})\n","import { defineResolver } from '@kubb/core'\nimport type { PluginTs } from '../types.ts'\nimport { resolverTs } from './resolverTs.ts'\n\n/**\n * Legacy resolver for `@kubb/plugin-ts` that reproduces the naming conventions\n * used before the v2 resolver refactor. Enable via `legacy: true` in plugin options.\n *\n * Key differences from the default resolver:\n * - Response status types: `<OperationId><StatusCode>` (e.g. `CreatePets201`) instead of `<OperationId>Status201`\n * - Default/error responses: `<OperationId>Error` instead of `<OperationId>StatusDefault`\n * - Request body: `<OperationId>MutationRequest` (non-GET) / `<OperationId>QueryRequest` (GET)\n * - Combined responses type: `<OperationId>Mutation` / `<OperationId>Query`\n * - Response union: `<OperationId>MutationResponse` / `<OperationId>QueryResponse`\n *\n * @example\n * ```ts\n * import { resolverTsLegacy } from '@kubb/plugin-ts'\n *\n * resolverTsLegacy.resolveResponseStatusTypedName(node, 201) // → 'CreatePets201'\n * resolverTsLegacy.resolveResponseStatusTypedName(node, 'default') // → 'CreatePetsError'\n * resolverTsLegacy.resolveDataTypedName(node) // → 'CreatePetsMutationRequest' (POST)\n * resolverTsLegacy.resolveResponsesTypedName(node) // → 'CreatePetsMutation' (POST)\n * resolverTsLegacy.resolveResponseTypedName(node) // → 'CreatePetsMutationResponse' (POST)\n * ```\n */\nexport const resolverTsLegacy = defineResolver<PluginTs>(() => {\n return {\n ...resolverTs,\n name: 'legacy',\n resolveResponseStatusName(node, statusCode) {\n if (statusCode === 'default') {\n return this.resolveName(`${node.operationId} Error`)\n }\n return this.resolveName(`${node.operationId} ${statusCode}`)\n },\n resolveResponseStatusTypedName(node, statusCode) {\n if (statusCode === 'default') {\n return this.resolveTypedName(`${node.operationId} Error`)\n }\n return this.resolveTypedName(`${node.operationId} ${statusCode}`)\n },\n resolveDataName(node) {\n const suffix = node.method === 'GET' ? 'QueryRequest' : 'MutationRequest'\n return this.resolveName(`${node.operationId} ${suffix}`)\n },\n resolveDataTypedName(node) {\n const suffix = node.method === 'GET' ? 'QueryRequest' : 'MutationRequest'\n return this.resolveTypedName(`${node.operationId} ${suffix}`)\n },\n resolveResponsesName(node) {\n const suffix = node.method === 'GET' ? 'Query' : 'Mutation'\n return `${this.default(node.operationId, 'function')}${suffix}`\n },\n resolveResponsesTypedName(node) {\n const suffix = node.method === 'GET' ? 'Query' : 'Mutation'\n return `${this.default(node.operationId, 'type')}${suffix}`\n },\n resolveResponseName(node) {\n const suffix = node.method === 'GET' ? 'QueryResponse' : 'MutationResponse'\n return this.resolveName(`${node.operationId} ${suffix}`)\n },\n resolveResponseTypedName(node) {\n const suffix = node.method === 'GET' ? 'QueryResponse' : 'MutationResponse'\n return this.resolveTypedName(`${node.operationId} ${suffix}`)\n },\n resolvePathParamsName(node) {\n return this.resolveName(`${node.operationId} PathParams`)\n },\n resolvePathParamsTypedName(node) {\n return this.resolveTypedName(`${node.operationId} PathParams`)\n },\n resolveQueryParamsName(node) {\n return this.resolveName(`${node.operationId} QueryParams`)\n },\n resolveQueryParamsTypedName(node) {\n return this.resolveTypedName(`${node.operationId} QueryParams`)\n },\n resolveHeaderParamsName(node) {\n return this.resolveName(`${node.operationId} HeaderParams`)\n },\n resolveHeaderParamsTypedName(node) {\n return this.resolveTypedName(`${node.operationId} HeaderParams`)\n },\n }\n})\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"resolvers-DDZC7d43.cjs","names":["pascalCase"],"sources":["../src/resolvers/resolverTs.ts","../src/resolvers/resolverTsLegacy.ts"],"sourcesContent":["import { pascalCase } from '@internals/utils'\nimport { defineResolver } from '@kubb/core'\nimport type { PluginTs } from '../types.ts'\n\nfunction resolveName(name: string, type?: 'file' | 'function' | 'type' | 'const'): string {\n return pascalCase(name, { isFile: type === 'file' })\n}\n\n/**\n * Resolver for `@kubb/plugin-ts` that provides the default naming and path-resolution\n * helpers used by the plugin. Import this in other plugins to resolve the exact names and\n * paths that `plugin-ts` generates without hardcoding the conventions.\n *\n * The `default` method is automatically injected by `defineResolver` — it uses `camelCase`\n * for identifiers/files and `pascalCase` for type names.\n *\n * @example\n * ```ts\n * import { resolver } from '@kubb/plugin-ts'\n *\n * resolver.default('list pets', 'type') // → 'ListPets'\n * resolver.resolveName('list pets status 200') // → 'listPetsStatus200'\n * resolver.resolveTypedName('list pets status 200') // → 'ListPetsStatus200'\n * resolver.resolvePathName('list pets', 'file') // → 'listPets'\n * ```\n */\nexport const resolverTs = defineResolver<PluginTs>(() => {\n return {\n name: 'default',\n default(name, type) {\n return resolveName(name, type)\n },\n resolveName(name) {\n return this.default(name, 'function')\n },\n resolveTypedName(name) {\n return this.default(name, 'type')\n },\n resolvePathName(name, type) {\n return this.default(name, type)\n },\n resolveParamName(node, param) {\n return this.resolveName(`${node.operationId} ${this.default(param.in)} ${param.name}`)\n },\n resolveParamTypedName(node, param) {\n return this.resolveTypedName(`${node.operationId} ${this.default(param.in)} ${param.name}`)\n },\n resolveResponseStatusName(node, statusCode) {\n return this.resolveName(`${node.operationId} Status ${statusCode}`)\n },\n resolveResponseStatusTypedName(node, statusCode) {\n return this.resolveTypedName(`${node.operationId} Status ${statusCode}`)\n },\n resolveDataName(node) {\n return this.resolveName(`${node.operationId} Data`)\n },\n resolveDataTypedName(node) {\n return this.resolveTypedName(`${node.operationId} Data`)\n },\n resolveRequestConfigName(node) {\n return this.resolveName(`${node.operationId} RequestConfig`)\n },\n resolveRequestConfigTypedName(node) {\n return this.resolveTypedName(`${node.operationId} RequestConfig`)\n },\n resolveResponsesName(node) {\n return this.resolveName(`${node.operationId} Responses`)\n },\n resolveResponsesTypedName(node) {\n return this.resolveTypedName(`${node.operationId} Responses`)\n },\n resolveResponseName(node) {\n return this.resolveName(`${node.operationId} Response`)\n },\n resolveResponseTypedName(node) {\n return this.resolveTypedName(`${node.operationId} Response`)\n },\n resolveEnumKeyTypedName(node) {\n return `${this.resolveTypedName(node.name ?? '')}Key`\n },\n resolvePathParamsName(_node) {\n throw new Error('resolvePathParamsName is only available in legacy mode (legacy: true). Use resolveParamName per individual parameter instead.')\n },\n resolvePathParamsTypedName(_node) {\n throw new Error('resolvePathParamsTypedName is only available in legacy mode (legacy: true). Use resolveParamTypedName per individual parameter instead.')\n },\n resolveQueryParamsName(node) {\n return this.resolveName(`${node.operationId} QueryParams`)\n },\n resolveQueryParamsTypedName(node) {\n return this.resolveTypedName(`${node.operationId} QueryParams`)\n },\n resolveHeaderParamsName(_node) {\n throw new Error('resolveHeaderParamsName is only available in legacy mode (legacy: true). Use resolveParamName per individual parameter instead.')\n },\n resolveHeaderParamsTypedName(_node) {\n throw new Error(\n 'resolveHeaderParamsTypedName is only available in legacy mode (legacy: true). Use resolveParamTypedName per individual parameter instead.',\n )\n },\n }\n})\n","import { defineResolver } from '@kubb/core'\nimport type { PluginTs } from '../types.ts'\nimport { resolverTs } from './resolverTs.ts'\n\n/**\n * Legacy resolver for `@kubb/plugin-ts` that reproduces the naming conventions\n * used before the v2 resolver refactor. Enable via `legacy: true` in plugin options.\n *\n * Key differences from the default resolver:\n * - Response status types: `<OperationId><StatusCode>` (e.g. `CreatePets201`) instead of `<OperationId>Status201`\n * - Default/error responses: `<OperationId>Error` instead of `<OperationId>StatusDefault`\n * - Request body: `<OperationId>MutationRequest` (non-GET) / `<OperationId>QueryRequest` (GET)\n * - Combined responses type: `<OperationId>Mutation` / `<OperationId>Query`\n * - Response union: `<OperationId>MutationResponse` / `<OperationId>QueryResponse`\n *\n * @example\n * ```ts\n * import { resolverTsLegacy } from '@kubb/plugin-ts'\n *\n * resolverTsLegacy.resolveResponseStatusTypedName(node, 201) // → 'CreatePets201'\n * resolverTsLegacy.resolveResponseStatusTypedName(node, 'default') // → 'CreatePetsError'\n * resolverTsLegacy.resolveDataTypedName(node) // → 'CreatePetsMutationRequest' (POST)\n * resolverTsLegacy.resolveResponsesTypedName(node) // → 'CreatePetsMutation' (POST)\n * resolverTsLegacy.resolveResponseTypedName(node) // → 'CreatePetsMutationResponse' (POST)\n * ```\n */\nexport const resolverTsLegacy = defineResolver<PluginTs>(() => {\n return {\n ...resolverTs,\n name: 'legacy',\n resolveResponseStatusName(node, statusCode) {\n if (statusCode === 'default') {\n return this.resolveName(`${node.operationId} Error`)\n }\n return this.resolveName(`${node.operationId} ${statusCode}`)\n },\n resolveResponseStatusTypedName(node, statusCode) {\n if (statusCode === 'default') {\n return this.resolveTypedName(`${node.operationId} Error`)\n }\n return this.resolveTypedName(`${node.operationId} ${statusCode}`)\n },\n resolveDataName(node) {\n const suffix = node.method === 'GET' ? 'QueryRequest' : 'MutationRequest'\n return this.resolveName(`${node.operationId} ${suffix}`)\n },\n resolveDataTypedName(node) {\n const suffix = node.method === 'GET' ? 'QueryRequest' : 'MutationRequest'\n return this.resolveTypedName(`${node.operationId} ${suffix}`)\n },\n resolveResponsesName(node) {\n const suffix = node.method === 'GET' ? 'Query' : 'Mutation'\n return `${this.default(node.operationId, 'function')}${suffix}`\n },\n resolveResponsesTypedName(node) {\n const suffix = node.method === 'GET' ? 'Query' : 'Mutation'\n return `${this.default(node.operationId, 'type')}${suffix}`\n },\n resolveResponseName(node) {\n const suffix = node.method === 'GET' ? 'QueryResponse' : 'MutationResponse'\n return this.resolveName(`${node.operationId} ${suffix}`)\n },\n resolveResponseTypedName(node) {\n const suffix = node.method === 'GET' ? 'QueryResponse' : 'MutationResponse'\n return this.resolveTypedName(`${node.operationId} ${suffix}`)\n },\n resolvePathParamsName(node) {\n return this.resolveName(`${node.operationId} PathParams`)\n },\n resolvePathParamsTypedName(node) {\n return this.resolveTypedName(`${node.operationId} PathParams`)\n },\n resolveQueryParamsName(node) {\n return this.resolveName(`${node.operationId} QueryParams`)\n },\n resolveQueryParamsTypedName(node) {\n return this.resolveTypedName(`${node.operationId} QueryParams`)\n },\n resolveHeaderParamsName(node) {\n return this.resolveName(`${node.operationId} HeaderParams`)\n },\n resolveHeaderParamsTypedName(node) {\n return this.resolveTypedName(`${node.operationId} HeaderParams`)\n },\n }\n})\n"],"mappings":"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"}