@kubb/plugin-ts 5.0.0-alpha.12 → 5.0.0-alpha.13

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.
Files changed (46) hide show
  1. package/dist/{Type-CX1HRooG.js → Type-C8EHVKjc.js} +6 -84
  2. package/dist/Type-C8EHVKjc.js.map +1 -0
  3. package/dist/{Type-Cat0_htq.cjs → Type-DrOq6-nh.cjs} +11 -139
  4. package/dist/Type-DrOq6-nh.cjs.map +1 -0
  5. package/dist/casing-Cp-jbC_k.js +84 -0
  6. package/dist/casing-Cp-jbC_k.js.map +1 -0
  7. package/dist/casing-D2uQKLWS.cjs +144 -0
  8. package/dist/casing-D2uQKLWS.cjs.map +1 -0
  9. package/dist/components.cjs +1 -1
  10. package/dist/components.d.ts +2 -1
  11. package/dist/components.js +1 -1
  12. package/dist/{generators-DWBU-MuW.cjs → generators-CX3cSSdF.cjs} +34 -19
  13. package/dist/generators-CX3cSSdF.cjs.map +1 -0
  14. package/dist/{generators-CLuCmfUz.js → generators-dCqW0ECC.js} +31 -16
  15. package/dist/generators-dCqW0ECC.js.map +1 -0
  16. package/dist/generators.cjs +1 -1
  17. package/dist/generators.d.ts +1 -1
  18. package/dist/generators.js +1 -1
  19. package/dist/index.cjs +8 -181
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.d.ts +2 -46
  22. package/dist/index.js +7 -178
  23. package/dist/index.js.map +1 -1
  24. package/dist/resolvers-CH7hINyz.js +181 -0
  25. package/dist/resolvers-CH7hINyz.js.map +1 -0
  26. package/dist/resolvers-ebHaaCyw.cjs +191 -0
  27. package/dist/resolvers-ebHaaCyw.cjs.map +1 -0
  28. package/dist/resolvers.cjs +4 -0
  29. package/dist/resolvers.d.ts +51 -0
  30. package/dist/resolvers.js +2 -0
  31. package/dist/{types-BA1ZCQ5p.d.ts → types-BSRhtbGl.d.ts} +8 -1
  32. package/package.json +12 -5
  33. package/src/components/Type.tsx +1 -0
  34. package/src/generators/typeGenerator.tsx +24 -9
  35. package/src/generators/utils.ts +5 -3
  36. package/src/index.ts +0 -1
  37. package/src/plugin.ts +3 -2
  38. package/src/printer.ts +5 -2
  39. package/src/resolvers/index.ts +2 -0
  40. package/src/{resolverTs.ts → resolvers/resolverTs.ts} +5 -89
  41. package/src/resolvers/resolverTsLegacy.ts +85 -0
  42. package/src/types.ts +7 -0
  43. package/dist/Type-CX1HRooG.js.map +0 -1
  44. package/dist/Type-Cat0_htq.cjs.map +0 -1
  45. package/dist/generators-CLuCmfUz.js.map +0 -1
  46. package/dist/generators-DWBU-MuW.cjs.map +0 -1
