@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.cjs
CHANGED
|
@@ -1,246 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var chunk72O327DC_cjs = require('./chunk-72O327DC.cjs');
|
|
4
|
+
var chunkPY7I7OEN_cjs = require('./chunk-PY7I7OEN.cjs');
|
|
5
|
+
var chunkI7UUR5MZ_cjs = require('./chunk-I7UUR5MZ.cjs');
|
|
3
6
|
var naturalOrderby = require('natural-orderby');
|
|
4
|
-
var changeCase = require('change-case');
|
|
5
|
-
var crypto = require('crypto');
|
|
6
|
-
var perf_hooks = require('perf_hooks');
|
|
7
|
-
var events = require('events');
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var crypto__default = /*#__PURE__*/_interopDefault(crypto);
|
|
12
|
-
|
|
13
|
-
var __accessCheck = (obj, member, msg) => {
|
|
14
|
-
if (!member.has(obj))
|
|
15
|
-
throw TypeError("Cannot " + msg);
|
|
16
|
-
};
|
|
17
|
-
var __privateGet = (obj, member, getter) => {
|
|
18
|
-
__accessCheck(obj, member, "read from private field");
|
|
19
|
-
return getter ? getter.call(obj) : member.get(obj);
|
|
20
|
-
};
|
|
21
|
-
var __privateAdd = (obj, member, value) => {
|
|
22
|
-
if (member.has(obj))
|
|
23
|
-
throw TypeError("Cannot add the same private member more than once");
|
|
24
|
-
member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
25
|
-
};
|
|
26
|
-
var __privateSet = (obj, member, value, setter) => {
|
|
27
|
-
__accessCheck(obj, member, "write to private field");
|
|
28
|
-
setter ? setter.call(obj, value) : member.set(obj, value);
|
|
29
|
-
return value;
|
|
30
|
-
};
|
|
31
|
-
var __privateWrapper = (obj, member, setter, getter) => ({
|
|
32
|
-
set _(value) {
|
|
33
|
-
__privateSet(obj, member, value, setter);
|
|
34
|
-
},
|
|
35
|
-
get _() {
|
|
36
|
-
return __privateGet(obj, member, getter);
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
var __privateMethod = (obj, member, method) => {
|
|
40
|
-
__accessCheck(obj, member, "access private method");
|
|
41
|
-
return method;
|
|
42
|
-
};
|
|
43
|
-
function camelCase(text) {
|
|
44
|
-
return changeCase.camelCase(text, { delimiter: "", stripRegexp: /[^A-Z0-9$]/gi, transform: changeCase.camelCaseTransformMerge });
|
|
45
|
-
}
|
|
46
|
-
function pascalCase(text) {
|
|
47
|
-
return changeCase.pascalCase(text, { delimiter: "", stripRegexp: /[^A-Z0-9$]/gi, transform: changeCase.pascalCaseTransformMerge });
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// src/transformers/combineCodes.ts
|
|
51
|
-
function combineCodes(codes) {
|
|
52
|
-
return codes.join("\n");
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
// src/transformers/createJSDocBlockText.ts
|
|
56
|
-
function createJSDocBlockText({ comments }) {
|
|
57
|
-
const filteredComments = comments.filter(Boolean);
|
|
58
|
-
if (!filteredComments.length) {
|
|
59
|
-
return "";
|
|
60
|
-
}
|
|
61
|
-
return `/**
|
|
62
|
-
* ${filteredComments.join("\n * ")}
|
|
63
|
-
*/`;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
// src/transformers/escape.ts
|
|
67
|
-
function escape(text) {
|
|
68
|
-
return text ? text.replaceAll("`", "\\`") : "";
|
|
69
|
-
}
|
|
70
|
-
function jsStringEscape(input) {
|
|
71
|
-
return `${input}`.replace(/["'\\\n\r\u2028\u2029]/g, (character) => {
|
|
72
|
-
switch (character) {
|
|
73
|
-
case '"':
|
|
74
|
-
case "'":
|
|
75
|
-
case "\\":
|
|
76
|
-
return "\\" + character;
|
|
77
|
-
case "\n":
|
|
78
|
-
return "\\n";
|
|
79
|
-
case "\r":
|
|
80
|
-
return "\\r";
|
|
81
|
-
case "\u2028":
|
|
82
|
-
return "\\u2028";
|
|
83
|
-
case "\u2029":
|
|
84
|
-
return "\\u2029";
|
|
85
|
-
default:
|
|
86
|
-
return "";
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
// src/transformers/indent.ts
|
|
92
|
-
function createIndent(size) {
|
|
93
|
-
return Array.from({ length: size + 1 }).join(" ");
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
// src/transformers/nameSorter.ts
|
|
97
|
-
function nameSorter(a, b) {
|
|
98
|
-
if (a.name < b.name) {
|
|
99
|
-
return -1;
|
|
100
|
-
}
|
|
101
|
-
if (a.name > b.name) {
|
|
102
|
-
return 1;
|
|
103
|
-
}
|
|
104
|
-
return 0;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
// src/transformers/searchAndReplace.ts
|
|
108
|
-
function searchAndReplace(options) {
|
|
109
|
-
const { text, replaceBy, prefix = "", key } = options;
|
|
110
|
-
const searchValues = options.searchValues?.(prefix, key) || [
|
|
111
|
-
`${prefix}["${key}"]`,
|
|
112
|
-
`${prefix}['${key}']`,
|
|
113
|
-
`${prefix}[\`${key}\`]`,
|
|
114
|
-
`${prefix}"${key}"`,
|
|
115
|
-
`${prefix}'${key}'`,
|
|
116
|
-
`${prefix}\`${key}\``,
|
|
117
|
-
new RegExp(`${prefix}${key}`, "g")
|
|
118
|
-
];
|
|
119
|
-
return searchValues.reduce((prev, searchValue) => {
|
|
120
|
-
return prev.toString().replaceAll(searchValue, replaceBy);
|
|
121
|
-
}, text);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
// src/transformers/transformReservedWord.ts
|
|
125
|
-
var reservedWords = [
|
|
126
|
-
"abstract",
|
|
127
|
-
"arguments",
|
|
128
|
-
"boolean",
|
|
129
|
-
"break",
|
|
130
|
-
"byte",
|
|
131
|
-
"case",
|
|
132
|
-
"catch",
|
|
133
|
-
"char",
|
|
134
|
-
"class",
|
|
135
|
-
"const",
|
|
136
|
-
"continue",
|
|
137
|
-
"debugger",
|
|
138
|
-
"default",
|
|
139
|
-
"delete",
|
|
140
|
-
"do",
|
|
141
|
-
"double",
|
|
142
|
-
"else",
|
|
143
|
-
"enum",
|
|
144
|
-
"eval",
|
|
145
|
-
"export",
|
|
146
|
-
"extends",
|
|
147
|
-
"false",
|
|
148
|
-
"final",
|
|
149
|
-
"finally",
|
|
150
|
-
"float",
|
|
151
|
-
"for",
|
|
152
|
-
"function",
|
|
153
|
-
"goto",
|
|
154
|
-
"if",
|
|
155
|
-
"implements",
|
|
156
|
-
"import",
|
|
157
|
-
"in",
|
|
158
|
-
"instanceof",
|
|
159
|
-
"int",
|
|
160
|
-
"interface",
|
|
161
|
-
"let",
|
|
162
|
-
"long",
|
|
163
|
-
"native",
|
|
164
|
-
"new",
|
|
165
|
-
"null",
|
|
166
|
-
"package",
|
|
167
|
-
"private",
|
|
168
|
-
"protected",
|
|
169
|
-
"public",
|
|
170
|
-
"return",
|
|
171
|
-
"short",
|
|
172
|
-
"static",
|
|
173
|
-
"super",
|
|
174
|
-
"switch",
|
|
175
|
-
"synchronized",
|
|
176
|
-
"this",
|
|
177
|
-
"throw",
|
|
178
|
-
"throws",
|
|
179
|
-
"transient",
|
|
180
|
-
"true",
|
|
181
|
-
"try",
|
|
182
|
-
"typeof",
|
|
183
|
-
"var",
|
|
184
|
-
"void",
|
|
185
|
-
"volatile",
|
|
186
|
-
"while",
|
|
187
|
-
"with",
|
|
188
|
-
"yield",
|
|
189
|
-
"Array",
|
|
190
|
-
"Date",
|
|
191
|
-
"eval",
|
|
192
|
-
"function",
|
|
193
|
-
"hasOwnProperty",
|
|
194
|
-
"Infinity",
|
|
195
|
-
"isFinite",
|
|
196
|
-
"isNaN",
|
|
197
|
-
"isPrototypeOf",
|
|
198
|
-
"length",
|
|
199
|
-
"Math",
|
|
200
|
-
"name",
|
|
201
|
-
"NaN",
|
|
202
|
-
"Number",
|
|
203
|
-
"Object",
|
|
204
|
-
"prototype",
|
|
205
|
-
"String",
|
|
206
|
-
"toString",
|
|
207
|
-
"undefined",
|
|
208
|
-
"valueOf"
|
|
209
|
-
];
|
|
210
|
-
function transformReservedWord(word) {
|
|
211
|
-
if (word && reservedWords.includes(word) || word?.match(/^\d/)) {
|
|
212
|
-
return `_${word}`;
|
|
213
|
-
}
|
|
214
|
-
return word;
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
// src/transformers/trim.ts
|
|
218
|
-
function trim(text) {
|
|
219
|
-
return text.replaceAll(/\n/g, "").trim();
|
|
220
|
-
}
|
|
221
|
-
function trimExtName(text) {
|
|
222
|
-
return text.replace(/\.[^/.]+$/, "");
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
// src/transformers/index.ts
|
|
226
|
-
var transformers_default = {
|
|
227
|
-
combineCodes,
|
|
228
|
-
escape,
|
|
229
|
-
jsStringEscape,
|
|
230
|
-
createIndent,
|
|
231
|
-
transformReservedWord,
|
|
232
|
-
nameSorter,
|
|
233
|
-
searchAndReplace,
|
|
234
|
-
trim,
|
|
235
|
-
trimExtName,
|
|
236
|
-
JSDoc: {
|
|
237
|
-
createJSDocBlockText
|
|
238
|
-
},
|
|
239
|
-
camelCase,
|
|
240
|
-
pascalCase
|
|
241
|
-
};
|
|
8
|
+
// src/utils/index.ts
|
|
9
|
+
chunkI7UUR5MZ_cjs.init_cjs_shims();
|
|
242
10
|
|
|
243
11
|
// src/utils/FunctionParams.ts
|
|
12
|
+
chunkI7UUR5MZ_cjs.init_cjs_shims();
|
|
244
13
|
var FunctionParams = class {
|
|
245
14
|
constructor(type) {
|
|
246
15
|
this.items = [];
|
|
@@ -265,7 +34,7 @@ var FunctionParams = class {
|
|
|
265
34
|
acc.push(`${type}${rest.default ? ` = ${rest.default}` : ""}`);
|
|
266
35
|
return acc;
|
|
267
36
|
}
|
|
268
|
-
const parameterName = name.startsWith("{") ? name :
|
|
37
|
+
const parameterName = name.startsWith("{") ? name : chunkPY7I7OEN_cjs.camelCase(name);
|
|
269
38
|
if (type) {
|
|
270
39
|
if (required) {
|
|
271
40
|
acc.push(`${parameterName}: ${type}${rest.default ? ` = ${rest.default}` : ""}`);
|
|
@@ -281,6 +50,7 @@ var FunctionParams = class {
|
|
|
281
50
|
};
|
|
282
51
|
|
|
283
52
|
// src/utils/promise.ts
|
|
53
|
+
chunkI7UUR5MZ_cjs.init_cjs_shims();
|
|
284
54
|
function isPromise(result) {
|
|
285
55
|
return !!result && typeof result?.then === "function";
|
|
286
56
|
}
|
|
@@ -290,100 +60,9 @@ function isPromiseFulfilledResult(result) {
|
|
|
290
60
|
function isPromiseRejectedResult(result) {
|
|
291
61
|
return result.status === "rejected";
|
|
292
62
|
}
|
|
293
|
-
var _emitter;
|
|
294
|
-
var EventEmitter = class {
|
|
295
|
-
constructor() {
|
|
296
|
-
__privateAdd(this, _emitter, new events.EventEmitter());
|
|
297
|
-
__privateGet(this, _emitter).setMaxListeners(100);
|
|
298
|
-
}
|
|
299
|
-
emit(eventName, ...eventArg) {
|
|
300
|
-
__privateGet(this, _emitter).emit(eventName, ...eventArg);
|
|
301
|
-
}
|
|
302
|
-
on(eventName, handler) {
|
|
303
|
-
__privateGet(this, _emitter).on(eventName, handler);
|
|
304
|
-
}
|
|
305
|
-
off(eventName, handler) {
|
|
306
|
-
__privateGet(this, _emitter).off(eventName, handler);
|
|
307
|
-
}
|
|
308
|
-
removeAll() {
|
|
309
|
-
__privateGet(this, _emitter).removeAllListeners();
|
|
310
|
-
}
|
|
311
|
-
};
|
|
312
|
-
_emitter = new WeakMap();
|
|
313
|
-
|
|
314
|
-
// src/utils/Queue.ts
|
|
315
|
-
var _queue, _workerCount, _maxParallel, _debug, _work, work_fn;
|
|
316
|
-
var Queue = class {
|
|
317
|
-
constructor(maxParallel, debug = false) {
|
|
318
|
-
__privateAdd(this, _work);
|
|
319
|
-
__privateAdd(this, _queue, []);
|
|
320
|
-
this.eventEmitter = new EventEmitter();
|
|
321
|
-
__privateAdd(this, _workerCount, 0);
|
|
322
|
-
__privateAdd(this, _maxParallel, void 0);
|
|
323
|
-
__privateAdd(this, _debug, false);
|
|
324
|
-
__privateSet(this, _maxParallel, maxParallel);
|
|
325
|
-
__privateSet(this, _debug, debug);
|
|
326
|
-
}
|
|
327
|
-
run(job, options = { controller: new AbortController(), name: crypto__default.default.randomUUID(), description: "" }) {
|
|
328
|
-
return new Promise((resolve, reject) => {
|
|
329
|
-
const item = { reject, resolve, job, name: options.name, description: options.description || options.name };
|
|
330
|
-
options.controller?.signal.addEventListener("abort", () => {
|
|
331
|
-
__privateSet(this, _queue, __privateGet(this, _queue).filter((queueItem) => queueItem.name === item.name));
|
|
332
|
-
reject("Aborted");
|
|
333
|
-
});
|
|
334
|
-
__privateGet(this, _queue).push(item);
|
|
335
|
-
__privateMethod(this, _work, work_fn).call(this);
|
|
336
|
-
});
|
|
337
|
-
}
|
|
338
|
-
runSync(job, options = { controller: new AbortController(), name: crypto__default.default.randomUUID(), description: "" }) {
|
|
339
|
-
new Promise((resolve, reject) => {
|
|
340
|
-
const item = { reject, resolve, job, name: options.name, description: options.description || options.name };
|
|
341
|
-
options.controller?.signal.addEventListener("abort", () => {
|
|
342
|
-
__privateSet(this, _queue, __privateGet(this, _queue).filter((queueItem) => queueItem.name === item.name));
|
|
343
|
-
});
|
|
344
|
-
__privateGet(this, _queue).push(item);
|
|
345
|
-
__privateMethod(this, _work, work_fn).call(this);
|
|
346
|
-
});
|
|
347
|
-
}
|
|
348
|
-
get hasJobs() {
|
|
349
|
-
return __privateGet(this, _workerCount) > 0 || __privateGet(this, _queue).length > 0;
|
|
350
|
-
}
|
|
351
|
-
get count() {
|
|
352
|
-
return __privateGet(this, _workerCount);
|
|
353
|
-
}
|
|
354
|
-
};
|
|
355
|
-
_queue = new WeakMap();
|
|
356
|
-
_workerCount = new WeakMap();
|
|
357
|
-
_maxParallel = new WeakMap();
|
|
358
|
-
_debug = new WeakMap();
|
|
359
|
-
_work = new WeakSet();
|
|
360
|
-
work_fn = function() {
|
|
361
|
-
if (__privateGet(this, _workerCount) >= __privateGet(this, _maxParallel)) {
|
|
362
|
-
return;
|
|
363
|
-
}
|
|
364
|
-
__privateWrapper(this, _workerCount)._++;
|
|
365
|
-
let entry;
|
|
366
|
-
while (entry = __privateGet(this, _queue).shift()) {
|
|
367
|
-
const { reject, resolve, job, name, description } = entry;
|
|
368
|
-
if (__privateGet(this, _debug)) {
|
|
369
|
-
perf_hooks.performance.mark(name + "_start");
|
|
370
|
-
}
|
|
371
|
-
job().then((result) => {
|
|
372
|
-
this.eventEmitter.emit("jobDone", result);
|
|
373
|
-
resolve(result);
|
|
374
|
-
if (__privateGet(this, _debug)) {
|
|
375
|
-
perf_hooks.performance.mark(name + "_stop");
|
|
376
|
-
perf_hooks.performance.measure(description, name + "_start", name + "_stop");
|
|
377
|
-
}
|
|
378
|
-
}).catch((err) => {
|
|
379
|
-
this.eventEmitter.emit("jobFailed", err);
|
|
380
|
-
reject(err);
|
|
381
|
-
});
|
|
382
|
-
}
|
|
383
|
-
__privateWrapper(this, _workerCount)._--;
|
|
384
|
-
};
|
|
385
63
|
|
|
386
64
|
// src/utils/renderTemplate.ts
|
|
65
|
+
chunkI7UUR5MZ_cjs.init_cjs_shims();
|
|
387
66
|
function renderTemplate(template, data = void 0) {
|
|
388
67
|
if (!data || !Object.keys(data).length) {
|
|
389
68
|
return template.replace(/{{(.*?)}}/g, "");
|
|
@@ -407,141 +86,30 @@ function renderTemplate(template, data = void 0) {
|
|
|
407
86
|
}, template) || "";
|
|
408
87
|
}
|
|
409
88
|
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
function
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
}
|
|
429
|
-
|
|
430
|
-
let used = data[originalName] || 0;
|
|
431
|
-
if (used) {
|
|
432
|
-
data[originalName] = ++used;
|
|
433
|
-
return originalName;
|
|
434
|
-
}
|
|
435
|
-
data[originalName] = 1;
|
|
436
|
-
return originalName;
|
|
437
|
-
}
|
|
438
|
-
|
|
439
|
-
// src/utils/URLPath.ts
|
|
440
|
-
var URLPath = class {
|
|
441
|
-
constructor(path) {
|
|
442
|
-
this.path = path;
|
|
443
|
-
return this;
|
|
444
|
-
}
|
|
445
|
-
/**
|
|
446
|
-
* Convert Swagger path to URLPath(syntax of Express)
|
|
447
|
-
* @example /pet/{petId} => /pet/:petId
|
|
448
|
-
*/
|
|
449
|
-
get URL() {
|
|
450
|
-
return this.toURLPath();
|
|
451
|
-
}
|
|
452
|
-
get isURL() {
|
|
453
|
-
try {
|
|
454
|
-
const url = new URL(this.path);
|
|
455
|
-
if (url?.href) {
|
|
456
|
-
return true;
|
|
457
|
-
}
|
|
458
|
-
} catch (error) {
|
|
459
|
-
return false;
|
|
460
|
-
}
|
|
461
|
-
return false;
|
|
462
|
-
}
|
|
463
|
-
/**
|
|
464
|
-
* Convert Swagger path to template literals/ template strings(camelcase)
|
|
465
|
-
* @example /pet/{petId} => `/pet/${petId}`
|
|
466
|
-
* @example /account/monetary-accountID => `/account/${monetaryAccountId}`
|
|
467
|
-
* @example /account/userID => `/account/${userId}`
|
|
468
|
-
*/
|
|
469
|
-
get template() {
|
|
470
|
-
return this.toTemplateString();
|
|
471
|
-
}
|
|
472
|
-
get object() {
|
|
473
|
-
return this.toObject();
|
|
474
|
-
}
|
|
475
|
-
get params() {
|
|
476
|
-
return this.getParams();
|
|
477
|
-
}
|
|
478
|
-
toObject({ type = "path", replacer, stringify } = {}) {
|
|
479
|
-
const object = {
|
|
480
|
-
url: type === "path" ? this.toURLPath() : this.toTemplateString(replacer),
|
|
481
|
-
params: this.getParams()
|
|
482
|
-
};
|
|
483
|
-
if (stringify) {
|
|
484
|
-
if (type === "template") {
|
|
485
|
-
return JSON.stringify(object).replaceAll("'", "").replaceAll(`"`, "");
|
|
486
|
-
}
|
|
487
|
-
if (object.params) {
|
|
488
|
-
return `{ url: '${object.url}', params: ${JSON.stringify(object.params).replaceAll("'", "").replaceAll(`"`, "")} }`;
|
|
489
|
-
}
|
|
490
|
-
return `{ url: '${object.url}' }`;
|
|
491
|
-
}
|
|
492
|
-
return object;
|
|
493
|
-
}
|
|
494
|
-
/**
|
|
495
|
-
* Convert Swagger path to template literals/ template strings(camelcase)
|
|
496
|
-
* @example /pet/{petId} => `/pet/${petId}`
|
|
497
|
-
* @example /account/monetary-accountID => `/account/${monetaryAccountId}`
|
|
498
|
-
* @example /account/userID => `/account/${userId}`
|
|
499
|
-
*/
|
|
500
|
-
toTemplateString(replacer) {
|
|
501
|
-
const regex = /{(\w|-)*}/g;
|
|
502
|
-
const found = this.path.match(regex);
|
|
503
|
-
let newPath = this.path.replaceAll("{", "${");
|
|
504
|
-
if (found) {
|
|
505
|
-
newPath = found.reduce((prev, curr) => {
|
|
506
|
-
const pathParam = replacer ? replacer(transformers_default.camelCase(curr)) : transformers_default.camelCase(curr);
|
|
507
|
-
const replacement = `\${${pathParam}}`;
|
|
508
|
-
return prev.replace(curr, replacement);
|
|
509
|
-
}, this.path);
|
|
510
|
-
}
|
|
511
|
-
return `\`${newPath}\``;
|
|
512
|
-
}
|
|
513
|
-
getParams(replacer) {
|
|
514
|
-
const regex = /{(\w|-)*}/g;
|
|
515
|
-
const found = this.path.match(regex);
|
|
516
|
-
if (!found) {
|
|
517
|
-
return void 0;
|
|
518
|
-
}
|
|
519
|
-
const params = {};
|
|
520
|
-
found.forEach((item) => {
|
|
521
|
-
item = item.replaceAll("{", "").replaceAll("}", "");
|
|
522
|
-
const pathParam = replacer ? replacer(transformers_default.camelCase(item)) : transformers_default.camelCase(item);
|
|
523
|
-
params[pathParam] = pathParam;
|
|
524
|
-
}, this.path);
|
|
525
|
-
return params;
|
|
526
|
-
}
|
|
527
|
-
/**
|
|
528
|
-
* Convert Swagger path to URLPath(syntax of Express)
|
|
529
|
-
* @example /pet/{petId} => /pet/:petId
|
|
530
|
-
*/
|
|
531
|
-
toURLPath() {
|
|
532
|
-
return this.path.replaceAll("{", ":").replaceAll("}", "");
|
|
533
|
-
}
|
|
534
|
-
};
|
|
535
|
-
|
|
89
|
+
Object.defineProperty(exports, 'Queue', {
|
|
90
|
+
enumerable: true,
|
|
91
|
+
get: function () { return chunk72O327DC_cjs.Queue; }
|
|
92
|
+
});
|
|
93
|
+
Object.defineProperty(exports, 'URLPath', {
|
|
94
|
+
enumerable: true,
|
|
95
|
+
get: function () { return chunk72O327DC_cjs.URLPath; }
|
|
96
|
+
});
|
|
97
|
+
Object.defineProperty(exports, 'getUniqueName', {
|
|
98
|
+
enumerable: true,
|
|
99
|
+
get: function () { return chunk72O327DC_cjs.getUniqueName; }
|
|
100
|
+
});
|
|
101
|
+
Object.defineProperty(exports, 'setUniqueName', {
|
|
102
|
+
enumerable: true,
|
|
103
|
+
get: function () { return chunk72O327DC_cjs.setUniqueName; }
|
|
104
|
+
});
|
|
105
|
+
Object.defineProperty(exports, 'timeout', {
|
|
106
|
+
enumerable: true,
|
|
107
|
+
get: function () { return chunk72O327DC_cjs.timeout; }
|
|
108
|
+
});
|
|
536
109
|
exports.FunctionParams = FunctionParams;
|
|
537
|
-
exports.Queue = Queue;
|
|
538
|
-
exports.URLPath = URLPath;
|
|
539
|
-
exports.getUniqueName = getUniqueName;
|
|
540
110
|
exports.isPromise = isPromise;
|
|
541
111
|
exports.isPromiseFulfilledResult = isPromiseFulfilledResult;
|
|
542
112
|
exports.isPromiseRejectedResult = isPromiseRejectedResult;
|
|
543
113
|
exports.renderTemplate = renderTemplate;
|
|
544
|
-
exports.setUniqueName = setUniqueName;
|
|
545
|
-
exports.timeout = timeout;
|
|
546
114
|
//# sourceMappingURL=out.js.map
|
|
547
115
|
//# sourceMappingURL=utils.cjs.map
|
package/dist/utils.cjs.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"]}
|