@kubb/core 2.0.0-beta.11 → 2.0.0-beta.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.
- package/dist/chunk-56YH3VX6.js +239 -0
- package/dist/chunk-56YH3VX6.js.map +1 -0
- package/dist/chunk-6N4JBFFS.js +79 -0
- package/dist/chunk-6N4JBFFS.js.map +1 -0
- package/dist/chunk-72O327DC.cjs +247 -0
- package/dist/chunk-72O327DC.cjs.map +1 -0
- package/dist/chunk-77QZQ377.cjs +155 -0
- package/dist/chunk-77QZQ377.cjs.map +1 -0
- package/dist/chunk-ABFPJZJL.cjs +131 -0
- package/dist/chunk-ABFPJZJL.cjs.map +1 -0
- package/dist/chunk-FOQFLMOC.js +2336 -0
- package/dist/chunk-FOQFLMOC.js.map +1 -0
- package/dist/chunk-I7UUR5MZ.cjs +91 -0
- package/dist/chunk-I7UUR5MZ.cjs.map +1 -0
- package/dist/chunk-L6F5QUH2.js +129 -0
- package/dist/chunk-L6F5QUH2.js.map +1 -0
- package/dist/chunk-PY7I7OEN.cjs +92 -0
- package/dist/chunk-PY7I7OEN.cjs.map +1 -0
- package/dist/chunk-SX2AYX5F.js +18 -0
- package/dist/chunk-SX2AYX5F.js.map +1 -0
- package/dist/chunk-WFDR7OMY.js +148 -0
- package/dist/chunk-WFDR7OMY.js.map +1 -0
- package/dist/chunk-Z7XZQBAK.cjs +2339 -0
- package/dist/chunk-Z7XZQBAK.cjs.map +1 -0
- package/dist/fs.cjs +19 -2372
- package/dist/fs.cjs.map +1 -1
- package/dist/fs.js +3 -2373
- package/dist/fs.js.map +1 -1
- package/dist/index.cjs +219 -3118
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +0 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +55 -3245
- package/dist/index.js.map +1 -1
- package/dist/logger.cjs +16 -81
- package/dist/logger.cjs.map +1 -1
- package/dist/logger.d.cts +2 -3
- package/dist/logger.d.ts +2 -3
- package/dist/logger.js +2 -73
- package/dist/logger.js.map +1 -1
- package/dist/transformers.cjs +40 -138
- package/dist/transformers.cjs.map +1 -1
- package/dist/transformers.js +14 -126
- package/dist/transformers.js.map +1 -1
- package/dist/utils.cjs +29 -461
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.js +10 -453
- package/dist/utils.js.map +1 -1
- package/package.json +7 -7
- package/src/BarrelManager.ts +3 -3
- package/src/FileManager.ts +6 -5
- package/src/build.ts +8 -8
- package/src/logger.ts +6 -8
- package/src/plugin.ts +1 -1
- package/src/transformers/casing.ts +3 -3
- package/src/utils/FunctionParams.ts +2 -2
- package/src/utils/URLPath.ts +5 -5
package/dist/utils.js
CHANGED
|
@@ -1,243 +1,16 @@
|
|
|
1
1
|
import { createRequire } from 'module';
|
|
2
|
+
export { Queue, URLPath, getUniqueName, setUniqueName, timeout } from './chunk-56YH3VX6.js';
|
|
3
|
+
import { camelCase } from './chunk-SX2AYX5F.js';
|
|
4
|
+
import { init_esm_shims } from './chunk-6N4JBFFS.js';
|
|
2
5
|
import { orderBy } from 'natural-orderby';
|
|
3
|
-
import { camelCase as camelCase$1, camelCaseTransformMerge, pascalCase as pascalCase$1, pascalCaseTransformMerge } from 'change-case';
|
|
4
|
-
import crypto from 'crypto';
|
|
5
|
-
import { performance } from 'perf_hooks';
|
|
6
|
-
import { EventEmitter as EventEmitter$1 } from 'events';
|
|
7
6
|
|
|
8
7
|
createRequire(import.meta.url);
|
|
9
|
-
|
|
10
|
-
var __accessCheck = (obj, member, msg) => {
|
|
11
|
-
if (!member.has(obj))
|
|
12
|
-
throw TypeError("Cannot " + msg);
|
|
13
|
-
};
|
|
14
|
-
var __privateGet = (obj, member, getter) => {
|
|
15
|
-
__accessCheck(obj, member, "read from private field");
|
|
16
|
-
return getter ? getter.call(obj) : member.get(obj);
|
|
17
|
-
};
|
|
18
|
-
var __privateAdd = (obj, member, value) => {
|
|
19
|
-
if (member.has(obj))
|
|
20
|
-
throw TypeError("Cannot add the same private member more than once");
|
|
21
|
-
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
22
|
-
};
|
|
23
|
-
var __privateSet = (obj, member, value, setter) => {
|
|
24
|
-
__accessCheck(obj, member, "write to private field");
|
|
25
|
-
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
26
|
-
return value;
|
|
27
|
-
};
|
|
28
|
-
var __privateWrapper = (obj, member, setter, getter) => ({
|
|
29
|
-
set _(value) {
|
|
30
|
-
__privateSet(obj, member, value, setter);
|
|
31
|
-
},
|
|
32
|
-
get _() {
|
|
33
|
-
return __privateGet(obj, member, getter);
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
var __privateMethod = (obj, member, method) => {
|
|
37
|
-
__accessCheck(obj, member, "access private method");
|
|
38
|
-
return method;
|
|
39
|
-
};
|
|
40
|
-
function camelCase(text) {
|
|
41
|
-
return camelCase$1(text, { delimiter: "", stripRegexp: /[^A-Z0-9$]/gi, transform: camelCaseTransformMerge });
|
|
42
|
-
}
|
|
43
|
-
function pascalCase(text) {
|
|
44
|
-
return pascalCase$1(text, { delimiter: "", stripRegexp: /[^A-Z0-9$]/gi, transform: pascalCaseTransformMerge });
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
// src/transformers/combineCodes.ts
|
|
48
|
-
function combineCodes(codes) {
|
|
49
|
-
return codes.join("\n");
|
|
50
|
-
}
|
|
51
8
|
|
|
52
|
-
// src/
|
|
53
|
-
|
|
54
|
-
const filteredComments = comments.filter(Boolean);
|
|
55
|
-
if (!filteredComments.length) {
|
|
56
|
-
return "";
|
|
57
|
-
}
|
|
58
|
-
return `/**
|
|
59
|
-
* ${filteredComments.join("\n * ")}
|
|
60
|
-
*/`;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
// src/transformers/escape.ts
|
|
64
|
-
function escape(text) {
|
|
65
|
-
return text ? text.replaceAll("`", "\\`") : "";
|
|
66
|
-
}
|
|
67
|
-
function jsStringEscape(input) {
|
|
68
|
-
return `${input}`.replace(/["'\\\n\r\u2028\u2029]/g, (character) => {
|
|
69
|
-
switch (character) {
|
|
70
|
-
case '"':
|
|
71
|
-
case "'":
|
|
72
|
-
case "\\":
|
|
73
|
-
return "\\" + character;
|
|
74
|
-
case "\n":
|
|
75
|
-
return "\\n";
|
|
76
|
-
case "\r":
|
|
77
|
-
return "\\r";
|
|
78
|
-
case "\u2028":
|
|
79
|
-
return "\\u2028";
|
|
80
|
-
case "\u2029":
|
|
81
|
-
return "\\u2029";
|
|
82
|
-
default:
|
|
83
|
-
return "";
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
// src/transformers/indent.ts
|
|
89
|
-
function createIndent(size) {
|
|
90
|
-
return Array.from({ length: size + 1 }).join(" ");
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
// src/transformers/nameSorter.ts
|
|
94
|
-
function nameSorter(a, b) {
|
|
95
|
-
if (a.name < b.name) {
|
|
96
|
-
return -1;
|
|
97
|
-
}
|
|
98
|
-
if (a.name > b.name) {
|
|
99
|
-
return 1;
|
|
100
|
-
}
|
|
101
|
-
return 0;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
// src/transformers/searchAndReplace.ts
|
|
105
|
-
function searchAndReplace(options) {
|
|
106
|
-
const { text, replaceBy, prefix = "", key } = options;
|
|
107
|
-
const searchValues = options.searchValues?.(prefix, key) || [
|
|
108
|
-
`${prefix}["${key}"]`,
|
|
109
|
-
`${prefix}['${key}']`,
|
|
110
|
-
`${prefix}[\`${key}\`]`,
|
|
111
|
-
`${prefix}"${key}"`,
|
|
112
|
-
`${prefix}'${key}'`,
|
|
113
|
-
`${prefix}\`${key}\``,
|
|
114
|
-
new RegExp(`${prefix}${key}`, "g")
|
|
115
|
-
];
|
|
116
|
-
return searchValues.reduce((prev, searchValue) => {
|
|
117
|
-
return prev.toString().replaceAll(searchValue, replaceBy);
|
|
118
|
-
}, text);
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
// src/transformers/transformReservedWord.ts
|
|
122
|
-
var reservedWords = [
|
|
123
|
-
"abstract",
|
|
124
|
-
"arguments",
|
|
125
|
-
"boolean",
|
|
126
|
-
"break",
|
|
127
|
-
"byte",
|
|
128
|
-
"case",
|
|
129
|
-
"catch",
|
|
130
|
-
"char",
|
|
131
|
-
"class",
|
|
132
|
-
"const",
|
|
133
|
-
"continue",
|
|
134
|
-
"debugger",
|
|
135
|
-
"default",
|
|
136
|
-
"delete",
|
|
137
|
-
"do",
|
|
138
|
-
"double",
|
|
139
|
-
"else",
|
|
140
|
-
"enum",
|
|
141
|
-
"eval",
|
|
142
|
-
"export",
|
|
143
|
-
"extends",
|
|
144
|
-
"false",
|
|
145
|
-
"final",
|
|
146
|
-
"finally",
|
|
147
|
-
"float",
|
|
148
|
-
"for",
|
|
149
|
-
"function",
|
|
150
|
-
"goto",
|
|
151
|
-
"if",
|
|
152
|
-
"implements",
|
|
153
|
-
"import",
|
|
154
|
-
"in",
|
|
155
|
-
"instanceof",
|
|
156
|
-
"int",
|
|
157
|
-
"interface",
|
|
158
|
-
"let",
|
|
159
|
-
"long",
|
|
160
|
-
"native",
|
|
161
|
-
"new",
|
|
162
|
-
"null",
|
|
163
|
-
"package",
|
|
164
|
-
"private",
|
|
165
|
-
"protected",
|
|
166
|
-
"public",
|
|
167
|
-
"return",
|
|
168
|
-
"short",
|
|
169
|
-
"static",
|
|
170
|
-
"super",
|
|
171
|
-
"switch",
|
|
172
|
-
"synchronized",
|
|
173
|
-
"this",
|
|
174
|
-
"throw",
|
|
175
|
-
"throws",
|
|
176
|
-
"transient",
|
|
177
|
-
"true",
|
|
178
|
-
"try",
|
|
179
|
-
"typeof",
|
|
180
|
-
"var",
|
|
181
|
-
"void",
|
|
182
|
-
"volatile",
|
|
183
|
-
"while",
|
|
184
|
-
"with",
|
|
185
|
-
"yield",
|
|
186
|
-
"Array",
|
|
187
|
-
"Date",
|
|
188
|
-
"eval",
|
|
189
|
-
"function",
|
|
190
|
-
"hasOwnProperty",
|
|
191
|
-
"Infinity",
|
|
192
|
-
"isFinite",
|
|
193
|
-
"isNaN",
|
|
194
|
-
"isPrototypeOf",
|
|
195
|
-
"length",
|
|
196
|
-
"Math",
|
|
197
|
-
"name",
|
|
198
|
-
"NaN",
|
|
199
|
-
"Number",
|
|
200
|
-
"Object",
|
|
201
|
-
"prototype",
|
|
202
|
-
"String",
|
|
203
|
-
"toString",
|
|
204
|
-
"undefined",
|
|
205
|
-
"valueOf"
|
|
206
|
-
];
|
|
207
|
-
function transformReservedWord(word) {
|
|
208
|
-
if (word && reservedWords.includes(word) || word?.match(/^\d/)) {
|
|
209
|
-
return `_${word}`;
|
|
210
|
-
}
|
|
211
|
-
return word;
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
// src/transformers/trim.ts
|
|
215
|
-
function trim(text) {
|
|
216
|
-
return text.replaceAll(/\n/g, "").trim();
|
|
217
|
-
}
|
|
218
|
-
function trimExtName(text) {
|
|
219
|
-
return text.replace(/\.[^/.]+$/, "");
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
// src/transformers/index.ts
|
|
223
|
-
var transformers_default = {
|
|
224
|
-
combineCodes,
|
|
225
|
-
escape,
|
|
226
|
-
jsStringEscape,
|
|
227
|
-
createIndent,
|
|
228
|
-
transformReservedWord,
|
|
229
|
-
nameSorter,
|
|
230
|
-
searchAndReplace,
|
|
231
|
-
trim,
|
|
232
|
-
trimExtName,
|
|
233
|
-
JSDoc: {
|
|
234
|
-
createJSDocBlockText
|
|
235
|
-
},
|
|
236
|
-
camelCase,
|
|
237
|
-
pascalCase
|
|
238
|
-
};
|
|
9
|
+
// src/utils/index.ts
|
|
10
|
+
init_esm_shims();
|
|
239
11
|
|
|
240
12
|
// src/utils/FunctionParams.ts
|
|
13
|
+
init_esm_shims();
|
|
241
14
|
var FunctionParams = class {
|
|
242
15
|
constructor(type) {
|
|
243
16
|
this.items = [];
|
|
@@ -262,7 +35,7 @@ var FunctionParams = class {
|
|
|
262
35
|
acc.push(`${type}${rest.default ? ` = ${rest.default}` : ""}`);
|
|
263
36
|
return acc;
|
|
264
37
|
}
|
|
265
|
-
const parameterName = name.startsWith("{") ? name :
|
|
38
|
+
const parameterName = name.startsWith("{") ? name : camelCase(name);
|
|
266
39
|
if (type) {
|
|
267
40
|
if (required) {
|
|
268
41
|
acc.push(`${parameterName}: ${type}${rest.default ? ` = ${rest.default}` : ""}`);
|
|
@@ -278,6 +51,7 @@ var FunctionParams = class {
|
|
|
278
51
|
};
|
|
279
52
|
|
|
280
53
|
// src/utils/promise.ts
|
|
54
|
+
init_esm_shims();
|
|
281
55
|
function isPromise(result) {
|
|
282
56
|
return !!result && typeof result?.then === "function";
|
|
283
57
|
}
|
|
@@ -287,100 +61,9 @@ function isPromiseFulfilledResult(result) {
|
|
|
287
61
|
function isPromiseRejectedResult(result) {
|
|
288
62
|
return result.status === "rejected";
|
|
289
63
|
}
|
|
290
|
-
var _emitter;
|
|
291
|
-
var EventEmitter = class {
|
|
292
|
-
constructor() {
|
|
293
|
-
__privateAdd(this, _emitter, new EventEmitter$1());
|
|
294
|
-
__privateGet(this, _emitter).setMaxListeners(100);
|
|
295
|
-
}
|
|
296
|
-
emit(eventName, ...eventArg) {
|
|
297
|
-
__privateGet(this, _emitter).emit(eventName, ...eventArg);
|
|
298
|
-
}
|
|
299
|
-
on(eventName, handler) {
|
|
300
|
-
__privateGet(this, _emitter).on(eventName, handler);
|
|
301
|
-
}
|
|
302
|
-
off(eventName, handler) {
|
|
303
|
-
__privateGet(this, _emitter).off(eventName, handler);
|
|
304
|
-
}
|
|
305
|
-
removeAll() {
|
|
306
|
-
__privateGet(this, _emitter).removeAllListeners();
|
|
307
|
-
}
|
|
308
|
-
};
|
|
309
|
-
_emitter = new WeakMap();
|
|
310
|
-
|
|
311
|
-
// src/utils/Queue.ts
|
|
312
|
-
var _queue, _workerCount, _maxParallel, _debug, _work, work_fn;
|
|
313
|
-
var Queue = class {
|
|
314
|
-
constructor(maxParallel, debug = false) {
|
|
315
|
-
__privateAdd(this, _work);
|
|
316
|
-
__privateAdd(this, _queue, []);
|
|
317
|
-
this.eventEmitter = new EventEmitter();
|
|
318
|
-
__privateAdd(this, _workerCount, 0);
|
|
319
|
-
__privateAdd(this, _maxParallel, void 0);
|
|
320
|
-
__privateAdd(this, _debug, false);
|
|
321
|
-
__privateSet(this, _maxParallel, maxParallel);
|
|
322
|
-
__privateSet(this, _debug, debug);
|
|
323
|
-
}
|
|
324
|
-
run(job, options = { controller: new AbortController(), name: crypto.randomUUID(), description: "" }) {
|
|
325
|
-
return new Promise((resolve, reject) => {
|
|
326
|
-
const item = { reject, resolve, job, name: options.name, description: options.description || options.name };
|
|
327
|
-
options.controller?.signal.addEventListener("abort", () => {
|
|
328
|
-
__privateSet(this, _queue, __privateGet(this, _queue).filter((queueItem) => queueItem.name === item.name));
|
|
329
|
-
reject("Aborted");
|
|
330
|
-
});
|
|
331
|
-
__privateGet(this, _queue).push(item);
|
|
332
|
-
__privateMethod(this, _work, work_fn).call(this);
|
|
333
|
-
});
|
|
334
|
-
}
|
|
335
|
-
runSync(job, options = { controller: new AbortController(), name: crypto.randomUUID(), description: "" }) {
|
|
336
|
-
new Promise((resolve, reject) => {
|
|
337
|
-
const item = { reject, resolve, job, name: options.name, description: options.description || options.name };
|
|
338
|
-
options.controller?.signal.addEventListener("abort", () => {
|
|
339
|
-
__privateSet(this, _queue, __privateGet(this, _queue).filter((queueItem) => queueItem.name === item.name));
|
|
340
|
-
});
|
|
341
|
-
__privateGet(this, _queue).push(item);
|
|
342
|
-
__privateMethod(this, _work, work_fn).call(this);
|
|
343
|
-
});
|
|
344
|
-
}
|
|
345
|
-
get hasJobs() {
|
|
346
|
-
return __privateGet(this, _workerCount) > 0 || __privateGet(this, _queue).length > 0;
|
|
347
|
-
}
|
|
348
|
-
get count() {
|
|
349
|
-
return __privateGet(this, _workerCount);
|
|
350
|
-
}
|
|
351
|
-
};
|
|
352
|
-
_queue = new WeakMap();
|
|
353
|
-
_workerCount = new WeakMap();
|
|
354
|
-
_maxParallel = new WeakMap();
|
|
355
|
-
_debug = new WeakMap();
|
|
356
|
-
_work = new WeakSet();
|
|
357
|
-
work_fn = function() {
|
|
358
|
-
if (__privateGet(this, _workerCount) >= __privateGet(this, _maxParallel)) {
|
|
359
|
-
return;
|
|
360
|
-
}
|
|
361
|
-
__privateWrapper(this, _workerCount)._++;
|
|
362
|
-
let entry;
|
|
363
|
-
while (entry = __privateGet(this, _queue).shift()) {
|
|
364
|
-
const { reject, resolve, job, name, description } = entry;
|
|
365
|
-
if (__privateGet(this, _debug)) {
|
|
366
|
-
performance.mark(name + "_start");
|
|
367
|
-
}
|
|
368
|
-
job().then((result) => {
|
|
369
|
-
this.eventEmitter.emit("jobDone", result);
|
|
370
|
-
resolve(result);
|
|
371
|
-
if (__privateGet(this, _debug)) {
|
|
372
|
-
performance.mark(name + "_stop");
|
|
373
|
-
performance.measure(description, name + "_start", name + "_stop");
|
|
374
|
-
}
|
|
375
|
-
}).catch((err) => {
|
|
376
|
-
this.eventEmitter.emit("jobFailed", err);
|
|
377
|
-
reject(err);
|
|
378
|
-
});
|
|
379
|
-
}
|
|
380
|
-
__privateWrapper(this, _workerCount)._--;
|
|
381
|
-
};
|
|
382
64
|
|
|
383
65
|
// src/utils/renderTemplate.ts
|
|
66
|
+
init_esm_shims();
|
|
384
67
|
function renderTemplate(template, data = void 0) {
|
|
385
68
|
if (!data || !Object.keys(data).length) {
|
|
386
69
|
return template.replace(/{{(.*?)}}/g, "");
|
|
@@ -404,132 +87,6 @@ function renderTemplate(template, data = void 0) {
|
|
|
404
87
|
}, template) || "";
|
|
405
88
|
}
|
|
406
89
|
|
|
407
|
-
|
|
408
|
-
async function timeout(ms) {
|
|
409
|
-
return new Promise((resolve) => {
|
|
410
|
-
setTimeout(() => {
|
|
411
|
-
resolve(true);
|
|
412
|
-
}, ms);
|
|
413
|
-
});
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
// src/utils/uniqueName.ts
|
|
417
|
-
function getUniqueName(originalName, data) {
|
|
418
|
-
let used = data[originalName] || 0;
|
|
419
|
-
if (used) {
|
|
420
|
-
data[originalName] = ++used;
|
|
421
|
-
originalName += used;
|
|
422
|
-
}
|
|
423
|
-
data[originalName] = 1;
|
|
424
|
-
return originalName;
|
|
425
|
-
}
|
|
426
|
-
function setUniqueName(originalName, data) {
|
|
427
|
-
let used = data[originalName] || 0;
|
|
428
|
-
if (used) {
|
|
429
|
-
data[originalName] = ++used;
|
|
430
|
-
return originalName;
|
|
431
|
-
}
|
|
432
|
-
data[originalName] = 1;
|
|
433
|
-
return originalName;
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
// src/utils/URLPath.ts
|
|
437
|
-
var URLPath = class {
|
|
438
|
-
constructor(path) {
|
|
439
|
-
this.path = path;
|
|
440
|
-
return this;
|
|
441
|
-
}
|
|
442
|
-
/**
|
|
443
|
-
* Convert Swagger path to URLPath(syntax of Express)
|
|
444
|
-
* @example /pet/{petId} => /pet/:petId
|
|
445
|
-
*/
|
|
446
|
-
get URL() {
|
|
447
|
-
return this.toURLPath();
|
|
448
|
-
}
|
|
449
|
-
get isURL() {
|
|
450
|
-
try {
|
|
451
|
-
const url = new URL(this.path);
|
|
452
|
-
if (url?.href) {
|
|
453
|
-
return true;
|
|
454
|
-
}
|
|
455
|
-
} catch (error) {
|
|
456
|
-
return false;
|
|
457
|
-
}
|
|
458
|
-
return false;
|
|
459
|
-
}
|
|
460
|
-
/**
|
|
461
|
-
* Convert Swagger path to template literals/ template strings(camelcase)
|
|
462
|
-
* @example /pet/{petId} => `/pet/${petId}`
|
|
463
|
-
* @example /account/monetary-accountID => `/account/${monetaryAccountId}`
|
|
464
|
-
* @example /account/userID => `/account/${userId}`
|
|
465
|
-
*/
|
|
466
|
-
get template() {
|
|
467
|
-
return this.toTemplateString();
|
|
468
|
-
}
|
|
469
|
-
get object() {
|
|
470
|
-
return this.toObject();
|
|
471
|
-
}
|
|
472
|
-
get params() {
|
|
473
|
-
return this.getParams();
|
|
474
|
-
}
|
|
475
|
-
toObject({ type = "path", replacer, stringify } = {}) {
|
|
476
|
-
const object = {
|
|
477
|
-
url: type === "path" ? this.toURLPath() : this.toTemplateString(replacer),
|
|
478
|
-
params: this.getParams()
|
|
479
|
-
};
|
|
480
|
-
if (stringify) {
|
|
481
|
-
if (type === "template") {
|
|
482
|
-
return JSON.stringify(object).replaceAll("'", "").replaceAll(`"`, "");
|
|
483
|
-
}
|
|
484
|
-
if (object.params) {
|
|
485
|
-
return `{ url: '${object.url}', params: ${JSON.stringify(object.params).replaceAll("'", "").replaceAll(`"`, "")} }`;
|
|
486
|
-
}
|
|
487
|
-
return `{ url: '${object.url}' }`;
|
|
488
|
-
}
|
|
489
|
-
return object;
|
|
490
|
-
}
|
|
491
|
-
/**
|
|
492
|
-
* Convert Swagger path to template literals/ template strings(camelcase)
|
|
493
|
-
* @example /pet/{petId} => `/pet/${petId}`
|
|
494
|
-
* @example /account/monetary-accountID => `/account/${monetaryAccountId}`
|
|
495
|
-
* @example /account/userID => `/account/${userId}`
|
|
496
|
-
*/
|
|
497
|
-
toTemplateString(replacer) {
|
|
498
|
-
const regex = /{(\w|-)*}/g;
|
|
499
|
-
const found = this.path.match(regex);
|
|
500
|
-
let newPath = this.path.replaceAll("{", "${");
|
|
501
|
-
if (found) {
|
|
502
|
-
newPath = found.reduce((prev, curr) => {
|
|
503
|
-
const pathParam = replacer ? replacer(transformers_default.camelCase(curr)) : transformers_default.camelCase(curr);
|
|
504
|
-
const replacement = `\${${pathParam}}`;
|
|
505
|
-
return prev.replace(curr, replacement);
|
|
506
|
-
}, this.path);
|
|
507
|
-
}
|
|
508
|
-
return `\`${newPath}\``;
|
|
509
|
-
}
|
|
510
|
-
getParams(replacer) {
|
|
511
|
-
const regex = /{(\w|-)*}/g;
|
|
512
|
-
const found = this.path.match(regex);
|
|
513
|
-
if (!found) {
|
|
514
|
-
return void 0;
|
|
515
|
-
}
|
|
516
|
-
const params = {};
|
|
517
|
-
found.forEach((item) => {
|
|
518
|
-
item = item.replaceAll("{", "").replaceAll("}", "");
|
|
519
|
-
const pathParam = replacer ? replacer(transformers_default.camelCase(item)) : transformers_default.camelCase(item);
|
|
520
|
-
params[pathParam] = pathParam;
|
|
521
|
-
}, this.path);
|
|
522
|
-
return params;
|
|
523
|
-
}
|
|
524
|
-
/**
|
|
525
|
-
* Convert Swagger path to URLPath(syntax of Express)
|
|
526
|
-
* @example /pet/{petId} => /pet/:petId
|
|
527
|
-
*/
|
|
528
|
-
toURLPath() {
|
|
529
|
-
return this.path.replaceAll("{", ":").replaceAll("}", "");
|
|
530
|
-
}
|
|
531
|
-
};
|
|
532
|
-
|
|
533
|
-
export { FunctionParams, Queue, URLPath, getUniqueName, isPromise, isPromiseFulfilledResult, isPromiseRejectedResult, renderTemplate, setUniqueName, timeout };
|
|
90
|
+
export { FunctionParams, isPromise, isPromiseFulfilledResult, isPromiseRejectedResult, renderTemplate };
|
|
534
91
|
//# sourceMappingURL=out.js.map
|
|
535
92
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/FunctionParams.ts","../src/transformers/casing.ts","../src/transformers/combineCodes.ts","../src/transformers/createJSDocBlockText.ts","../src/transformers/escape.ts","../src/transformers/indent.ts","../src/transformers/nameSorter.ts","../src/transformers/searchAndReplace.ts","../src/transformers/transformReservedWord.ts","../src/transformers/trim.ts","../src/transformers/index.ts","../src/utils/promise.ts","../src/utils/Queue.ts","../src/utils/EventEmitter.ts","../src/utils/renderTemplate.ts","../src/utils/timeout.ts","../src/utils/uniqueName.ts","../src/utils/URLPath.ts"],"names":[],"mappings":"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","sourcesContent":["import { orderBy } from 'natural-orderby'\n\nimport transformers from '../transformers/index.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\nexport type FunctionParamsAST = FunctionParamsASTWithoutType | FunctionParamsASTWithType\nexport class FunctionParams {\n public type?: 'generics' | 'typed'\n public items: FunctionParamsAST[] = []\n constructor(type?: 'generics' | 'typed') {\n this.type = type\n\n return this\n }\n\n add(item: FunctionParamsAST | Array<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\n toString(): string {\n const sortedData = orderBy(this.items.filter(Boolean), [(v) => !v.default, (v) => v.required ?? true], ['desc', 'desc'])\n\n return sortedData\n .filter(({ enabled = true }) => enabled)\n .reduce((acc, { name, type, required = true, ...rest }) => {\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 : transformers.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 }, [] as string[])\n .join(', ')\n }\n}\n","import { camelCase as changeCaseCamel, camelCaseTransformMerge, pascalCase as changePascalCase, pascalCaseTransformMerge } from 'change-case'\n\nexport function camelCase(text: string): string {\n return changeCaseCamel(text, { delimiter: '', stripRegexp: /[^A-Z0-9$]/gi, transform: camelCaseTransformMerge })\n}\n\nexport function pascalCase(text: string): string {\n return changePascalCase(text, { delimiter: '', stripRegexp: /[^A-Z0-9$]/gi, transform: pascalCaseTransformMerge })\n}\n","export function combineCodes(codes: string[]): string {\n return codes.join('\\n')\n}\n","export function createJSDocBlockText({ comments }: { comments: Array<string> }): string {\n const filteredComments = comments.filter(Boolean)\n\n if (!filteredComments.length) {\n return ''\n }\n\n return `/**\\n * ${filteredComments.join('\\n * ')}\\n */`\n}\n","export function escape(text?: string): string {\n return text ? text.replaceAll('`', '\\\\`') : ''\n}\n\n/**\n * Escape all characters not included in SingleStringCharacters and DoubleStringCharacters on\n * @link http://www.ecma-international.org/ecma-262/5.1/#sec-7.8.4\n * @link https://github.com/joliss/js-string-escape/blob/master/index.js\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function jsStringEscape(input: any): string {\n return `${input}`.replace(/[\"'\\\\\\n\\r\\u2028\\u2029]/g, (character) => {\n switch (character) {\n case '\"':\n case \"'\":\n case '\\\\':\n return '\\\\' + character\n // Four possible LineTerminator characters need to be escaped:\n case '\\n':\n return '\\\\n'\n case '\\r':\n return '\\\\r'\n case '\\u2028':\n return '\\\\u2028'\n case '\\u2029':\n return '\\\\u2029'\n default:\n return ''\n }\n })\n}\n","export function createIndent(size: number): string {\n return Array.from({ length: size + 1 }).join(' ')\n}\n","export function nameSorter<T extends { name: string }>(a: T, b: T): 0 | 1 | -1 {\n if (a.name < b.name) {\n return -1\n }\n if (a.name > b.name) {\n return 1\n }\n return 0\n}\n","type Options = {\n text: string\n replaceBy: string\n prefix?: string\n key: string\n searchValues?: (prefix: string, key: string) => Array<RegExp | string>\n}\n\nexport function searchAndReplace(options: Options): string {\n const { text, replaceBy, prefix = '', key } = options\n\n const searchValues = options.searchValues?.(prefix, key) || [\n `${prefix}[\"${key}\"]`,\n `${prefix}['${key}']`,\n `${prefix}[\\`${key}\\`]`,\n `${prefix}\"${key}\"`,\n `${prefix}'${key}'`,\n `${prefix}\\`${key}\\``,\n new RegExp(`${prefix}${key}`, 'g'),\n ]\n\n return searchValues.reduce((prev, searchValue) => {\n return prev.toString().replaceAll(searchValue, replaceBy)\n }, text) as string\n}\n","/**\n * @link https://github.com/jonschlinkert/reserved/blob/master/index.js\n */\nconst reservedWords = [\n 'abstract',\n 'arguments',\n 'boolean',\n 'break',\n 'byte',\n 'case',\n 'catch',\n 'char',\n 'class',\n 'const',\n 'continue',\n 'debugger',\n 'default',\n 'delete',\n 'do',\n 'double',\n 'else',\n 'enum',\n 'eval',\n 'export',\n 'extends',\n 'false',\n 'final',\n 'finally',\n 'float',\n 'for',\n 'function',\n 'goto',\n 'if',\n 'implements',\n 'import',\n 'in',\n 'instanceof',\n 'int',\n 'interface',\n 'let',\n 'long',\n 'native',\n 'new',\n 'null',\n 'package',\n 'private',\n 'protected',\n 'public',\n 'return',\n 'short',\n 'static',\n 'super',\n 'switch',\n 'synchronized',\n 'this',\n 'throw',\n 'throws',\n 'transient',\n 'true',\n 'try',\n 'typeof',\n 'var',\n 'void',\n 'volatile',\n 'while',\n 'with',\n 'yield',\n\n 'Array',\n 'Date',\n 'eval',\n 'function',\n 'hasOwnProperty',\n 'Infinity',\n 'isFinite',\n 'isNaN',\n 'isPrototypeOf',\n 'length',\n 'Math',\n 'name',\n 'NaN',\n 'Number',\n 'Object',\n 'prototype',\n 'String',\n 'toString',\n 'undefined',\n 'valueOf',\n]\n\nexport function transformReservedWord(word: string): string {\n if ((word && reservedWords.includes(word)) || word?.match(/^\\d/)) {\n return `_${word}`\n }\n\n return word\n}\n","export function trim(text: string): string {\n return text.replaceAll(/\\n/g, '').trim()\n}\n\nexport function trimExtName(text: string): string {\n return text.replace(/\\.[^/.]+$/, '')\n}\n","import { camelCase, pascalCase } from './casing.ts'\nimport { combineCodes } from './combineCodes.ts'\nimport { createJSDocBlockText } from './createJSDocBlockText.ts'\nimport { escape, jsStringEscape } from './escape.ts'\nimport { createIndent } from './indent.ts'\nimport { nameSorter } from './nameSorter.ts'\nimport { searchAndReplace } from './searchAndReplace.ts'\nimport { transformReservedWord } from './transformReservedWord.ts'\nimport { trim, trimExtName } from './trim.ts'\n\nexport { camelCase, pascalCase } from './casing.ts'\nexport { combineCodes } from './combineCodes.ts'\nexport { createJSDocBlockText } from './createJSDocBlockText.ts'\nexport { escape, jsStringEscape } from './escape.ts'\nexport { createIndent } from './indent.ts'\nexport { nameSorter } from './nameSorter.ts'\nexport { searchAndReplace } from './searchAndReplace.ts'\nexport { transformReservedWord } from './transformReservedWord.ts'\nexport { trim, trimExtName } from './trim.ts'\n\nexport default {\n combineCodes,\n escape,\n jsStringEscape,\n createIndent,\n transformReservedWord,\n nameSorter,\n searchAndReplace,\n trim,\n trimExtName,\n JSDoc: {\n createJSDocBlockText,\n },\n camelCase,\n pascalCase,\n} as const\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","import crypto from 'node:crypto'\nimport { performance } from 'node:perf_hooks'\n\nimport { EventEmitter } from './EventEmitter.ts'\n\nexport type QueueJob<T = unknown> = {\n (...args: unknown[]): Promise<T | void>\n}\n\ntype RunOptions = {\n controller?: AbortController\n name?: string\n description?: string\n}\n\ntype QueueItem = {\n reject: <T>(reason?: T) => void\n resolve: <T>(value: T | PromiseLike<T>) => void\n job: QueueJob<unknown>\n} & Required<RunOptions>\n\ntype Events = {\n jobDone: [result: unknown]\n jobFailed: [error: Error]\n}\n\nexport class Queue {\n #queue: QueueItem[] = []\n readonly eventEmitter: EventEmitter<Events> = new EventEmitter()\n\n #workerCount = 0\n\n #maxParallel: number\n #debug = false\n\n constructor(maxParallel: number, debug = false) {\n this.#maxParallel = maxParallel\n this.#debug = debug\n }\n\n run<T>(job: QueueJob<T>, options: RunOptions = { controller: new AbortController(), name: crypto.randomUUID(), description: '' }): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const item = { reject, resolve, job, name: options.name, description: options.description || options.name } as QueueItem\n\n options.controller?.signal.addEventListener('abort', () => {\n this.#queue = this.#queue.filter((queueItem) => queueItem.name === item.name)\n\n reject('Aborted')\n })\n\n this.#queue.push(item)\n this.#work()\n })\n }\n\n runSync<T>(job: QueueJob<T>, options: RunOptions = { controller: new AbortController(), name: crypto.randomUUID(), description: '' }): void {\n new Promise<T>((resolve, reject) => {\n const item = { reject, resolve, job, name: options.name, description: options.description || options.name } as QueueItem\n\n options.controller?.signal.addEventListener('abort', () => {\n this.#queue = this.#queue.filter((queueItem) => queueItem.name === item.name)\n })\n\n this.#queue.push(item)\n this.#work()\n })\n }\n\n get hasJobs(): boolean {\n return this.#workerCount > 0 || this.#queue.length > 0\n }\n\n get count(): number {\n return this.#workerCount\n }\n\n #work(): void {\n if (this.#workerCount >= this.#maxParallel) {\n return\n }\n\n this.#workerCount++\n\n let entry: QueueItem | undefined\n while ((entry = this.#queue.shift())) {\n const { reject, resolve, job, name, description } = entry\n\n if (this.#debug) {\n performance.mark(name + '_start')\n }\n\n job()\n .then((result) => {\n this.eventEmitter.emit('jobDone', result)\n\n resolve(result)\n\n if (this.#debug) {\n performance.mark(name + '_stop')\n performance.measure(description, name + '_start', name + '_stop')\n }\n })\n .catch((err) => {\n this.eventEmitter.emit('jobFailed', err as Error)\n reject(err)\n })\n }\n this.#workerCount--\n }\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-argument */\nimport { EventEmitter as NodeEventEmitter } from 'node:events'\n\nexport class EventEmitter<TEvents extends Record<string, any>> {\n constructor() {\n this.#emitter.setMaxListeners(100)\n }\n #emitter = new NodeEventEmitter()\n\n emit<TEventName extends keyof TEvents & string>(eventName: TEventName, ...eventArg: TEvents[TEventName]): void {\n this.#emitter.emit(eventName, ...(eventArg as []))\n }\n\n on<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void {\n this.#emitter.on(eventName, handler as any)\n }\n\n off<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void {\n this.#emitter.off(eventName, handler as any)\n }\n removeAll(): void {\n this.#emitter.removeAllListeners()\n }\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 transformers from '../transformers/index.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\n ? replacer(transformers.camelCase(curr))\n : transformers.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\n ? replacer(transformers.camelCase(item))\n : transformers.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"]}
|
|
1
|
+
{"version":3,"sources":["../src/utils/index.ts","../src/utils/FunctionParams.ts","../src/utils/promise.ts","../src/utils/renderTemplate.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;;ACAA;AAAA,SAAS,eAAe;AAiCjB,IAAM,iBAAN,MAAqB;AAAA,EAG1B,YAAY,MAA6B;AADzC,SAAO,QAA6B,CAAC;AAEnC,SAAK,OAAO;AAEZ,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,MAA4F;AAC9F,QAAI,CAAC,MAAM;AACT,aAAO;AAAA,IACT;AAEA,QAAI,MAAM,QAAQ,IAAI,GAAG;AACvB,WAAK,OAAO,OAAO,EAAE,QAAQ,CAAC,OAAO,KAAK,MAAM,KAAK,EAAE,CAAC;AACxD,aAAO;AAAA,IACT;AACA,SAAK,MAAM,KAAK,IAAI;AAEpB,WAAO;AAAA,EACT;AAAA,EAEA,WAAmB;AACjB,UAAM,aAAa,QAAQ,KAAK,MAAM,OAAO,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,YAAY,IAAI,GAAG,CAAC,QAAQ,MAAM,CAAC;AAEvH,WAAO,WACJ,OAAO,CAAC,EAAE,UAAU,KAAK,MAAM,OAAO,EACtC,OAAO,CAAC,KAAK,EAAE,MAAM,MAAM,WAAW,MAAM,GAAG,KAAK,MAAM;AACzD,UAAI,CAAC,MAAM;AAET,YAAI,KAAK,GAAG,IAAI,GAAG,KAAK,UAAU,MAAM,KAAK,OAAO,KAAK,EAAE,EAAE;AAE7D,eAAO;AAAA,MACT;AAEA,YAAM,gBAAgB,KAAK,WAAW,GAAG,IAAI,OAAO,UAAU,IAAI;AAElE,UAAI,MAAM;AACR,YAAI,UAAU;AACZ,cAAI,KAAK,GAAG,aAAa,KAAK,IAAI,GAAG,KAAK,UAAU,MAAM,KAAK,OAAO,KAAK,EAAE,EAAE;AAAA,QACjF,OAAO;AACL,cAAI,KAAK,GAAG,aAAa,MAAM,IAAI,EAAE;AAAA,QACvC;AAAA,MACF,OAAO;AACL,YAAI,KAAK,GAAG,aAAa,EAAE;AAAA,MAC7B;AAEA,aAAO;AAAA,IACT,GAAG,CAAC,CAAa,EAChB,KAAK,IAAI;AAAA,EACd;AACF;;;ACrFA;AAEO,SAAS,UAAa,QAAkD;AAC7E,SAAO,CAAC,CAAC,UAAU,OAAQ,QAA6B,SAAS;AACnE;AAEO,SAAS,yBAAsC,QAA4E;AAChI,SAAO,OAAO,WAAW;AAC3B;AAEO,SAAS,wBAA2B,QAAwG;AACjJ,SAAO,OAAO,WAAW;AAC3B;;;ACZA;AAAO,SAAS,eAAgF,UAAkB,OAA0B,QAAmB;AAC7J,MAAI,CAAC,QAAQ,CAAC,OAAO,KAAK,IAAI,EAAE,QAAQ;AACtC,WAAO,SAAS,QAAQ,cAAc,EAAE;AAAA,EAC1C;AAEA,QAAM,UAAU,SAAS,MAAM,YAAY;AAE3C,SACE,SAAS,OAAO,CAAC,MAAM,SAAS;AAC9B,UAAM,QAAQ,KAAK,MAAM,OAAO,EAAE,OAAO,OAAO,EAAE,CAAC,GAAG,KAAK;AAC3D,QAAI,UAAU,QAAW;AACvB,aAAO;AAAA,IACT;AACA,UAAM,QAAQ,KAAK,KAAK;AAExB,QAAI,UAAU,QAAW;AACvB,aAAO;AAAA,IACT;AAEA,WAAO,KACJ,QAAQ,MAAM,MAAM;AACnB,UAAI,OAAO,UAAU,WAAW;AAC9B,eAAO,GAAG,MAAM,SAAS,CAAC,MAAM;AAAA,MAClC;AAEA,aAAQ,SAAoB;AAAA,IAC9B,CAAC,EACA,KAAK;AAAA,EACV,GAAG,QAAQ,KAAK;AAEpB","sourcesContent":["export type { FunctionParamsAST } from './FunctionParams.ts'\nexport { FunctionParams } from './FunctionParams.ts'\nexport { isPromise, isPromiseFulfilledResult, isPromiseRejectedResult } from './promise.ts'\nexport type { QueueJob } from './Queue.ts'\nexport { Queue } from './Queue.ts'\nexport { renderTemplate } from './renderTemplate.ts'\nexport { timeout } from './timeout.ts'\nexport { getUniqueName, setUniqueName } from './uniqueName.ts'\nexport type { URLObject } from './URLPath.ts'\nexport { URLPath } from './URLPath.ts'\n","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\nexport type FunctionParamsAST = FunctionParamsASTWithoutType | FunctionParamsASTWithType\nexport class FunctionParams {\n public type?: 'generics' | 'typed'\n public items: FunctionParamsAST[] = []\n constructor(type?: 'generics' | 'typed') {\n this.type = type\n\n return this\n }\n\n add(item: FunctionParamsAST | Array<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\n toString(): string {\n const sortedData = orderBy(this.items.filter(Boolean), [(v) => !v.default, (v) => v.required ?? true], ['desc', 'desc'])\n\n return sortedData\n .filter(({ enabled = true }) => enabled)\n .reduce((acc, { name, type, required = true, ...rest }) => {\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 }, [] as string[])\n .join(', ')\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"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kubb/core",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.13",
|
|
4
4
|
"description": "Generator core",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -62,15 +62,15 @@
|
|
|
62
62
|
"!/**/__tests__/**"
|
|
63
63
|
],
|
|
64
64
|
"dependencies": {
|
|
65
|
-
"change-case": "^4.1.2",
|
|
66
65
|
"directory-tree": "^3.5.1",
|
|
67
|
-
"js-runtime": "^0.0.
|
|
66
|
+
"js-runtime": "^0.0.7",
|
|
68
67
|
"natural-orderby": "^3.0.2",
|
|
69
|
-
"picocolors": "^1.0.0",
|
|
70
68
|
"seedrandom": "^3.0.5",
|
|
71
69
|
"semver": "^7.5.4",
|
|
72
|
-
"
|
|
73
|
-
"
|
|
70
|
+
"find-up": "^7.0.0",
|
|
71
|
+
"change-case": "^5.2.0",
|
|
72
|
+
"@kubb/parser": "2.0.0-beta.13",
|
|
73
|
+
"@kubb/types": "2.0.0-beta.13"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
76
|
"@types/fs-extra": "^11.0.4",
|
|
@@ -79,7 +79,7 @@
|
|
|
79
79
|
"@types/seedrandom": "^3.0.8",
|
|
80
80
|
"@types/semver": "^7.5.6",
|
|
81
81
|
"eslint": "^8.55.0",
|
|
82
|
-
"
|
|
82
|
+
"tinyrainbow": "^1.1.0",
|
|
83
83
|
"fs-extra": "^11.2.0",
|
|
84
84
|
"lodash.isequal": "^4.5.0",
|
|
85
85
|
"ora": "^7.0.1",
|
package/src/BarrelManager.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import path from 'path'
|
|
2
2
|
|
|
3
|
-
import
|
|
3
|
+
import { trimExtName } from './transformers/trim.ts'
|
|
4
4
|
import { TreeNode } from './utils/TreeNode.ts'
|
|
5
5
|
|
|
6
6
|
import type { DirectoryTreeOptions } from 'directory-tree'
|
|
@@ -51,7 +51,7 @@ export class BarrelManager {
|
|
|
51
51
|
const exports: KubbFile.Export[] = treeNode.children
|
|
52
52
|
.filter(Boolean)
|
|
53
53
|
.map((file) => {
|
|
54
|
-
const importPath: string = file.data.type === 'directory' ? `./${file.data.name}/index` : `./${
|
|
54
|
+
const importPath: string = file.data.type === 'directory' ? `./${file.data.name}/index` : `./${trimExtName(file.data.name)}`
|
|
55
55
|
|
|
56
56
|
if (importPath.endsWith('index') && file.data.type === 'file') {
|
|
57
57
|
return undefined
|
|
@@ -79,7 +79,7 @@ export class BarrelManager {
|
|
|
79
79
|
const indexPath = path.resolve(treeNode.data.path, 'index.ts')
|
|
80
80
|
const importPath = treeNodeChild.data.type === 'directory'
|
|
81
81
|
? `./${treeNodeChild.data.name}/index`
|
|
82
|
-
: `./${
|
|
82
|
+
: `./${trimExtName(treeNodeChild.data.name)}`
|
|
83
83
|
|
|
84
84
|
const exports = [
|
|
85
85
|
{
|