@@ -0,0 +1,191 @@
1
+ const require_casing = require("./casing-D2uQKLWS.cjs");
2
+ let _kubb_core = require("@kubb/core");
3
+ //#region src/resolvers/resolverTs.ts
4
+ function resolveName(name, type) {
5
+ return require_casing.pascalCase(name, { isFile: type === "file" });
6
+ }
7
+ /**
8
+ * Resolver for `@kubb/plugin-ts` that provides the default naming and path-resolution
9
+ * helpers used by the plugin. Import this in other plugins to resolve the exact names and
10
+ * paths that `plugin-ts` generates without hardcoding the conventions.
11
+ *
12
+ * The `default` method is automatically injected by `defineResolver` — it uses `camelCase`
13
+ * for identifiers/files and `pascalCase` for type names.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * import { resolver } from '@kubb/plugin-ts'
18
+ *
19
+ * resolver.default('list pets', 'type') // → 'ListPets'
20
+ * resolver.resolveName('list pets status 200') // → 'listPetsStatus200'
21
+ * resolver.resolveTypedName('list pets status 200') // → 'ListPetsStatus200'
22
+ * resolver.resolvePathName('list pets', 'file') // → 'listPets'
23
+ * ```
24
+ */
25
+ const resolverTs = (0, _kubb_core.defineResolver)(() => {
26
+ return {
27
+ default(name, type) {
28
+ return resolveName(name, type);
29
+ },
30
+ resolveName(name) {
31
+ return this.default(name, "function");
32
+ },
33
+ resolveTypedName(name) {
34
+ return this.default(name, "type");
35
+ },
36
+ resolvePathName(name, type) {
37
+ return this.default(name, type);
38
+ },
39
+ resolveParamName(node, param) {
40
+ return this.resolveName(`${node.operationId} ${this.default(param.in)} ${param.name}`);
41
+ },
42
+ resolveParamTypedName(node, param) {
43
+ return this.resolveTypedName(`${node.operationId} ${this.default(param.in)} ${param.name}`);
44
+ },
45
+ resolveResponseStatusName(node, statusCode) {
46
+ return this.resolveName(`${node.operationId} Status ${statusCode}`);
47
+ },
48
+ resolveResponseStatusTypedName(node, statusCode) {
49
+ return this.resolveTypedName(`${node.operationId} Status ${statusCode}`);
50
+ },
51
+ resolveDataName(node) {
52
+ return this.resolveName(`${node.operationId} Data`);
53
+ },
54
+ resolveDataTypedName(node) {
55
+ return this.resolveTypedName(`${node.operationId} Data`);
56
+ },
57
+ resolveRequestConfigName(node) {
58
+ return this.resolveName(`${node.operationId} RequestConfig`);
59
+ },
60
+ resolveRequestConfigTypedName(node) {
61
+ return this.resolveTypedName(`${node.operationId} RequestConfig`);
62
+ },
63
+ resolveResponsesName(node) {
64
+ return this.resolveName(`${node.operationId} Responses`);
65
+ },
66
+ resolveResponsesTypedName(node) {
67
+ return this.resolveTypedName(`${node.operationId} Responses`);
68
+ },
69
+ resolveResponseName(node) {
70
+ return this.resolveName(`${node.operationId} Response`);
71
+ },
72
+ resolveResponseTypedName(node) {
73
+ return this.resolveTypedName(`${node.operationId} Response`);
74
+ },
75
+ resolveEnumKeyTypedName(node) {
76
+ return `${this.resolveTypedName(node.name ?? "")}Key`;
77
+ },
78
+ resolvePathParamsName(_node) {
79
+ throw new Error("resolvePathParamsName is only available in legacy mode (legacy: true). Use resolveParamName per individual parameter instead.");
80
+ },
81
+ resolvePathParamsTypedName(_node) {
82
+ throw new Error("resolvePathParamsTypedName is only available in legacy mode (legacy: true). Use resolveParamTypedName per individual parameter instead.");
83
+ },
84
+ resolveQueryParamsName(node) {
85
+ return this.resolveName(`${node.operationId} QueryParams`);
86
+ },
87
+ resolveQueryParamsTypedName(node) {
88
+ return this.resolveTypedName(`${node.operationId} QueryParams`);
89
+ },
90
+ resolveHeaderParamsName(_node) {
91
+ throw new Error("resolveHeaderParamsName is only available in legacy mode (legacy: true). Use resolveParamName per individual parameter instead.");
92
+ },
93
+ resolveHeaderParamsTypedName(_node) {
94
+ throw new Error("resolveHeaderParamsTypedName is only available in legacy mode (legacy: true). Use resolveParamTypedName per individual parameter instead.");
95
+ }
96
+ };
97
+ });
98
+ //#endregion
99
+ //#region src/resolvers/resolverTsLegacy.ts
100
+ /**
101
+ * Legacy resolver for `@kubb/plugin-ts` that reproduces the naming conventions
102
+ * used before the v2 resolver refactor. Enable via `legacy: true` in plugin options.
103
+ *
104
+ * Key differences from the default resolver:
105
+ * - Response status types: `<OperationId><StatusCode>` (e.g. `CreatePets201`) instead of `<OperationId>Status201`
106
+ * - Default/error responses: `<OperationId>Error` instead of `<OperationId>StatusDefault`
107
+ * - Request body: `<OperationId>MutationRequest` (non-GET) / `<OperationId>QueryRequest` (GET)
108
+ * - Combined responses type: `<OperationId>Mutation` / `<OperationId>Query`
109
+ * - Response union: `<OperationId>MutationResponse` / `<OperationId>QueryResponse`
110
+ *
111
+ * @example
112
+ * ```ts
113
+ * import { resolverTsLegacy } from '@kubb/plugin-ts'
114
+ *
115
+ * resolverTsLegacy.resolveResponseStatusTypedName(node, 201) // → 'CreatePets201'
116
+ * resolverTsLegacy.resolveResponseStatusTypedName(node, 'default') // → 'CreatePetsError'
117
+ * resolverTsLegacy.resolveDataTypedName(node) // → 'CreatePetsMutationRequest' (POST)
118
+ * resolverTsLegacy.resolveResponsesTypedName(node) // → 'CreatePetsMutation' (POST)
119
+ * resolverTsLegacy.resolveResponseTypedName(node) // → 'CreatePetsMutationResponse' (POST)
120
+ * ```
121
+ */
122
+ const resolverTsLegacy = (0, _kubb_core.defineResolver)(() => {
123
+ return {
124
+ ...resolverTs,
125
+ resolveResponseStatusName(node, statusCode) {
126
+ if (statusCode === "default") return this.resolveName(`${node.operationId} Error`);
127
+ return this.resolveName(`${node.operationId} ${statusCode}`);
128
+ },
129
+ resolveResponseStatusTypedName(node, statusCode) {
130
+ if (statusCode === "default") return this.resolveTypedName(`${node.operationId} Error`);
131
+ return this.resolveTypedName(`${node.operationId} ${statusCode}`);
132
+ },
133
+ resolveDataName(node) {
134
+ const suffix = node.method === "GET" ? "QueryRequest" : "MutationRequest";
135
+ return this.resolveName(`${node.operationId} ${suffix}`);
136
+ },
137
+ resolveDataTypedName(node) {
138
+ const suffix = node.method === "GET" ? "QueryRequest" : "MutationRequest";
139
+ return this.resolveTypedName(`${node.operationId} ${suffix}`);
140
+ },
141
+ resolveResponsesName(node) {
142
+ const suffix = node.method === "GET" ? "Query" : "Mutation";
143
+ return `${this.default(node.operationId, "function")}${suffix}`;
144
+ },
145
+ resolveResponsesTypedName(node) {
146
+ const suffix = node.method === "GET" ? "Query" : "Mutation";
147
+ return `${this.default(node.operationId, "type")}${suffix}`;
148
+ },
149
+ resolveResponseName(node) {
150
+ const suffix = node.method === "GET" ? "QueryResponse" : "MutationResponse";
151
+ return this.resolveName(`${node.operationId} ${suffix}`);
152
+ },
153
+ resolveResponseTypedName(node) {
154
+ const suffix = node.method === "GET" ? "QueryResponse" : "MutationResponse";
155
+ return this.resolveTypedName(`${node.operationId} ${suffix}`);
156
+ },
157
+ resolvePathParamsName(node) {
158
+ return this.resolveName(`${node.operationId} PathParams`);
159
+ },
160
+ resolvePathParamsTypedName(node) {
161
+ return this.resolveTypedName(`${node.operationId} PathParams`);
162
+ },
163
+ resolveQueryParamsName(node) {
164
+ return this.resolveName(`${node.operationId} QueryParams`);
165
+ },
166
+ resolveQueryParamsTypedName(node) {
167
+ return this.resolveTypedName(`${node.operationId} QueryParams`);
168
+ },
169
+ resolveHeaderParamsName(node) {
170
+ return this.resolveName(`${node.operationId} HeaderParams`);
171
+ },
172
+ resolveHeaderParamsTypedName(node) {
173
+ return this.resolveTypedName(`${node.operationId} HeaderParams`);
174
+ }
175
+ };
176
+ });
177
+ //#endregion
178
+ Object.defineProperty(exports, "resolverTs", {
179
+ enumerable: true,
180
+ get: function() {
181
+ return resolverTs;
182
+ }
183
+ });
184
+ Object.defineProperty(exports, "resolverTsLegacy", {
185
+ enumerable: true,
186
+ get: function() {
187
+ return resolverTsLegacy;
188
+ }
189
+ });
190
+
191
+ //# sourceMappingURL=resolvers-ebHaaCyw.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolvers-ebHaaCyw.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 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 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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"}
@@ -0,0 +1,4 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_resolvers = require("./resolvers-ebHaaCyw.cjs");
3
+ exports.resolverTs = require_resolvers.resolverTs;
4
+ exports.resolverTsLegacy = require_resolvers.resolverTsLegacy;
@@ -0,0 +1,51 @@
1
+ import { t as __name } from "./chunk--u3MIqq1.js";
2
+ import { r as ResolverTs } from "./types-BSRhtbGl.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, resolverTsLegacy };
51
+ //# sourceMappingURL=resolvers.d.ts.map
@@ -0,0 +1,2 @@
1
+ import { n as resolverTs, t as resolverTsLegacy } from "./resolvers-CH7hINyz.js";
2
+ export { resolverTs, resolverTsLegacy };
@@ -307,8 +307,15 @@ type ResolvedOptions = {
307
307
  paramsCasing: Options['paramsCasing'];
308
308
  legacy: NonNullable<Options['legacy']>;
309
309
  resolver: ResolverTs;
310
+ /**
311
+ * The base resolver without any `transformers.name` wrapping.
312
+ * Used internally to derive enum prefix names so that user-defined
313
+ * name transformations (e.g. appending `Type`) are not embedded in
314
+ * the middle of inline-enum identifiers.
315
+ */
316
+ baseResolver?: ResolverTs;
310
317
  };
