@kubb/core 2.0.0-beta.1 → 2.0.0-beta.10
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/index.cjs +292 -240
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +61 -61
- package/dist/index.d.ts +61 -61
- package/dist/index.js +289 -236
- package/dist/index.js.map +1 -1
- package/dist/transformers.cjs +222 -0
- package/dist/transformers.cjs.map +1 -0
- package/dist/transformers.d.cts +55 -0
- package/dist/transformers.d.ts +55 -0
- package/dist/transformers.js +207 -0
- package/dist/transformers.js.map +1 -0
- package/dist/utils.cjs +302 -274
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +515 -67
- package/dist/utils.d.ts +515 -67
- package/dist/utils.js +303 -274
- package/dist/utils.js.map +1 -1
- package/package.json +14 -9
- package/src/BarrelManager.ts +55 -65
- package/src/FileManager.ts +93 -24
- package/src/PluginManager.ts +35 -17
- package/src/build.ts +1 -11
- package/src/index.ts +0 -1
- package/src/plugin.ts +4 -4
- package/src/transformers/casing.ts +9 -0
- package/src/transformers/createJSDocBlockText.ts +9 -0
- package/src/transformers/index.ts +36 -0
- package/src/transformers/trim.ts +7 -0
- package/src/types.ts +22 -41
- package/src/utils/FunctionParams.ts +3 -2
- package/src/utils/TreeNode.ts +6 -3
- package/src/utils/URLPath.ts +5 -5
- package/src/utils/index.ts +0 -1
- package/src/SchemaGenerator.ts +0 -8
- package/src/utils/transformers/createJSDocBlockText.ts +0 -15
- package/src/utils/transformers/index.ts +0 -22
- package/src/utils/transformers/trim.ts +0 -3
- /package/src/{utils/transformers → transformers}/combineCodes.ts +0 -0
- /package/src/{utils/transformers → transformers}/escape.ts +0 -0
- /package/src/{utils/transformers → transformers}/indent.ts +0 -0
- /package/src/{utils/transformers → transformers}/nameSorter.ts +0 -0
- /package/src/{utils/transformers → transformers}/searchAndReplace.ts +0 -0
- /package/src/{utils/transformers → transformers}/transformReservedWord.ts +0 -0
package/dist/utils.cjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var fs2 = require('fs-extra');
|
|
4
|
-
var changeCase = require('change-case');
|
|
5
4
|
var naturalOrderby = require('natural-orderby');
|
|
5
|
+
var changeCase = require('change-case');
|
|
6
6
|
var pc2 = require('picocolors');
|
|
7
7
|
var crypto = require('crypto');
|
|
8
8
|
var perf_hooks = require('perf_hooks');
|
|
@@ -105,6 +105,207 @@ function createPluginCache(Store = /* @__PURE__ */ Object.create(null)) {
|
|
|
105
105
|
async function clean(path2) {
|
|
106
106
|
return fs2.remove(path2);
|
|
107
107
|
}
|
|
108
|
+
function camelCase(text) {
|
|
109
|
+
return changeCase.camelCase(text, { delimiter: "", stripRegexp: /[^A-Z0-9$]/gi, transform: changeCase.camelCaseTransformMerge });
|
|
110
|
+
}
|
|
111
|
+
function pascalCase(text) {
|
|
112
|
+
return changeCase.pascalCase(text, { delimiter: "", stripRegexp: /[^A-Z0-9$]/gi, transform: changeCase.pascalCaseTransformMerge });
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// src/transformers/combineCodes.ts
|
|
116
|
+
function combineCodes(codes) {
|
|
117
|
+
return codes.join("\n");
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// src/transformers/createJSDocBlockText.ts
|
|
121
|
+
function createJSDocBlockText({ comments }) {
|
|
122
|
+
const filteredComments = comments.filter(Boolean);
|
|
123
|
+
if (!filteredComments.length) {
|
|
124
|
+
return "";
|
|
125
|
+
}
|
|
126
|
+
return `/**
|
|
127
|
+
* ${filteredComments.join("\n * ")}
|
|
128
|
+
*/`;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// src/transformers/escape.ts
|
|
132
|
+
function escape(text) {
|
|
133
|
+
return text ? text.replaceAll("`", "\\`") : "";
|
|
134
|
+
}
|
|
135
|
+
function jsStringEscape(input) {
|
|
136
|
+
return `${input}`.replace(/["'\\\n\r\u2028\u2029]/g, (character) => {
|
|
137
|
+
switch (character) {
|
|
138
|
+
case '"':
|
|
139
|
+
case "'":
|
|
140
|
+
case "\\":
|
|
141
|
+
return "\\" + character;
|
|
142
|
+
case "\n":
|
|
143
|
+
return "\\n";
|
|
144
|
+
case "\r":
|
|
145
|
+
return "\\r";
|
|
146
|
+
case "\u2028":
|
|
147
|
+
return "\\u2028";
|
|
148
|
+
case "\u2029":
|
|
149
|
+
return "\\u2029";
|
|
150
|
+
default:
|
|
151
|
+
return "";
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
// src/transformers/indent.ts
|
|
157
|
+
function createIndent(size) {
|
|
158
|
+
return Array.from({ length: size + 1 }).join(" ");
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// src/transformers/nameSorter.ts
|
|
162
|
+
function nameSorter(a, b) {
|
|
163
|
+
if (a.name < b.name) {
|
|
164
|
+
return -1;
|
|
165
|
+
}
|
|
166
|
+
if (a.name > b.name) {
|
|
167
|
+
return 1;
|
|
168
|
+
}
|
|
169
|
+
return 0;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// src/transformers/searchAndReplace.ts
|
|
173
|
+
function searchAndReplace(options) {
|
|
174
|
+
const { text, replaceBy, prefix = "", key } = options;
|
|
175
|
+
const searchValues = options.searchValues?.(prefix, key) || [
|
|
176
|
+
`${prefix}["${key}"]`,
|
|
177
|
+
`${prefix}['${key}']`,
|
|
178
|
+
`${prefix}[\`${key}\`]`,
|
|
179
|
+
`${prefix}"${key}"`,
|
|
180
|
+
`${prefix}'${key}'`,
|
|
181
|
+
`${prefix}\`${key}\``,
|
|
182
|
+
new RegExp(`${prefix}${key}`, "g")
|
|
183
|
+
];
|
|
184
|
+
return searchValues.reduce((prev, searchValue) => {
|
|
185
|
+
return prev.toString().replaceAll(searchValue, replaceBy);
|
|
186
|
+
}, text);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
// src/transformers/transformReservedWord.ts
|
|
190
|
+
var reservedWords = [
|
|
191
|
+
"abstract",
|
|
192
|
+
"arguments",
|
|
193
|
+
"boolean",
|
|
194
|
+
"break",
|
|
195
|
+
"byte",
|
|
196
|
+
"case",
|
|
197
|
+
"catch",
|
|
198
|
+
"char",
|
|
199
|
+
"class",
|
|
200
|
+
"const",
|
|
201
|
+
"continue",
|
|
202
|
+
"debugger",
|
|
203
|
+
"default",
|
|
204
|
+
"delete",
|
|
205
|
+
"do",
|
|
206
|
+
"double",
|
|
207
|
+
"else",
|
|
208
|
+
"enum",
|
|
209
|
+
"eval",
|
|
210
|
+
"export",
|
|
211
|
+
"extends",
|
|
212
|
+
"false",
|
|
213
|
+
"final",
|
|
214
|
+
"finally",
|
|
215
|
+
"float",
|
|
216
|
+
"for",
|
|
217
|
+
"function",
|
|
218
|
+
"goto",
|
|
219
|
+
"if",
|
|
220
|
+
"implements",
|
|
221
|
+
"import",
|
|
222
|
+
"in",
|
|
223
|
+
"instanceof",
|
|
224
|
+
"int",
|
|
225
|
+
"interface",
|
|
226
|
+
"let",
|
|
227
|
+
"long",
|
|
228
|
+
"native",
|
|
229
|
+
"new",
|
|
230
|
+
"null",
|
|
231
|
+
"package",
|
|
232
|
+
"private",
|
|
233
|
+
"protected",
|
|
234
|
+
"public",
|
|
235
|
+
"return",
|
|
236
|
+
"short",
|
|
237
|
+
"static",
|
|
238
|
+
"super",
|
|
239
|
+
"switch",
|
|
240
|
+
"synchronized",
|
|
241
|
+
"this",
|
|
242
|
+
"throw",
|
|
243
|
+
"throws",
|
|
244
|
+
"transient",
|
|
245
|
+
"true",
|
|
246
|
+
"try",
|
|
247
|
+
"typeof",
|
|
248
|
+
"var",
|
|
249
|
+
"void",
|
|
250
|
+
"volatile",
|
|
251
|
+
"while",
|
|
252
|
+
"with",
|
|
253
|
+
"yield",
|
|
254
|
+
"Array",
|
|
255
|
+
"Date",
|
|
256
|
+
"eval",
|
|
257
|
+
"function",
|
|
258
|
+
"hasOwnProperty",
|
|
259
|
+
"Infinity",
|
|
260
|
+
"isFinite",
|
|
261
|
+
"isNaN",
|
|
262
|
+
"isPrototypeOf",
|
|
263
|
+
"length",
|
|
264
|
+
"Math",
|
|
265
|
+
"name",
|
|
266
|
+
"NaN",
|
|
267
|
+
"Number",
|
|
268
|
+
"Object",
|
|
269
|
+
"prototype",
|
|
270
|
+
"String",
|
|
271
|
+
"toString",
|
|
272
|
+
"undefined",
|
|
273
|
+
"valueOf"
|
|
274
|
+
];
|
|
275
|
+
function transformReservedWord(word) {
|
|
276
|
+
if (word && reservedWords.includes(word) || word?.match(/^\d/)) {
|
|
277
|
+
return `_${word}`;
|
|
278
|
+
}
|
|
279
|
+
return word;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
// src/transformers/trim.ts
|
|
283
|
+
function trim(text) {
|
|
284
|
+
return text.replaceAll(/\n/g, "").trim();
|
|
285
|
+
}
|
|
286
|
+
function trimExtName(text) {
|
|
287
|
+
return text.replace(/\.[^/.]+$/, "");
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
// src/transformers/index.ts
|
|
291
|
+
var transformers_default = {
|
|
292
|
+
combineCodes,
|
|
293
|
+
escape,
|
|
294
|
+
jsStringEscape,
|
|
295
|
+
createIndent,
|
|
296
|
+
transformReservedWord,
|
|
297
|
+
nameSorter,
|
|
298
|
+
searchAndReplace,
|
|
299
|
+
trim,
|
|
300
|
+
trimExtName,
|
|
301
|
+
JSDoc: {
|
|
302
|
+
createJSDocBlockText
|
|
303
|
+
},
|
|
304
|
+
camelCase,
|
|
305
|
+
pascalCase
|
|
306
|
+
};
|
|
307
|
+
|
|
308
|
+
// src/utils/FunctionParams.ts
|
|
108
309
|
var FunctionParams = class {
|
|
109
310
|
constructor(type) {
|
|
110
311
|
this.items = [];
|
|
@@ -129,7 +330,7 @@ var FunctionParams = class {
|
|
|
129
330
|
acc.push(`${type}${rest.default ? ` = ${rest.default}` : ""}`);
|
|
130
331
|
return acc;
|
|
131
332
|
}
|
|
132
|
-
const parameterName = name.startsWith("{") ? name :
|
|
333
|
+
const parameterName = name.startsWith("{") ? name : transformers_default.camelCase(name);
|
|
133
334
|
if (type) {
|
|
134
335
|
if (required) {
|
|
135
336
|
acc.push(`${parameterName}: ${type}${rest.default ? ` = ${rest.default}` : ""}`);
|
|
@@ -231,8 +432,8 @@ var Queue = class {
|
|
|
231
432
|
__privateSet(this, _debug, debug);
|
|
232
433
|
}
|
|
233
434
|
run(job, options = { controller: new AbortController(), name: crypto__default.default.randomUUID(), description: "" }) {
|
|
234
|
-
return new Promise((
|
|
235
|
-
const item = { reject, resolve:
|
|
435
|
+
return new Promise((resolve3, reject) => {
|
|
436
|
+
const item = { reject, resolve: resolve3, job, name: options.name, description: options.description || options.name };
|
|
236
437
|
options.controller?.signal.addEventListener("abort", () => {
|
|
237
438
|
__privateSet(this, _queue, __privateGet(this, _queue).filter((queueItem) => queueItem.name === item.name));
|
|
238
439
|
reject("Aborted");
|
|
@@ -242,8 +443,8 @@ var Queue = class {
|
|
|
242
443
|
});
|
|
243
444
|
}
|
|
244
445
|
runSync(job, options = { controller: new AbortController(), name: crypto__default.default.randomUUID(), description: "" }) {
|
|
245
|
-
new Promise((
|
|
246
|
-
const item = { reject, resolve:
|
|
446
|
+
new Promise((resolve3, reject) => {
|
|
447
|
+
const item = { reject, resolve: resolve3, job, name: options.name, description: options.description || options.name };
|
|
247
448
|
options.controller?.signal.addEventListener("abort", () => {
|
|
248
449
|
__privateSet(this, _queue, __privateGet(this, _queue).filter((queueItem) => queueItem.name === item.name));
|
|
249
450
|
});
|
|
@@ -270,13 +471,13 @@ work_fn = function() {
|
|
|
270
471
|
__privateWrapper(this, _workerCount)._++;
|
|
271
472
|
let entry;
|
|
272
473
|
while (entry = __privateGet(this, _queue).shift()) {
|
|
273
|
-
const { reject, resolve:
|
|
474
|
+
const { reject, resolve: resolve3, job, name, description } = entry;
|
|
274
475
|
if (__privateGet(this, _debug)) {
|
|
275
476
|
perf_hooks.performance.mark(name + "_start");
|
|
276
477
|
}
|
|
277
478
|
job().then((result) => {
|
|
278
479
|
this.eventEmitter.emit("jobDone", result);
|
|
279
|
-
|
|
480
|
+
resolve3(result);
|
|
280
481
|
if (__privateGet(this, _debug)) {
|
|
281
482
|
perf_hooks.performance.mark(name + "_stop");
|
|
282
483
|
perf_hooks.performance.measure(description, name + "_start", name + "_stop");
|
|
@@ -415,204 +616,12 @@ var throttle = (fn, delay) => {
|
|
|
415
616
|
|
|
416
617
|
// src/utils/timeout.ts
|
|
417
618
|
async function timeout(ms) {
|
|
418
|
-
return new Promise((
|
|
619
|
+
return new Promise((resolve3) => {
|
|
419
620
|
setTimeout(() => {
|
|
420
|
-
|
|
621
|
+
resolve3(true);
|
|
421
622
|
}, ms);
|
|
422
623
|
});
|
|
423
624
|
}
|
|
424
|
-
|
|
425
|
-
// src/utils/transformers/combineCodes.ts
|
|
426
|
-
function combineCodes(codes) {
|
|
427
|
-
return codes.join("\n");
|
|
428
|
-
}
|
|
429
|
-
|
|
430
|
-
// src/utils/transformers/createJSDocBlockText.ts
|
|
431
|
-
function createJSDocBlockText({ comments, newLine }) {
|
|
432
|
-
const filteredComments = comments.filter(Boolean);
|
|
433
|
-
if (!filteredComments.length) {
|
|
434
|
-
return "";
|
|
435
|
-
}
|
|
436
|
-
const source = `/**
|
|
437
|
-
* ${filteredComments.join("\n * ")}
|
|
438
|
-
*/`;
|
|
439
|
-
if (newLine) {
|
|
440
|
-
return `${source}
|
|
441
|
-
`;
|
|
442
|
-
}
|
|
443
|
-
return source;
|
|
444
|
-
}
|
|
445
|
-
|
|
446
|
-
// src/utils/transformers/escape.ts
|
|
447
|
-
function escape(text) {
|
|
448
|
-
return text ? text.replaceAll("`", "\\`") : "";
|
|
449
|
-
}
|
|
450
|
-
function jsStringEscape(input) {
|
|
451
|
-
return `${input}`.replace(/["'\\\n\r\u2028\u2029]/g, (character) => {
|
|
452
|
-
switch (character) {
|
|
453
|
-
case '"':
|
|
454
|
-
case "'":
|
|
455
|
-
case "\\":
|
|
456
|
-
return "\\" + character;
|
|
457
|
-
case "\n":
|
|
458
|
-
return "\\n";
|
|
459
|
-
case "\r":
|
|
460
|
-
return "\\r";
|
|
461
|
-
case "\u2028":
|
|
462
|
-
return "\\u2028";
|
|
463
|
-
case "\u2029":
|
|
464
|
-
return "\\u2029";
|
|
465
|
-
default:
|
|
466
|
-
return "";
|
|
467
|
-
}
|
|
468
|
-
});
|
|
469
|
-
}
|
|
470
|
-
|
|
471
|
-
// src/utils/transformers/indent.ts
|
|
472
|
-
function createIndent(size) {
|
|
473
|
-
return Array.from({ length: size + 1 }).join(" ");
|
|
474
|
-
}
|
|
475
|
-
|
|
476
|
-
// src/utils/transformers/nameSorter.ts
|
|
477
|
-
function nameSorter(a, b) {
|
|
478
|
-
if (a.name < b.name) {
|
|
479
|
-
return -1;
|
|
480
|
-
}
|
|
481
|
-
if (a.name > b.name) {
|
|
482
|
-
return 1;
|
|
483
|
-
}
|
|
484
|
-
return 0;
|
|
485
|
-
}
|
|
486
|
-
|
|
487
|
-
// src/utils/transformers/searchAndReplace.ts
|
|
488
|
-
function searchAndReplace(options) {
|
|
489
|
-
const { text, replaceBy, prefix = "", key } = options;
|
|
490
|
-
const searchValues = options.searchValues?.(prefix, key) || [
|
|
491
|
-
`${prefix}["${key}"]`,
|
|
492
|
-
`${prefix}['${key}']`,
|
|
493
|
-
`${prefix}[\`${key}\`]`,
|
|
494
|
-
`${prefix}"${key}"`,
|
|
495
|
-
`${prefix}'${key}'`,
|
|
496
|
-
`${prefix}\`${key}\``,
|
|
497
|
-
new RegExp(`${prefix}${key}`, "g")
|
|
498
|
-
];
|
|
499
|
-
return searchValues.reduce((prev, searchValue) => {
|
|
500
|
-
return prev.toString().replaceAll(searchValue, replaceBy);
|
|
501
|
-
}, text);
|
|
502
|
-
}
|
|
503
|
-
|
|
504
|
-
// src/utils/transformers/transformReservedWord.ts
|
|
505
|
-
var reservedWords = [
|
|
506
|
-
"abstract",
|
|
507
|
-
"arguments",
|
|
508
|
-
"boolean",
|
|
509
|
-
"break",
|
|
510
|
-
"byte",
|
|
511
|
-
"case",
|
|
512
|
-
"catch",
|
|
513
|
-
"char",
|
|
514
|
-
"class",
|
|
515
|
-
"const",
|
|
516
|
-
"continue",
|
|
517
|
-
"debugger",
|
|
518
|
-
"default",
|
|
519
|
-
"delete",
|
|
520
|
-
"do",
|
|
521
|
-
"double",
|
|
522
|
-
"else",
|
|
523
|
-
"enum",
|
|
524
|
-
"eval",
|
|
525
|
-
"export",
|
|
526
|
-
"extends",
|
|
527
|
-
"false",
|
|
528
|
-
"final",
|
|
529
|
-
"finally",
|
|
530
|
-
"float",
|
|
531
|
-
"for",
|
|
532
|
-
"function",
|
|
533
|
-
"goto",
|
|
534
|
-
"if",
|
|
535
|
-
"implements",
|
|
536
|
-
"import",
|
|
537
|
-
"in",
|
|
538
|
-
"instanceof",
|
|
539
|
-
"int",
|
|
540
|
-
"interface",
|
|
541
|
-
"let",
|
|
542
|
-
"long",
|
|
543
|
-
"native",
|
|
544
|
-
"new",
|
|
545
|
-
"null",
|
|
546
|
-
"package",
|
|
547
|
-
"private",
|
|
548
|
-
"protected",
|
|
549
|
-
"public",
|
|
550
|
-
"return",
|
|
551
|
-
"short",
|
|
552
|
-
"static",
|
|
553
|
-
"super",
|
|
554
|
-
"switch",
|
|
555
|
-
"synchronized",
|
|
556
|
-
"this",
|
|
557
|
-
"throw",
|
|
558
|
-
"throws",
|
|
559
|
-
"transient",
|
|
560
|
-
"true",
|
|
561
|
-
"try",
|
|
562
|
-
"typeof",
|
|
563
|
-
"var",
|
|
564
|
-
"void",
|
|
565
|
-
"volatile",
|
|
566
|
-
"while",
|
|
567
|
-
"with",
|
|
568
|
-
"yield",
|
|
569
|
-
"Array",
|
|
570
|
-
"Date",
|
|
571
|
-
"eval",
|
|
572
|
-
"function",
|
|
573
|
-
"hasOwnProperty",
|
|
574
|
-
"Infinity",
|
|
575
|
-
"isFinite",
|
|
576
|
-
"isNaN",
|
|
577
|
-
"isPrototypeOf",
|
|
578
|
-
"length",
|
|
579
|
-
"Math",
|
|
580
|
-
"name",
|
|
581
|
-
"NaN",
|
|
582
|
-
"Number",
|
|
583
|
-
"Object",
|
|
584
|
-
"prototype",
|
|
585
|
-
"String",
|
|
586
|
-
"toString",
|
|
587
|
-
"undefined",
|
|
588
|
-
"valueOf"
|
|
589
|
-
];
|
|
590
|
-
function transformReservedWord(word) {
|
|
591
|
-
if (word && reservedWords.includes(word) || word?.match(/^\d/)) {
|
|
592
|
-
return `_${word}`;
|
|
593
|
-
}
|
|
594
|
-
return word;
|
|
595
|
-
}
|
|
596
|
-
|
|
597
|
-
// src/utils/transformers/trim.ts
|
|
598
|
-
function trim(text) {
|
|
599
|
-
return text.replaceAll(/\n/g, "").trim();
|
|
600
|
-
}
|
|
601
|
-
|
|
602
|
-
// src/utils/transformers/index.ts
|
|
603
|
-
var transformers = {
|
|
604
|
-
combineCodes,
|
|
605
|
-
escape,
|
|
606
|
-
jsStringEscape,
|
|
607
|
-
createIndent,
|
|
608
|
-
transformReservedWord,
|
|
609
|
-
nameSorter,
|
|
610
|
-
searchAndReplace,
|
|
611
|
-
trim,
|
|
612
|
-
JSDoc: {
|
|
613
|
-
createJSDocBlockText
|
|
614
|
-
}
|
|
615
|
-
};
|
|
616
625
|
async function saveCreateDirectory(path2) {
|
|
617
626
|
const passedPath = path.dirname(path.resolve(path2));
|
|
618
627
|
await fs2__default.default.mkdir(passedPath, { recursive: true });
|
|
@@ -676,82 +685,71 @@ async function write(data, path2) {
|
|
|
676
685
|
var _options;
|
|
677
686
|
var BarrelManager = class {
|
|
678
687
|
constructor(options = {}) {
|
|
679
|
-
__privateAdd(this, _options,
|
|
688
|
+
__privateAdd(this, _options, void 0);
|
|
680
689
|
__privateSet(this, _options, options);
|
|
681
690
|
return this;
|
|
682
691
|
}
|
|
683
|
-
getIndexes(
|
|
684
|
-
const { treeNode = {}, isTypeOnly,
|
|
685
|
-
const
|
|
686
|
-
".ts": {
|
|
687
|
-
extensions: /\.ts/,
|
|
688
|
-
exclude: [/schemas/, /json/]
|
|
689
|
-
},
|
|
690
|
-
".json": {
|
|
691
|
-
extensions: /\.json/,
|
|
692
|
-
exclude: []
|
|
693
|
-
}
|
|
694
|
-
};
|
|
695
|
-
const tree = TreeNode.build(root, { ...extMapper[extName] || {}, ...treeNode });
|
|
692
|
+
getIndexes(pathToBuild) {
|
|
693
|
+
const { treeNode = {}, isTypeOnly, extName } = __privateGet(this, _options);
|
|
694
|
+
const tree = TreeNode.build(pathToBuild, treeNode);
|
|
696
695
|
if (!tree) {
|
|
697
696
|
return null;
|
|
698
697
|
}
|
|
699
|
-
const fileReducer = (
|
|
700
|
-
if (!
|
|
698
|
+
const fileReducer = (files, treeNode2) => {
|
|
699
|
+
if (!treeNode2.children) {
|
|
701
700
|
return [];
|
|
702
701
|
}
|
|
703
|
-
if (
|
|
704
|
-
const indexPath = path__default.default.resolve(
|
|
705
|
-
const exports =
|
|
706
|
-
const importPath = file.data.type === "directory" ? `./${file.data.name}/index` : `./${file.data.name
|
|
707
|
-
if (importPath.
|
|
702
|
+
if (treeNode2.children.length > 1) {
|
|
703
|
+
const indexPath = path__default.default.resolve(treeNode2.data.path, "index.ts");
|
|
704
|
+
const exports = treeNode2.children.filter(Boolean).map((file) => {
|
|
705
|
+
const importPath = file.data.type === "directory" ? `./${file.data.name}/index` : `./${transformers_default.trimExtName(file.data.name)}`;
|
|
706
|
+
if (importPath.endsWith("index") && file.data.type === "file") {
|
|
708
707
|
return void 0;
|
|
709
708
|
}
|
|
710
709
|
return {
|
|
711
|
-
path:
|
|
710
|
+
path: extName ? `${importPath}${extName}` : importPath,
|
|
712
711
|
isTypeOnly
|
|
713
712
|
};
|
|
714
713
|
}).filter(Boolean);
|
|
715
|
-
|
|
714
|
+
files.push({
|
|
716
715
|
path: indexPath,
|
|
717
716
|
baseName: "index.ts",
|
|
718
717
|
source: "",
|
|
719
|
-
exports
|
|
720
|
-
|
|
721
|
-
|
|
718
|
+
exports,
|
|
719
|
+
meta: {
|
|
720
|
+
treeNode: treeNode2
|
|
721
|
+
}
|
|
722
722
|
});
|
|
723
|
-
} else {
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
}
|
|
723
|
+
} else if (treeNode2.children.length === 1) {
|
|
724
|
+
const [treeNodeChild] = treeNode2.children;
|
|
725
|
+
const indexPath = path__default.default.resolve(treeNode2.data.path, "index.ts");
|
|
726
|
+
const importPath = treeNodeChild.data.type === "directory" ? `./${treeNodeChild.data.name}/index` : `./${transformers_default.trimExtName(treeNodeChild.data.name)}`;
|
|
727
|
+
const exports = [
|
|
728
|
+
{
|
|
729
|
+
path: extName ? `${importPath}${extName}` : importPath,
|
|
730
|
+
isTypeOnly
|
|
731
|
+
}
|
|
732
|
+
];
|
|
733
|
+
files.push({
|
|
734
|
+
path: indexPath,
|
|
735
|
+
baseName: "index.ts",
|
|
736
|
+
source: "",
|
|
737
|
+
exports,
|
|
738
|
+
meta: {
|
|
739
|
+
treeNode: treeNode2
|
|
740
|
+
}
|
|
741
741
|
});
|
|
742
742
|
}
|
|
743
|
-
|
|
744
|
-
fileReducer(
|
|
743
|
+
treeNode2.children.forEach((childItem) => {
|
|
744
|
+
fileReducer(files, childItem);
|
|
745
745
|
});
|
|
746
|
-
return
|
|
746
|
+
return files;
|
|
747
747
|
};
|
|
748
|
-
|
|
749
|
-
const filteredFiles = filter ? files.filter(filter) : files;
|
|
750
|
-
return map ? filteredFiles.map(map) : filteredFiles;
|
|
748
|
+
return fileReducer([], tree).reverse();
|
|
751
749
|
}
|
|
752
750
|
};
|
|
753
751
|
_options = new WeakMap();
|
|
754
|
-
var _cache, _task, _isWriting, _timeout, _queue2, _validate,
|
|
752
|
+
var _cache, _task, _isWriting, _timeout, _queue2, _validate, _add, add_fn, _addOrAppend, addOrAppend_fn;
|
|
755
753
|
var _FileManager = class _FileManager {
|
|
756
754
|
constructor(options) {
|
|
757
755
|
__privateAdd(this, _validate);
|
|
@@ -784,7 +782,6 @@ var _FileManager = class _FileManager {
|
|
|
784
782
|
}
|
|
785
783
|
async add(...files) {
|
|
786
784
|
const promises = files.map((file) => {
|
|
787
|
-
__privateMethod(this, _validate, validate_fn).call(this, file);
|
|
788
785
|
if (file.override) {
|
|
789
786
|
return __privateMethod(this, _add, add_fn).call(this, file);
|
|
790
787
|
}
|
|
@@ -796,12 +793,37 @@ var _FileManager = class _FileManager {
|
|
|
796
793
|
}
|
|
797
794
|
return resolvedFiles[0];
|
|
798
795
|
}
|
|
799
|
-
async addIndexes({ root,
|
|
800
|
-
const
|
|
801
|
-
|
|
796
|
+
async addIndexes({ root, output, meta, options = {} }) {
|
|
797
|
+
const { exportType = "barrel" } = output;
|
|
798
|
+
if (!exportType) {
|
|
799
|
+
return void 0;
|
|
800
|
+
}
|
|
801
|
+
const exportPath = output.path.startsWith("./") ? output.path : `./${output.path}`;
|
|
802
|
+
const barrelManager = new BarrelManager({ extName: output.extName, ...options });
|
|
803
|
+
const files = barrelManager.getIndexes(path.resolve(root, output.path));
|
|
802
804
|
if (!files) {
|
|
803
805
|
return void 0;
|
|
804
806
|
}
|
|
807
|
+
const rootFile = {
|
|
808
|
+
path: path.resolve(root, "index.ts"),
|
|
809
|
+
baseName: "index.ts",
|
|
810
|
+
source: "",
|
|
811
|
+
exports: [
|
|
812
|
+
output.exportAs ? {
|
|
813
|
+
name: output.exportAs,
|
|
814
|
+
asAlias: true,
|
|
815
|
+
path: exportPath,
|
|
816
|
+
isTypeOnly: options.isTypeOnly
|
|
817
|
+
} : {
|
|
818
|
+
path: exportPath,
|
|
819
|
+
isTypeOnly: options.isTypeOnly
|
|
820
|
+
}
|
|
821
|
+
]
|
|
822
|
+
};
|
|
823
|
+
await __privateMethod(this, _addOrAppend, addOrAppend_fn).call(this, {
|
|
824
|
+
...rootFile,
|
|
825
|
+
meta: meta ? meta : rootFile.meta
|
|
826
|
+
});
|
|
805
827
|
return await Promise.all(
|
|
806
828
|
files.map((file) => {
|
|
807
829
|
return __privateMethod(this, _addOrAppend, addOrAppend_fn).call(this, {
|
|
@@ -848,9 +870,22 @@ var _FileManager = class _FileManager {
|
|
|
848
870
|
}
|
|
849
871
|
const exports = file.exports ? combineExports(file.exports) : [];
|
|
850
872
|
const imports = file.imports ? combineImports(file.imports, exports, file.source) : [];
|
|
851
|
-
const importNodes = imports.
|
|
873
|
+
const importNodes = imports.filter((item) => {
|
|
874
|
+
return item.path !== transformers_default.trimExtName(file.path);
|
|
875
|
+
}).map((item) => {
|
|
876
|
+
return factory__namespace.createImportDeclaration({
|
|
877
|
+
name: item.name,
|
|
878
|
+
path: item.root ? getRelativePath(item.root, item.path) : item.path,
|
|
879
|
+
isTypeOnly: item.isTypeOnly
|
|
880
|
+
});
|
|
881
|
+
});
|
|
852
882
|
const exportNodes = exports.map(
|
|
853
|
-
(item) => factory__namespace.createExportDeclaration({
|
|
883
|
+
(item) => factory__namespace.createExportDeclaration({
|
|
884
|
+
name: item.name,
|
|
885
|
+
path: item.path,
|
|
886
|
+
isTypeOnly: item.isTypeOnly,
|
|
887
|
+
asAlias: item.asAlias
|
|
888
|
+
})
|
|
854
889
|
);
|
|
855
890
|
return [parser.print([...importNodes, ...exportNodes]), getEnvSource(file.source, file.env)].join("\n");
|
|
856
891
|
}
|
|
@@ -901,18 +936,10 @@ _isWriting = new WeakMap();
|
|
|
901
936
|
_timeout = new WeakMap();
|
|
902
937
|
_queue2 = new WeakMap();
|
|
903
938
|
_validate = new WeakSet();
|
|
904
|
-
validate_fn = function(file) {
|
|
905
|
-
if (!file.validate) {
|
|
906
|
-
return;
|
|
907
|
-
}
|
|
908
|
-
if (!file.path.toLowerCase().endsWith(file.baseName.toLowerCase())) {
|
|
909
|
-
throw new Error(`${file.path} should end with the baseName ${file.baseName}`);
|
|
910
|
-
}
|
|
911
|
-
};
|
|
912
939
|
_add = new WeakSet();
|
|
913
940
|
add_fn = async function(file) {
|
|
914
941
|
const controller = new AbortController();
|
|
915
|
-
const resolvedFile = { id: crypto__default.default.randomUUID(), ...file };
|
|
942
|
+
const resolvedFile = { id: crypto__default.default.randomUUID(), name: transformers_default.trimExtName(file.baseName), ...file };
|
|
916
943
|
__privateGet(this, _cache).set(resolvedFile.path, [{ cancel: () => controller.abort(), ...resolvedFile }]);
|
|
917
944
|
if (__privateGet(this, _queue2)) {
|
|
918
945
|
await __privateGet(this, _queue2).run(
|
|
@@ -985,7 +1012,7 @@ function combineImports(imports, exports, source) {
|
|
|
985
1012
|
return checker(importName) || exports.some(({ name: name2 }) => Array.isArray(name2) ? name2.some(checker) : checker(name2));
|
|
986
1013
|
};
|
|
987
1014
|
if (Array.isArray(name)) {
|
|
988
|
-
name = name.filter((item) => hasImportInSource(item));
|
|
1015
|
+
name = name.filter((item) => typeof item === "string" ? hasImportInSource(item) : hasImportInSource(item.propertyName));
|
|
989
1016
|
}
|
|
990
1017
|
const prevByPath = prev.findLast((imp) => imp.path === curr.path && imp.isTypeOnly === curr.isTypeOnly);
|
|
991
1018
|
const uniquePrev = prev.findLast((imp) => imp.path === curr.path && isEqual__default.default(imp.name, name) && imp.isTypeOnly === curr.isTypeOnly);
|
|
@@ -1031,8 +1058,8 @@ function getEnvSource(source, env) {
|
|
|
1031
1058
|
throw new TypeError(`Environment should be in upperCase for ${key}`);
|
|
1032
1059
|
}
|
|
1033
1060
|
if (typeof replaceBy === "string") {
|
|
1034
|
-
prev =
|
|
1035
|
-
prev =
|
|
1061
|
+
prev = transformers_default.searchAndReplace({ text: prev.replaceAll(`process.env.${key}`, replaceBy), replaceBy, prefix: "process.env", key });
|
|
1062
|
+
prev = transformers_default.searchAndReplace({ text: prev.replaceAll(new RegExp(`(declare const).*
|
|
1036
1063
|
`, "ig"), ""), replaceBy, key });
|
|
1037
1064
|
}
|
|
1038
1065
|
return prev;
|
|
@@ -1145,6 +1172,8 @@ function setUniqueName(originalName, data) {
|
|
|
1145
1172
|
data[originalName] = 1;
|
|
1146
1173
|
return originalName;
|
|
1147
1174
|
}
|
|
1175
|
+
|
|
1176
|
+
// src/utils/URLPath.ts
|
|
1148
1177
|
var URLPath = class {
|
|
1149
1178
|
constructor(path2) {
|
|
1150
1179
|
this.path = path2;
|
|
@@ -1211,7 +1240,7 @@ var URLPath = class {
|
|
|
1211
1240
|
let newPath = this.path.replaceAll("{", "${");
|
|
1212
1241
|
if (found) {
|
|
1213
1242
|
newPath = found.reduce((prev, curr) => {
|
|
1214
|
-
const pathParam = replacer ? replacer(
|
|
1243
|
+
const pathParam = replacer ? replacer(transformers_default.camelCase(curr)) : transformers_default.camelCase(curr);
|
|
1215
1244
|
const replacement = `\${${pathParam}}`;
|
|
1216
1245
|
return prev.replace(curr, replacement);
|
|
1217
1246
|
}, this.path);
|
|
@@ -1227,7 +1256,7 @@ var URLPath = class {
|
|
|
1227
1256
|
const params = {};
|
|
1228
1257
|
found.forEach((item) => {
|
|
1229
1258
|
item = item.replaceAll("{", "").replaceAll("}", "");
|
|
1230
|
-
const pathParam = replacer ? replacer(
|
|
1259
|
+
const pathParam = replacer ? replacer(transformers_default.camelCase(item)) : transformers_default.camelCase(item);
|
|
1231
1260
|
params[pathParam] = pathParam;
|
|
1232
1261
|
}, this.path);
|
|
1233
1262
|
return params;
|
|
@@ -1266,7 +1295,6 @@ exports.renderTemplate = renderTemplate;
|
|
|
1266
1295
|
exports.setUniqueName = setUniqueName;
|
|
1267
1296
|
exports.throttle = throttle;
|
|
1268
1297
|
exports.timeout = timeout;
|
|
1269
|
-
exports.transformers = transformers;
|
|
1270
1298
|
exports.write = write;
|
|
1271
1299
|
//# sourceMappingURL=out.js.map
|
|
1272
1300
|
//# sourceMappingURL=utils.cjs.map
|