@kubb/core 3.0.0-alpha.6 → 3.0.0-alpha.8

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 (72) hide show
  1. package/dist/{FileManager-wyXRkgIk.d.cts → FileManager-B0GJlthB.d.cts} +30 -16
  2. package/dist/{FileManager-Ceski1W9.d.ts → FileManager-BFycBDqG.d.ts} +30 -16
  3. package/dist/chunk-27CPVXAT.js +945 -0
  4. package/dist/chunk-27CPVXAT.js.map +1 -0
  5. package/dist/{chunk-34BPAXR2.cjs → chunk-5E2I6KH4.cjs} +7 -7
  6. package/dist/{chunk-34BPAXR2.cjs.map → chunk-5E2I6KH4.cjs.map} +1 -1
  7. package/dist/chunk-5IGANEGE.cjs +1564 -0
  8. package/dist/chunk-5IGANEGE.cjs.map +1 -0
  9. package/dist/{chunk-67C6RBGQ.cjs → chunk-A6PCLWEY.cjs} +5 -5
  10. package/dist/{chunk-67C6RBGQ.cjs.map → chunk-A6PCLWEY.cjs.map} +1 -1
  11. package/dist/{chunk-5HN4LW3R.cjs → chunk-DID47EQD.cjs} +3 -3
  12. package/dist/{chunk-5HN4LW3R.cjs.map → chunk-DID47EQD.cjs.map} +1 -1
  13. package/dist/{chunk-25NKJ3DV.js → chunk-HBQM723K.js} +6 -6
  14. package/dist/{chunk-LOLEBOMW.cjs → chunk-IPZQXBA2.cjs} +16 -21
  15. package/dist/chunk-IPZQXBA2.cjs.map +1 -0
  16. package/dist/{chunk-76UEJFFE.js → chunk-SCR3LUXT.js} +9 -16
  17. package/dist/{chunk-76UEJFFE.js.map → chunk-SCR3LUXT.js.map} +1 -1
  18. package/dist/{chunk-XCPFG6DO.cjs → chunk-SEH6NUCX.cjs} +4 -28
  19. package/dist/chunk-SEH6NUCX.cjs.map +1 -0
  20. package/dist/index.cjs +380 -378
  21. package/dist/index.cjs.map +1 -1
  22. package/dist/index.d.cts +2 -2
  23. package/dist/index.d.ts +2 -2
  24. package/dist/index.js +325 -319
  25. package/dist/index.js.map +1 -1
  26. package/dist/logger.cjs +4 -4
  27. package/dist/logger.js +2 -3
  28. package/dist/mocks.cjs +20 -15
  29. package/dist/mocks.cjs.map +1 -1
  30. package/dist/mocks.d.cts +6 -5
  31. package/dist/mocks.d.ts +6 -5
  32. package/dist/mocks.js +15 -11
  33. package/dist/mocks.js.map +1 -1
  34. package/dist/{prompt-6FWP747F.cjs → prompt-DVQN7JTN.cjs} +61 -61
  35. package/dist/{prompt-6FWP747F.cjs.map → prompt-DVQN7JTN.cjs.map} +1 -1
  36. package/dist/{prompt-HK3MWREM.js → prompt-WQQUN22Z.js} +5 -6
  37. package/dist/{prompt-HK3MWREM.js.map → prompt-WQQUN22Z.js.map} +1 -1
  38. package/dist/transformers.cjs +19 -19
  39. package/dist/transformers.js +0 -1
  40. package/dist/transformers.js.map +1 -1
  41. package/dist/utils.cjs +8 -4
  42. package/dist/utils.cjs.map +1 -1
  43. package/dist/utils.d.cts +25 -24
  44. package/dist/utils.d.ts +25 -24
  45. package/dist/utils.js +5 -2
  46. package/package.json +7 -7
  47. package/src/BarrelManager.ts +90 -40
  48. package/src/FileManager.ts +89 -109
  49. package/src/PluginManager.ts +2 -1
  50. package/src/__snapshots__/barrel.json +91 -0
  51. package/src/__snapshots__/grouped.json +114 -0
  52. package/src/__snapshots__/ordered.json +62 -0
  53. package/src/build.ts +60 -23
  54. package/src/plugin.ts +2 -2
  55. package/src/types.ts +22 -2
  56. package/src/utils/TreeNode.ts +43 -1
  57. package/src/utils/index.ts +1 -1
  58. package/src/utils/parser.ts +128 -67
  59. package/dist/chunk-AWAZR3D5.js +0 -360
  60. package/dist/chunk-AWAZR3D5.js.map +0 -1
  61. package/dist/chunk-DCZQYCCO.cjs +0 -1155
  62. package/dist/chunk-DCZQYCCO.cjs.map +0 -1
  63. package/dist/chunk-HMLY7DHA.js +0 -16
  64. package/dist/chunk-HMLY7DHA.js.map +0 -1
  65. package/dist/chunk-L3JJLZ5Q.cjs +0 -371
  66. package/dist/chunk-L3JJLZ5Q.cjs.map +0 -1
  67. package/dist/chunk-LOLEBOMW.cjs.map +0 -1
  68. package/dist/chunk-RIEGCND2.js +0 -525
  69. package/dist/chunk-RIEGCND2.js.map +0 -1
  70. package/dist/chunk-XCPFG6DO.cjs.map +0 -1
  71. package/schema.json +0 -86
  72. /package/dist/{chunk-25NKJ3DV.js.map → chunk-HBQM723K.js.map} +0 -0