311
318
  type PluginTs = PluginFactoryOptions<'plugin-ts', Options, ResolvedOptions, never, ResolvePathOptions, ResolverTs>;
312
319
  //#endregion
313
320
  export { PluginTs as n, ResolverTs as r, Options as t };
314
- //# sourceMappingURL=types-BA1ZCQ5p.d.ts.map
321
+ //# sourceMappingURL=types-BSRhtbGl.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubb/plugin-ts",
3
- "version": "5.0.0-alpha.12",
3
+ "version": "5.0.0-alpha.13",
4
4
  "description": "TypeScript code generation plugin for Kubb, transforming OpenAPI schemas into TypeScript interfaces, types, and utility functions.",
5
5
  "keywords": [
6
6
  "typescript",
@@ -39,6 +39,10 @@
39
39
  "import": "./dist/generators.js",
40
40
  "require": "./dist/generators.cjs"
41
41
  },
42
+ "./resolvers": {
43
+ "import": "./dist/resolvers.js",
44
+ "require": "./dist/resolvers.cjs"
45
+ },
42
46
  "./package.json": "./package.json"
43
47
  },
44
48
  "types": "./dist/index.d.ts",
@@ -49,6 +53,9 @@
49
53
  ],
50
54
  "generators": [
51
55
  "./dist/generators.d.ts"
56
+ ],
57
+ "resolvers": [
58
+ "./dist/resolvers.d.ts"
52
59
  ]
53
60
  }
54
61
  },
@@ -71,10 +78,10 @@
71
78
  "@kubb/react-fabric": "0.14.0",
72
79
  "remeda": "^2.33.6",
73
80
  "typescript": "5.9.3",
74
- "@kubb/oas": "5.0.0-alpha.12",
75
- "@kubb/plugin-oas": "5.0.0-alpha.12",
76
- "@kubb/ast": "5.0.0-alpha.12",
77
- "@kubb/core": "5.0.0-alpha.12"
81
+ "@kubb/ast": "5.0.0-alpha.13",
82
+ "@kubb/core": "5.0.0-alpha.13",
83
+ "@kubb/oas": "5.0.0-alpha.13",
84
+ "@kubb/plugin-oas": "5.0.0-alpha.13"
78
85
  },
79
86
  "peerDependencies": {
80
87
  "@kubb/react-fabric": "0.14.0"
@@ -17,6 +17,7 @@ type Props = {
17
17
  enumKeyCasing: PluginTs['resolvedOptions']['enumKeyCasing']
18
18
  syntaxType: PluginTs['resolvedOptions']['syntaxType']
19
19
  resolver: PluginTs['resolvedOptions']['resolver']
20
+ legacy?: boolean
20
21
  description?: string
21
22
  keysToOmit?: string[]
22
23
  }
@@ -11,6 +11,7 @@ import {
11
11
  buildGroupedParamsSchema,
12
12
  buildLegacyResponsesSchemaNode,
13
13
  buildLegacyResponseUnionSchemaNode,
14
+ buildParamsSchema,
14
15
  buildResponsesSchemaNode,
15
16
  buildResponseUnionSchemaNode,
16
17
  nameUnnamedEnums,
@@ -20,7 +21,7 @@ export const typeGenerator = defineGenerator<PluginTs>({
20
21
  name: 'typescript',
21
22
  type: 'react',
22
23
  Operation({ node, adapter, options }) {
23
- const { enumType, enumKeyCasing, optionalType, arrayType, syntaxType, paramsCasing, group, resolver, legacy } = options
24
+ const { enumType, enumKeyCasing, optionalType, arrayType, syntaxType, paramsCasing, group, resolver, baseResolver, legacy } = options
24
25
  const { mode, getFile, resolveBanner, resolveFooter } = useKubb<PluginTs>()
25
26
 
26
27
  const file = getFile({
@@ -71,6 +72,7 @@ export const typeGenerator = defineGenerator<PluginTs>({
71
72
  syntaxType={syntaxType}
72
73
  resolver={resolver}
73
74
  keysToOmit={keysToOmit}
75
+ legacy={legacy}
74
76
  />
75
77
  </>
76
78
  )
@@ -79,9 +81,10 @@ export const typeGenerator = defineGenerator<PluginTs>({
79
81
  const responseTypes = legacy
80
82
  ? node.responses.map((res) => {
81
83
  const responseName = resolver.resolveResponseStatusName(node, res.statusCode)
84
+ const baseResponseName = (baseResolver ?? resolver).resolveResponseStatusName(node, res.statusCode)
82
85
 
83
86
  return renderSchemaType({
84
- node: res.schema ? nameUnnamedEnums(res.schema, responseName) : res.schema,
87
+ node: res.schema ? nameUnnamedEnums(res.schema, baseResponseName) : res.schema,
85
88
  name: responseName,
86
89
  typedName: resolver.resolveResponseStatusTypedName(node, res.statusCode),
87
90
  description: res.description,
@@ -100,10 +103,10 @@ export const typeGenerator = defineGenerator<PluginTs>({
100
103
 
101
104
  const requestType = node.requestBody?.schema
102
105
  ? renderSchemaType({
103
- node: legacy ? nameUnnamedEnums(node.requestBody.schema, resolver.resolveDataName(node)) : node.requestBody.schema,
106
+ node: legacy ? nameUnnamedEnums(node.requestBody.schema, (baseResolver ?? resolver).resolveDataName(node)) : node.requestBody.schema,
104
107
  name: resolver.resolveDataName(node),
105
108
  typedName: resolver.resolveDataTypedName(node),
106
- description: node.requestBody.schema.description,
109
+ description: node.requestBody.description ?? node.requestBody.schema.description,
107
110
  keysToOmit: node.requestBody.keysToOmit,
108
111
  })
109
112
  : null
@@ -116,21 +119,21 @@ export const typeGenerator = defineGenerator<PluginTs>({
116
119
  const legacyParamTypes = [
117
120
  pathParams.length > 0
118
121
  ? renderSchemaType({
119
- node: buildGroupedParamsSchema({ params: pathParams, parentName: resolver.resolvePathParamsName!(node) }),
122
+ node: buildGroupedParamsSchema({ params: pathParams, parentName: (baseResolver ?? resolver).resolvePathParamsName!(node) }),
120
123
  name: resolver.resolvePathParamsName!(node),
121
124
  typedName: resolver.resolvePathParamsTypedName!(node),
122
125
  })
123
126
  : null,
124
127
  queryParams.length > 0
125
128
  ? renderSchemaType({
126
- node: buildGroupedParamsSchema({ params: queryParams, parentName: resolver.resolveQueryParamsName!(node) }),
129
+ node: buildGroupedParamsSchema({ params: queryParams, parentName: (baseResolver ?? resolver).resolveQueryParamsName!(node) }),
127
130
  name: resolver.resolveQueryParamsName!(node),
128
131
  typedName: resolver.resolveQueryParamsTypedName!(node),
129
132
  })
130
133
  : null,
131
134
  headerParams.length > 0
132
135
  ? renderSchemaType({
133
- node: buildGroupedParamsSchema({ params: headerParams, parentName: resolver.resolveHeaderParamsName!(node) }),
136
+ node: buildGroupedParamsSchema({ params: headerParams, parentName: (baseResolver ?? resolver).resolveHeaderParamsName!(node) }),
134
137
  name: resolver.resolveHeaderParamsName!(node),
135
138
  typedName: resolver.resolveHeaderParamsTypedName!(node),
136
139
  })
@@ -154,8 +157,8 @@ export const typeGenerator = defineGenerator<PluginTs>({
154
157
  {legacyParamTypes}
155
158
  {responseTypes}
156
159
  {requestType}
157
- {legacyResponsesType}
158
160
  {legacyResponseType}
161
+ {legacyResponsesType}
159
162
  </File>
160
163
  )
161
164
  }
@@ -168,6 +171,16 @@ export const typeGenerator = defineGenerator<PluginTs>({
168
171
  }),
169
172
  )
170
173
 
174
+ const queryParamsList = params.filter((p) => p.in === 'query')
175
+ const queryParamsType =
176
+ queryParamsList.length > 0
177
+ ? renderSchemaType({
178
+ node: buildParamsSchema({ params: queryParamsList, node, resolver }),
179
+ name: resolver.resolveQueryParamsName!(node),
180
+ typedName: resolver.resolveQueryParamsTypedName!(node),
181
+ })
182
+ : null
183
+
171
184
  const dataType = renderSchemaType({
172
185
  node: buildDataSchemaNode({ node: { ...node, parameters: params }, resolver }),
173
186
  name: resolver.resolveRequestConfigName(node),
@@ -190,6 +203,7 @@ export const typeGenerator = defineGenerator<PluginTs>({
190
203
  return (
191
204
  <File baseName={file.baseName} path={file.path} meta={file.meta} banner={resolveBanner()} footer={resolveFooter()}>
192
205
  {paramTypes}
206
+ {queryParamsType}
193
207
  {responseTypes}
194
208
  {requestType}
195
209
  {dataType}
@@ -199,7 +213,7 @@ export const typeGenerator = defineGenerator<PluginTs>({
199
213
  )
200
214
  },
201
215
  Schema({ node, adapter, options }) {
202
- const { enumType, enumKeyCasing, syntaxType, optionalType, arrayType, resolver } = options
216
+ const { enumType, enumKeyCasing, syntaxType, optionalType, arrayType, resolver, legacy } = options
203
217
  const { mode, getFile, resolveBanner, resolveFooter } = useKubb<PluginTs>()
204
218
 
205
219
  if (!node.name) {
@@ -237,6 +251,7 @@ export const typeGenerator = defineGenerator<PluginTs>({
237
251
  arrayType={arrayType}
238
252
  syntaxType={syntaxType}
239
253
  resolver={resolver}
254
+ legacy={legacy}
240
255
  />
241
256
  </File>
242
257
  )
@@ -169,7 +169,7 @@ export function buildGroupedParamsSchema({ params, parentName }: BuildGroupedPar
169
169
 
170
170
  /**
171
171
  * Builds the legacy wrapper `ObjectSchemaNode` for `<OperationId>Mutation` / `<OperationId>Query`.
172
- * Structure: `{ Response, Request (mutation) | QueryParams (query), Errors }`.
172
+ * Structure: `{ Response, Request?, QueryParams?, PathParams?, HeaderParams?, Errors }`.
173
173
  * Mirrors the v4 naming convention where this type acts as a namespace for the operation's shapes.
174
174
  *
175
175
  * @deprecated Legacy only — will be removed in v6.
@@ -211,11 +211,13 @@ export function buildLegacyResponsesSchemaNode({ node, resolver }: BuildOperatio
211
211
  schema: createSchema({ type: 'ref', name: resolver.resolveDataTypedName(node) }),
212
212
  }),
213
213
  )
214
- } else if (isGet && node.parameters.some((p) => p.in === 'query')) {
214
+ }
215
+
216
+ if (node.parameters.some((p) => p.in === 'query') && resolver.resolveQueryParamsTypedName) {
215
217
  properties.push(
216
218
  createProperty({
217
219
  name: 'QueryParams',
218
- schema: createSchema({ type: 'ref', name: resolver.resolveQueryParamsTypedName!(node) }),
220
+ schema: createSchema({ type: 'ref', name: resolver.resolveQueryParamsTypedName(node) }),
219
221
  }),
220
222
  )
221
223
  }
package/src/index.ts CHANGED
@@ -1,3 +1,2 @@
1
1
  export { pluginTs, pluginTsName } from './plugin.ts'
2
- export { resolverTs, resolverTsLegacy } from './resolverTs.ts'
3
2
  export type { PluginTs } from './types.ts'
package/src/plugin.ts CHANGED
@@ -2,8 +2,8 @@ import path from 'node:path'
2
2
  import { camelCase } from '@internals/utils'
3
3
  import { walk } from '@kubb/ast'
4
4
  import { createPlugin, type Group, getBarrelFiles, getMode, renderOperation, renderSchema } from '@kubb/core'
5
- import { typeGenerator } from './generators'
6
- import { resolverTs, resolverTsLegacy } from './resolverTs.ts'
5
+ import { typeGenerator } from './generators/index.ts'
6
+ import { resolverTs, resolverTsLegacy } from './resolvers/index.ts'
7
7
  import type { PluginTs } from './types.ts'
8
8
 
9
9
  export const pluginTsName = 'plugin-ts' satisfies PluginTs['name']
@@ -59,6 +59,7 @@ export const pluginTs = createPlugin<PluginTs>((options) => {
59
59
  paramsCasing,
60
60
  legacy,
61
61
  resolver,
62
+ baseResolver,
62
63
  },
63
64
  resolvePath(baseName, pathMode, options) {
64
65
  const root = path.resolve(this.config.root, this.config.output.path)
package/src/printer.ts CHANGED
@@ -134,11 +134,14 @@ function buildPropertyType(schema: SchemaNode, baseType: ts.TypeNode, optionalTy
134
134
  * Collects JSDoc annotation strings (description, deprecated, min/max, pattern, default, example, type) for a schema node.
135
135
  */
136
136
  function buildPropertyJSDocComments(schema: SchemaNode): Array<string | undefined> {
137
+ const isArray = schema.type === 'array'
138
+
137
139
  return [
138
140
  'description' in schema && schema.description ? `@description ${jsStringEscape(schema.description)}` : undefined,
139
141
  'deprecated' in schema && schema.deprecated ? '@deprecated' : undefined,
140
- 'min' in schema && schema.min !== undefined ? `@minLength ${schema.min}` : undefined,
141
- 'max' in schema && schema.max !== undefined ? `@maxLength ${schema.max}` : undefined,
142
+ // minItems/maxItems on arrays should not be emitted as @minLength/@maxLength
143
+ !isArray && 'min' in schema && schema.min !== undefined ? `@minLength ${schema.min}` : undefined,
144
+ !isArray && 'max' in schema && schema.max !== undefined ? `@maxLength ${schema.max}` : undefined,
142
145
  'pattern' in schema && schema.pattern ? `@pattern ${schema.pattern}` : undefined,
143
146
  'default' in schema && schema.default !== undefined
144
147
  ? `@default ${'primitive' in schema && schema.primitive === 'string' ? stringify(schema.default as string) : schema.default}`
@@ -0,0 +1,2 @@
1
+ export { resolverTs } from './resolverTs.ts'
2
+ export { resolverTsLegacy } from './resolverTsLegacy.ts'
@@ -1,6 +1,6 @@
1
1
  import { pascalCase } from '@internals/utils'
2
2
  import { defineResolver } from '@kubb/core'
3
- import type { PluginTs } from './types.ts'
3
+ import type { PluginTs } from '../types.ts'
4
4
 
5
5
  function resolveName(name: string, type?: 'file' | 'function' | 'type' | 'const'): string {
6
6
  return pascalCase(name, { isFile: type === 'file' })
@@ -83,13 +83,11 @@ export const resolverTs = defineResolver<PluginTs>(() => {
83
83
  resolvePathParamsTypedName(_node) {
84
84
  throw new Error('resolvePathParamsTypedName is only available in legacy mode (legacy: true). Use resolveParamTypedName per individual parameter instead.')
85
85
  },
86
- resolveQueryParamsName(_node) {
87
- throw new Error('resolveQueryParamsName is only available in legacy mode (legacy: true). Use resolveParamName per individual parameter instead.')
86
+ resolveQueryParamsName(node) {
87
+ return this.resolveName(`${node.operationId} QueryParams`)
88
88
  },
89
- resolveQueryParamsTypedName(_node) {
90
- throw new Error(
91
- 'resolveQueryParamsTypedName is only available in legacy mode (legacy: true). Use resolveParamTypedName per individual parameter instead.',
92
- )
89
+ resolveQueryParamsTypedName(node) {
90
+ return this.resolveTypedName(`${node.operationId} QueryParams`)
93
91
  },
94
92
  resolveHeaderParamsName(_node) {
95
93
  throw new Error('resolveHeaderParamsName is only available in legacy mode (legacy: true). Use resolveParamName per individual parameter instead.')
@@ -101,85 +99,3 @@ export const resolverTs = defineResolver<PluginTs>(() => {
101
99
  },
102
100
  }
103
101
  })
104
-
105
- /**
106
- * Legacy resolver for `@kubb/plugin-ts` that reproduces the naming conventions
107
- * used before the v2 resolver refactor. Enable via `legacy: true` in plugin options.
108
- *
109
- * Key differences from the default resolver:
110
- * - Response status types: `<OperationId><StatusCode>` (e.g. `CreatePets201`) instead of `<OperationId>Status201`
111
- * - Default/error responses: `<OperationId>Error` instead of `<OperationId>StatusDefault`
112
- * - Request body: `<OperationId>MutationRequest` (non-GET) / `<OperationId>QueryRequest` (GET)
113
- * - Combined responses type: `<OperationId>Mutation` / `<OperationId>Query`
114
- * - Response union: `<OperationId>MutationResponse` / `<OperationId>QueryResponse`
115
- *
116
- * @example
117
- * ```ts
118
- * import { resolverTsLegacy } from '@kubb/plugin-ts'
119
- *
120
- * resolverTsLegacy.resolveResponseStatusTypedName(node, 201) // → 'CreatePets201'
121
- * resolverTsLegacy.resolveResponseStatusTypedName(node, 'default') // → 'CreatePetsError'
122
- * resolverTsLegacy.resolveDataTypedName(node) // → 'CreatePetsMutationRequest' (POST)
123
- * resolverTsLegacy.resolveResponsesTypedName(node) // → 'CreatePetsMutation' (POST)
124
- * resolverTsLegacy.resolveResponseTypedName(node) // → 'CreatePetsMutationResponse' (POST)
125
- * ```
126
- */
127
- export const resolverTsLegacy = defineResolver<PluginTs>(() => {
128
- return {
129
- ...resolverTs,
130
- resolveResponseStatusName(node, statusCode) {
131
- if (statusCode === 'default') {
132
- return this.resolveName(`${node.operationId} Error`)
133
- }
134
- return this.resolveName(`${node.operationId} ${statusCode}`)
135
- },
136
- resolveResponseStatusTypedName(node, statusCode) {
137
- if (statusCode === 'default') {
138
- return this.resolveTypedName(`${node.operationId} Error`)
139
- }
140
- return this.resolveTypedName(`${node.operationId} ${statusCode}`)
141
- },
142
- resolveDataName(node) {
143
- const suffix = node.method === 'GET' ? 'QueryRequest' : 'MutationRequest'
144
- return this.resolveName(`${node.operationId} ${suffix}`)
145
- },
146
- resolveDataTypedName(node) {
147
- const suffix = node.method === 'GET' ? 'QueryRequest' : 'MutationRequest'
148
- return this.resolveTypedName(`${node.operationId} ${suffix}`)
149
- },
150
- resolveResponsesName(node) {
151
- const suffix = node.method === 'GET' ? 'Query' : 'Mutation'
152
- return this.resolveName(`${node.operationId} ${suffix}`)
153
- },
154
- resolveResponsesTypedName(node) {
155
- const suffix = node.method === 'GET' ? 'Query' : 'Mutation'
156
- return this.resolveTypedName(`${node.operationId} ${suffix}`)
157
- },
158
- resolveResponseName(node) {
159
- const suffix = node.method === 'GET' ? 'QueryResponse' : 'MutationResponse'
160
- return this.resolveName(`${node.operationId} ${suffix}`)
161
- },
162
- resolveResponseTypedName(node) {
163
- const suffix = node.method === 'GET' ? 'QueryResponse' : 'MutationResponse'
164
- return this.resolveTypedName(`${node.operationId} ${suffix}`)
165
- },
166
- resolvePathParamsName(node) {
167
- return this.resolveName(`${node.operationId} PathParams`)
168
- },
169
- resolvePathParamsTypedName(node) {
170
- return this.resolveTypedName(`${node.operationId} PathParams`)
171
- },
172
- resolveQueryParamsName(node) {
173
- return this.resolveName(`${node.operationId} QueryParams`)
174
- },
175
- resolveQueryParamsTypedName(node) {
176
- return this.resolveTypedName(`${node.operationId} QueryParams`)
177
- },
178
- resolveHeaderParamsName(node) {
179
- return this.resolveName(`${node.operationId} HeaderParams`)
180
- },
181
- resolveHeaderParamsTypedName(node) {
182
- return this.resolveTypedName(`${node.operationId} HeaderParams`)
183
- },
184
- }
185
- })