@@ -1,360 +0,0 @@
1
- import {
2
- camelCase,
3
- orderBy
4
- } from "./chunk-4X5FFJPJ.js";
5
- import {
6
- __privateAdd,
7
- __privateGet,
8
- __privateMethod
9
- } from "./chunk-HMLY7DHA.js";
10
-
11
- // src/utils/FunctionParams.ts
12
- var _items, _FunctionParams_static, orderItems_fn, addParams_fn;
13
- var _FunctionParams = class _FunctionParams {
14
- constructor() {
15
- __privateAdd(this, _items, []);
16
- return this;
17
- }
18
- get items() {
19
- return __privateGet(this, _items).flat();
20
- }
21
- add(item) {
22
- if (!item) {
23
- return this;
24
- }
25
- if (Array.isArray(item)) {
26
- item.filter(Boolean).forEach((it) => __privateGet(this, _items).push(it));
27
- return this;
28
- }
29
- __privateGet(this, _items).push(item);
30
- return this;
31
- }
32
- static toObject(items) {
33
- let type = [];
34
- let name = [];
35
- const enabled = items.every((item) => item.enabled) ? items.at(0)?.enabled : true;
36
- const required = items.every((item) => item.required) ?? true;
37
- items.forEach((item) => {
38
- var _a, _b;
39
- name = __privateMethod(_a = _FunctionParams, _FunctionParams_static, addParams_fn).call(_a, name, { ...item, type: void 0 });
40
- if (items.some((item2) => item2.type)) {
41
- type = __privateMethod(_b = _FunctionParams, _FunctionParams_static, addParams_fn).call(_b, type, item);
42
- }
43
- });
44
- return {
45
- name: `{ ${name.join(", ")} }`,
46
- type: type.length ? `{ ${type.join("; ")} }` : void 0,
47
- enabled,
48
- required
49
- };
50
- }
51
- static toString(items) {
52
- var _a;
53
- const sortedData = __privateMethod(_a = _FunctionParams, _FunctionParams_static, orderItems_fn).call(_a, items);
54
- return sortedData.reduce((acc, item) => {
55
- var _a2, _b, _c;
56
- if (Array.isArray(item)) {
57
- if (item.length <= 0) {
58
- return acc;
59
- }
60
- const subItems = __privateMethod(_a2 = _FunctionParams, _FunctionParams_static, orderItems_fn).call(_a2, item);
61
- const objectItem = _FunctionParams.toObject(subItems);
62
- return __privateMethod(_b = _FunctionParams, _FunctionParams_static, addParams_fn).call(_b, acc, objectItem);
63
- }
64
- return __privateMethod(_c = _FunctionParams, _FunctionParams_static, addParams_fn).call(_c, acc, item);
65
- }, []).join(", ");
66
- }
67
- toObject() {
68
- var _a;
69
- const items = __privateMethod(_a = _FunctionParams, _FunctionParams_static, orderItems_fn).call(_a, __privateGet(this, _items)).flat();
70
- return _FunctionParams.toObject(items);
71
- }
72
- toString() {
73
- var _a;
74
- const items = __privateMethod(_a = _FunctionParams, _FunctionParams_static, orderItems_fn).call(_a, __privateGet(this, _items));
75
- return _FunctionParams.toString(items);
76
- }
77
- };
78
- _items = new WeakMap();
79
- _FunctionParams_static = new WeakSet();
80
- orderItems_fn = function(items) {
81
- return orderBy(
82
- items.filter(Boolean),
83
- [
84
- (v) => {
85
- if (Array.isArray(v)) {
86
- return void 0;
87
- }
88
- return !v.default;
89
- },
90
- (v) => {
91
- if (Array.isArray(v)) {
92
- return void 0;
93
- }
94
- return v.required ?? true;
95
- }
96
- ],
97
- ["desc", "desc"]
98
- );
99
- };
100
- addParams_fn = function(acc, item) {
101
- const { enabled = true, name, type, required = true, ...rest } = item;
102
- if (!enabled) {
103
- return acc;
104
- }
105
- if (!name) {
106
- acc.push(`${type}${rest.default ? ` = ${rest.default}` : ""}`);
107
- return acc;
108
- }
109
- const parameterName = name.startsWith("{") ? name : camelCase(name);
110
- if (type) {
111
- if (required) {
112
- acc.push(`${parameterName}: ${type}${rest.default ? ` = ${rest.default}` : ""}`);
113
- } else {
114
- acc.push(`${parameterName}?: ${type}`);
115
- }
116
- } else {
117
- acc.push(`${parameterName}`);
118
- }
119
- return acc;
120
- };
121
- __privateAdd(_FunctionParams, _FunctionParams_static);
122
- var FunctionParams = _FunctionParams;
123
-
124
- // src/utils/promise.ts
125
- function isPromise(result) {
126
- return !!result && typeof result?.then === "function";
127
- }
128
- function isPromiseFulfilledResult(result) {
129
- return result.status === "fulfilled";
130
- }
131
- function isPromiseRejectedResult(result) {
132
- return result.status === "rejected";
133
- }
134
-
135
- // src/utils/renderTemplate.ts
136
- function renderTemplate(template, data = void 0) {
137
- if (!data || !Object.keys(data).length) {
138
- return template.replace(/{{(.*?)}}/g, "");
139
- }
140
- const matches = template.match(/{{(.*?)}}/g);
141
- return matches?.reduce((prev, curr) => {
142
- const index = curr.split(/{{|}}/).filter(Boolean)[0]?.trim();
143
- if (index === void 0) {
144
- return prev;
145
- }
146
- const value = data[index];
147
- if (value === void 0) {
148
- return prev;
149
- }
150
- return prev.replace(curr, () => {
151
- if (typeof value === "boolean") {
152
- return `${value.toString()}` || "false";
153
- }
154
- return value || "";
155
- }).trim();
156
- }, template) || "";
157
- }
158
-
159
- // src/utils/timeout.ts
160
- async function timeout(ms) {
161
- return new Promise((resolve) => {
162
- setTimeout(() => {
163
- resolve(true);
164
- }, ms);
165
- });
166
- }
167
-
168
- // src/utils/uniqueName.ts
169
- function getUniqueName(originalName, data) {
170
- let used = data[originalName] || 0;
171
- if (used) {
172
- data[originalName] = ++used;
173
- originalName += used;
174
- }
175
- data[originalName] = 1;
176
- return originalName;
177
- }
178
- function setUniqueName(originalName, data) {
179
- let used = data[originalName] || 0;
180
- if (used) {
181
- data[originalName] = ++used;
182
- return originalName;
183
- }
184
- data[originalName] = 1;
185
- return originalName;
186
- }
187
-
188
- // src/utils/URLPath.ts
189
- var URLPath = class {
190
- constructor(path) {
191
- this.path = path;
192
- return this;
193
- }
194
- /**
195
- * Convert Swagger path to URLPath(syntax of Express)
196
- * @example /pet/{petId} => /pet/:petId
197
- */
198
- get URL() {
199
- return this.toURLPath();
200
- }
201
- get isURL() {
202
- try {
203
- const url = new URL(this.path);
204
- if (url?.href) {
205
- return true;
206
- }
207
- } catch (error) {
208
- return false;
209
- }
210
- return false;
211
- }
212
- /**
213
- * Convert Swagger path to template literals/ template strings(camelcase)
214
- * @example /pet/{petId} => `/pet/${petId}`
215
- * @example /account/monetary-accountID => `/account/${monetaryAccountId}`
216
- * @example /account/userID => `/account/${userId}`
217
- */
218
- get template() {
219
- return this.toTemplateString();
220
- }
221
- get object() {
222
- return this.toObject();
223
- }
224
- get params() {
225
- return this.getParams();
226
- }
227
- toObject({ type = "path", replacer, stringify } = {}) {
228
- const object = {
229
- url: type === "path" ? this.toURLPath() : this.toTemplateString(replacer),
230
- params: this.getParams()
231
- };
232
- if (stringify) {
233
- if (type === "template") {
234
- return JSON.stringify(object).replaceAll("'", "").replaceAll(`"`, "");
235
- }
236
- if (object.params) {
237
- return `{ url: '${object.url}', params: ${JSON.stringify(object.params).replaceAll("'", "").replaceAll(`"`, "")} }`;
238
- }
239
- return `{ url: '${object.url}' }`;
240
- }
241
- return object;
242
- }
243
- /**
244
- * Convert Swagger path to template literals/ template strings(camelcase)
245
- * @example /pet/{petId} => `/pet/${petId}`
246
- * @example /account/monetary-accountID => `/account/${monetaryAccountId}`
247
- * @example /account/userID => `/account/${userId}`
248
- */
249
- toTemplateString(replacer) {
250
- const regex = /{(\w|-)*}/g;
251
- const found = this.path.match(regex);
252
- let newPath = this.path.replaceAll("{", "${");
253
- if (found) {
254
- newPath = found.reduce((prev, curr) => {
255
- const pathParam = replacer ? replacer(camelCase(curr)) : camelCase(curr);
256
- const replacement = `\${${pathParam}}`;
257
- return prev.replace(curr, replacement);
258
- }, this.path);
259
- }
260
- return `\`${newPath}\``;
261
- }
262
- getParams(replacer) {
263
- const regex = /{(\w|-)*}/g;
264
- const found = this.path.match(regex);
265
- if (!found) {
266
- return void 0;
267
- }
268
- const params = {};
269
- found.forEach((item) => {
270
- item = item.replaceAll("{", "").replaceAll("}", "");
271
- const pathParam = replacer ? replacer(camelCase(item)) : camelCase(item);
272
- params[pathParam] = pathParam;
273
- }, this.path);
274
- return params;
275
- }
276
- /**
277
- * Convert Swagger path to URLPath(syntax of Express)
278
- * @example /pet/{petId} => /pet/:petId
279
- */
280
- toURLPath() {
281
- return this.path.replaceAll("{", ":").replaceAll("}", "");
282
- }
283
- };
284
-
285
- // src/utils/parser.ts
286
- import hash from "object-hash";
287
- function createFile(file) {
288
- return {
289
- id: hash({ path: file.path }),
290
- name: trimExtName(file.baseName),
291
- extName: file.baseName.split(".").pop() || "",
292
- ...file
293
- };
294
- }
295
- function createFileParser(parser) {
296
- return parser;
297
- }
298
- async function getFileParser(extName) {
299
- switch (extName) {
300
- case "ts":
301
- case "js":
302
- case "tsx":
303
- case "jsx": {
304
- const module = await import("@kubb/parser-ts");
305
- return createFileParser({
306
- createExport({ name, path, isTypeOnly, asAlias }) {
307
- return module.factory.createExportDeclaration({
308
- path,
309
- asAlias,
310
- isTypeOnly,
311
- name
312
- });
313
- },
314
- createImport({ name, path, isTypeOnly }) {
315
- return module.factory.createImportDeclaration({
316
- name,
317
- path,
318
- isTypeOnly
319
- });
320
- },
321
- print(props) {
322
- const source = [module.print([...props.imports, ...props.exports]), props.source].join("\n");
323
- return module.print([], { source, noEmitHelpers: false });
324
- }
325
- });
326
- }
327
- default:
328
- return createFileParser({
329
- createExport() {
330
- return void 0;
331
- },
332
- createImport() {
333
- return void 0;
334
- },
335
- print(props) {
336
- return props.source;
337
- }
338
- });
339
- }
340
- }
341
- function trimExtName(text) {
342
- const extName = text.split(".").pop();
343
- return text.replace(`.${extName}`, "");
344
- }
345
-
346
- export {
347
- FunctionParams,
348
- isPromise,
349
- isPromiseFulfilledResult,
350
- isPromiseRejectedResult,
351
- renderTemplate,
352
- timeout,
353
- getUniqueName,
354
- setUniqueName,
355
- URLPath,
356
- createFile,
357
- createFileParser,
358
- getFileParser
359
- };
360
- //# sourceMappingURL=chunk-AWAZR3D5.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/FunctionParams.ts","../src/utils/promise.ts","../src/utils/renderTemplate.ts","../src/utils/timeout.ts","../src/utils/uniqueName.ts","../src/utils/URLPath.ts","../src/utils/parser.ts"],"sourcesContent":["import { orderBy } from 'natural-orderby'\n\nimport { camelCase } from '../transformers/casing.ts'\n\ntype FunctionParamsASTWithoutType = {\n name?: string\n type?: string\n /**\n * @default true\n */\n required?: boolean\n /**\n * @default true\n */\n enabled?: boolean\n default?: string\n}\n\ntype FunctionParamsASTWithType = {\n name?: never\n type: string\n /**\n * @default true\n */\n required?: boolean\n /**\n * @default true\n */\n enabled?: boolean\n default?: string\n}\n/**\n * @deprecated\n */\nexport type FunctionParamsAST = FunctionParamsASTWithoutType | FunctionParamsASTWithType\n\n/**\n * @deprecated\n */\nexport class FunctionParams {\n #items: Array<FunctionParamsAST | FunctionParamsAST[]> = []\n constructor() {\n return this\n }\n\n get items(): FunctionParamsAST[] {\n return this.#items.flat()\n }\n\n add(item: FunctionParamsAST | Array<FunctionParamsAST | FunctionParamsAST[] | undefined> | undefined): FunctionParams {\n if (!item) {\n return this\n }\n\n if (Array.isArray(item)) {\n item.filter(Boolean).forEach((it) => this.#items.push(it))\n return this\n }\n this.#items.push(item)\n\n return this\n }\n static #orderItems(items: Array<FunctionParamsAST | FunctionParamsAST[]>) {\n return orderBy(\n items.filter(Boolean),\n [\n (v) => {\n if (Array.isArray(v)) {\n return undefined\n }\n return !v.default\n },\n (v) => {\n if (Array.isArray(v)) {\n return undefined\n }\n return v.required ?? true\n },\n ],\n ['desc', 'desc'],\n )\n }\n\n static #addParams(acc: string[], item: FunctionParamsAST) {\n const { enabled = true, name, type, required = true, ...rest } = item\n\n if (!enabled) {\n return acc\n }\n\n if (!name) {\n // when name is not se we will use TypeScript generics\n acc.push(`${type}${rest.default ? ` = ${rest.default}` : ''}`)\n\n return acc\n }\n // TODO check whey we still need the camelcase here\n const parameterName = name.startsWith('{') ? name : camelCase(name)\n\n if (type) {\n if (required) {\n acc.push(`${parameterName}: ${type}${rest.default ? ` = ${rest.default}` : ''}`)\n } else {\n acc.push(`${parameterName}?: ${type}`)\n }\n } else {\n acc.push(`${parameterName}`)\n }\n\n return acc\n }\n\n static toObject(items: FunctionParamsAST[]): FunctionParamsAST {\n let type: string[] = []\n let name: string[] = []\n\n const enabled = items.every((item) => item.enabled) ? items.at(0)?.enabled : true\n const required = items.every((item) => item.required) ?? true\n\n items.forEach((item) => {\n name = FunctionParams.#addParams(name, { ...item, type: undefined })\n if (items.some((item) => item.type)) {\n type = FunctionParams.#addParams(type, item)\n }\n })\n\n return {\n name: `{ ${name.join(', ')} }`,\n type: type.length ? `{ ${type.join('; ')} }` : undefined,\n enabled,\n required,\n }\n }\n\n static toString(items: (FunctionParamsAST | FunctionParamsAST[])[]): string {\n const sortedData = FunctionParams.#orderItems(items)\n\n return sortedData\n .reduce((acc, item) => {\n if (Array.isArray(item)) {\n if (item.length <= 0) {\n return acc\n }\n const subItems = FunctionParams.#orderItems(item) as FunctionParamsAST[]\n const objectItem = FunctionParams.toObject(subItems)\n\n return FunctionParams.#addParams(acc, objectItem)\n }\n\n return FunctionParams.#addParams(acc, item)\n }, [] as string[])\n .join(', ')\n }\n\n toObject(): FunctionParamsAST {\n const items = FunctionParams.#orderItems(this.#items).flat()\n\n return FunctionParams.toObject(items)\n }\n\n toString(): string {\n const items = FunctionParams.#orderItems(this.#items)\n\n return FunctionParams.toString(items)\n }\n}\n","import type { PossiblePromise } from '@kubb/types'\n\nexport function isPromise<T>(result: PossiblePromise<T>): result is Promise<T> {\n return !!result && typeof (result as Promise<unknown>)?.then === 'function'\n}\n\nexport function isPromiseFulfilledResult<T = unknown>(result: PromiseSettledResult<unknown>): result is PromiseFulfilledResult<T> {\n return result.status === 'fulfilled'\n}\n\nexport function isPromiseRejectedResult<T>(result: PromiseSettledResult<unknown>): result is Omit<PromiseRejectedResult, 'reason'> & { reason: T } {\n return result.status === 'rejected'\n}\n","export function renderTemplate<TData extends Record<string, unknown> = Record<string, unknown>>(template: string, data: TData | undefined = undefined): string {\n if (!data || !Object.keys(data).length) {\n return template.replace(/{{(.*?)}}/g, '')\n }\n\n const matches = template.match(/{{(.*?)}}/g)\n\n return (\n matches?.reduce((prev, curr) => {\n const index = curr.split(/{{|}}/).filter(Boolean)[0]?.trim()\n if (index === undefined) {\n return prev\n }\n const value = data[index]\n\n if (value === undefined) {\n return prev\n }\n\n return prev\n .replace(curr, () => {\n if (typeof value === 'boolean') {\n return `${value.toString()}` || 'false'\n }\n\n return (value as string) || ''\n })\n .trim()\n }, template) || ''\n )\n}\n","export async function timeout(ms: number): Promise<unknown> {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(true)\n }, ms)\n })\n}\n","export function getUniqueName(originalName: string, data: Record<string, number>): string {\n let used = data[originalName] || 0\n if (used) {\n data[originalName] = ++used\n originalName += used\n }\n data[originalName] = 1\n return originalName\n}\n\nexport function setUniqueName(originalName: string, data: Record<string, number>): string {\n let used = data[originalName] || 0\n if (used) {\n data[originalName] = ++used\n\n return originalName\n }\n data[originalName] = 1\n return originalName\n}\n","import { camelCase } from '../transformers/casing.ts'\n\nexport type URLObject = {\n url: string\n params?: Record<string, string>\n}\n\ntype ObjectOptions = {\n type?: 'path' | 'template'\n replacer?: (pathParam: string) => string\n stringify?: boolean\n}\n\nexport class URLPath {\n path: string\n\n constructor(path: string) {\n this.path = path\n\n return this\n }\n\n /**\n * Convert Swagger path to URLPath(syntax of Express)\n * @example /pet/{petId} => /pet/:petId\n */\n get URL(): string {\n return this.toURLPath()\n }\n get isURL(): boolean {\n try {\n const url = new URL(this.path)\n if (url?.href) {\n return true\n }\n } catch (error) {\n return false\n }\n return false\n }\n\n /**\n * Convert Swagger path to template literals/ template strings(camelcase)\n * @example /pet/{petId} => `/pet/${petId}`\n * @example /account/monetary-accountID => `/account/${monetaryAccountId}`\n * @example /account/userID => `/account/${userId}`\n */\n get template(): string {\n return this.toTemplateString()\n }\n get object(): URLObject | string {\n return this.toObject()\n }\n get params(): Record<string, string> | undefined {\n return this.getParams()\n }\n\n toObject({ type = 'path', replacer, stringify }: ObjectOptions = {}): URLObject | string {\n const object = {\n url: type === 'path' ? this.toURLPath() : this.toTemplateString(replacer),\n params: this.getParams(),\n }\n\n if (stringify) {\n if (type === 'template') {\n return JSON.stringify(object).replaceAll(\"'\", '').replaceAll(`\"`, '')\n }\n\n if (object.params) {\n return `{ url: '${object.url}', params: ${JSON.stringify(object.params).replaceAll(\"'\", '').replaceAll(`\"`, '')} }`\n }\n\n return `{ url: '${object.url}' }`\n }\n\n return object\n }\n\n /**\n * Convert Swagger path to template literals/ template strings(camelcase)\n * @example /pet/{petId} => `/pet/${petId}`\n * @example /account/monetary-accountID => `/account/${monetaryAccountId}`\n * @example /account/userID => `/account/${userId}`\n */\n toTemplateString(replacer?: (pathParam: string) => string): string {\n const regex = /{(\\w|-)*}/g\n const found = this.path.match(regex)\n let newPath = this.path.replaceAll('{', '${')\n\n if (found) {\n newPath = found.reduce((prev, curr) => {\n const pathParam = replacer ? replacer(camelCase(curr)) : camelCase(curr)\n const replacement = `\\${${pathParam}}`\n\n return prev.replace(curr, replacement)\n }, this.path)\n }\n\n return `\\`${newPath}\\``\n }\n\n getParams(replacer?: (pathParam: string) => string): Record<string, string> | undefined {\n const regex = /{(\\w|-)*}/g\n const found = this.path.match(regex)\n\n if (!found) {\n return undefined\n }\n\n const params: Record<string, string> = {}\n found.forEach((item) => {\n item = item.replaceAll('{', '').replaceAll('}', '')\n\n const pathParam = replacer ? replacer(camelCase(item)) : camelCase(item)\n\n params[pathParam] = pathParam\n }, this.path)\n\n return params\n }\n\n /**\n * Convert Swagger path to URLPath(syntax of Express)\n * @example /pet/{petId} => /pet/:petId\n */\n toURLPath(): string {\n return this.path.replaceAll('{', ':').replaceAll('}', '')\n }\n}\n","import type * as KubbFile from '@kubb/fs/types'\n\nimport hash from 'object-hash'\n\n/**\n * Helper to create a file with name and id set\n */\nexport function createFile<TMeta extends object = object>(file: KubbFile.File<TMeta>): KubbFile.ResolvedFile<TMeta> {\n return {\n id: hash({ path: file.path }),\n name: trimExtName(file.baseName),\n extName: file.baseName.split('.').pop() || '',\n ...file,\n }\n}\n\nexport type ParserModule<TImport = unknown, TExport = unknown> = {\n createImport: (props: {\n name:\n | string\n | Array<\n | string\n | {\n propertyName: string\n name?: string\n }\n >\n path: string\n isTypeOnly?: boolean\n isNameSpace?: boolean\n }) => TImport | undefined\n createExport: (props: {\n path: string\n asAlias?: boolean\n isTypeOnly?: boolean\n name?: string | Array<string>\n }) => TExport | undefined\n print: (props: { imports: Array<TImport>; exports: Array<TExport>; source: string }) => string\n}\n\nexport function createFileParser<TImport = unknown, TExport = unknown>(parser: ParserModule<TImport, TExport>): ParserModule<TImport, TExport> {\n return parser\n}\n\nexport async function getFileParser(extName: string | undefined): Promise<ParserModule<any, any>> {\n switch (extName) {\n case 'ts':\n case 'js':\n case 'tsx':\n case 'jsx': {\n const module = await import('@kubb/parser-ts')\n\n return createFileParser({\n createExport({ name, path, isTypeOnly, asAlias }) {\n return module.factory.createExportDeclaration({\n path,\n asAlias,\n isTypeOnly,\n name,\n })\n },\n createImport({ name, path, isTypeOnly }) {\n return module.factory.createImportDeclaration({\n name: name as any,\n path,\n isTypeOnly,\n })\n },\n print(props) {\n const source = [module.print([...props.imports, ...props.exports]), props.source].join('\\n')\n\n // do some basic linting with the ts compiler\n return module.print([], { source, noEmitHelpers: false })\n },\n })\n }\n default:\n return createFileParser<string>({\n createExport() {\n return undefined\n },\n createImport() {\n return undefined\n },\n print(props) {\n return props.source\n },\n })\n }\n}\n\nexport function trimExtName(text: string): string {\n const extName = text.split('.').pop()\n\n return text.replace(`.${extName}`, '')\n}\n"],"mappings":"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","names":["item","_a"]}