@kubb/core 2.0.0-beta.13 → 2.0.0-beta.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/dist/chunk-35FDNG5F.cjs +71 -0
  2. package/dist/chunk-35FDNG5F.cjs.map +1 -0
  3. package/dist/chunk-7CNPSL5M.js +85 -0
  4. package/dist/chunk-7CNPSL5M.js.map +1 -0
  5. package/dist/{chunk-SX2AYX5F.js → chunk-DKYWBKNH.js} +2 -2
  6. package/dist/chunk-EZSRGYAY.js +128 -0
  7. package/dist/chunk-EZSRGYAY.js.map +1 -0
  8. package/dist/{chunk-77QZQ377.cjs → chunk-GBX7KRCX.cjs} +12 -5
  9. package/dist/chunk-GBX7KRCX.cjs.map +1 -0
  10. package/dist/{chunk-FOQFLMOC.js → chunk-ICRPOCV4.cjs} +400 -446
  11. package/dist/chunk-ICRPOCV4.cjs.map +1 -0
  12. package/dist/chunk-LAS7UYTK.cjs +129 -0
  13. package/dist/chunk-LAS7UYTK.cjs.map +1 -0
  14. package/dist/chunk-LJHT3DNH.js +67 -0
  15. package/dist/chunk-LJHT3DNH.js.map +1 -0
  16. package/dist/{chunk-I7UUR5MZ.cjs → chunk-MM42A6GN.cjs} +3 -3
  17. package/dist/{chunk-I7UUR5MZ.cjs.map → chunk-MM42A6GN.cjs.map} +1 -1
  18. package/dist/{chunk-L6F5QUH2.js → chunk-SRGTC4FJ.js} +2 -2
  19. package/dist/{chunk-PY7I7OEN.cjs → chunk-ST7GHHSU.cjs} +34 -22
  20. package/dist/chunk-ST7GHHSU.cjs.map +1 -0
  21. package/dist/{chunk-ABFPJZJL.cjs → chunk-U4C2WTCI.cjs} +5 -5
  22. package/dist/{chunk-WFDR7OMY.js → chunk-UIQUKFF4.js} +9 -2
  23. package/dist/chunk-UIQUKFF4.js.map +1 -0
  24. package/dist/{chunk-6N4JBFFS.js → chunk-WTSDXEWD.js} +4 -12
  25. package/dist/chunk-WTSDXEWD.js.map +1 -0
  26. package/dist/fs.cjs +9 -8
  27. package/dist/fs.cjs.map +1 -1
  28. package/dist/fs.d.cts +1 -1
  29. package/dist/fs.d.ts +1 -1
  30. package/dist/fs.js +3 -2
  31. package/dist/fs.js.map +1 -1
  32. package/dist/index.cjs +955 -244
  33. package/dist/index.cjs.map +1 -1
  34. package/dist/index.d.cts +17 -15
  35. package/dist/index.d.ts +17 -15
  36. package/dist/index.js +135 -83
  37. package/dist/index.js.map +1 -1
  38. package/dist/logger.cjs +7 -6
  39. package/dist/logger.d.cts +1 -0
  40. package/dist/logger.d.ts +1 -0
  41. package/dist/logger.js +3 -2
  42. package/dist/transformers.cjs +21 -21
  43. package/dist/transformers.js +5 -5
  44. package/dist/utils.cjs +22 -19
  45. package/dist/utils.cjs.map +1 -1
  46. package/dist/utils.d.cts +0 -1
  47. package/dist/utils.d.ts +0 -1
  48. package/dist/utils.js +14 -4
  49. package/dist/utils.js.map +1 -1
  50. package/dist/{write-46ytbnu9.d.cts → write-A6VgHkYA.d.cts} +4 -1
  51. package/dist/{write-46ytbnu9.d.ts → write-A6VgHkYA.d.ts} +4 -1
  52. package/package.json +9 -8
  53. package/src/FileManager.ts +60 -57
  54. package/src/PluginManager.ts +11 -18
  55. package/src/build.ts +57 -32
  56. package/src/fs/clean.ts +2 -2
  57. package/src/fs/read.ts +1 -0
  58. package/src/fs/write.ts +40 -24
  59. package/src/logger.ts +10 -0
  60. package/src/utils/index.ts +0 -2
  61. package/dist/Queue-2-6pMcCx.d.cts +0 -32
  62. package/dist/Queue-2-6pMcCx.d.ts +0 -32
  63. package/dist/chunk-56YH3VX6.js +0 -239
  64. package/dist/chunk-56YH3VX6.js.map +0 -1
  65. package/dist/chunk-6N4JBFFS.js.map +0 -1
  66. package/dist/chunk-72O327DC.cjs +0 -247
  67. package/dist/chunk-72O327DC.cjs.map +0 -1
  68. package/dist/chunk-77QZQ377.cjs.map +0 -1
  69. package/dist/chunk-FOQFLMOC.js.map +0 -1
  70. package/dist/chunk-PY7I7OEN.cjs.map +0 -1
  71. package/dist/chunk-WFDR7OMY.js.map +0 -1
  72. package/dist/chunk-Z7XZQBAK.cjs +0 -2339
  73. package/dist/chunk-Z7XZQBAK.cjs.map +0 -1
  74. package/src/utils/Queue.ts +0 -110
  75. /package/dist/{chunk-SX2AYX5F.js.map → chunk-DKYWBKNH.js.map} +0 -0
  76. /package/dist/{chunk-L6F5QUH2.js.map → chunk-SRGTC4FJ.js.map} +0 -0
  77. /package/dist/{chunk-ABFPJZJL.cjs.map → chunk-U4C2WTCI.cjs.map} +0 -0
package/dist/logger.cjs CHANGED
@@ -1,25 +1,26 @@
1
1
  'use strict';
2
2
 
3
- var chunk77QZQ377_cjs = require('./chunk-77QZQ377.cjs');
4
- require('./chunk-I7UUR5MZ.cjs');
3
+ var chunkGBX7KRCX_cjs = require('./chunk-GBX7KRCX.cjs');
4
+ require('./chunk-ICRPOCV4.cjs');
5
+ require('./chunk-MM42A6GN.cjs');
5
6
 
6
7
 
7
8
 
8
9
  Object.defineProperty(exports, 'LogLevel', {
9
10
  enumerable: true,
10
- get: function () { return chunk77QZQ377_cjs.LogLevel; }
11
+ get: function () { return chunkGBX7KRCX_cjs.LogLevel; }
11
12
  });
12
13
  Object.defineProperty(exports, 'createLogger', {
13
14
  enumerable: true,
14
- get: function () { return chunk77QZQ377_cjs.createLogger; }
15
+ get: function () { return chunkGBX7KRCX_cjs.createLogger; }
15
16
  });
16
17
  Object.defineProperty(exports, 'randomCliColour', {
17
18
  enumerable: true,
18
- get: function () { return chunk77QZQ377_cjs.randomCliColour; }
19
+ get: function () { return chunkGBX7KRCX_cjs.randomCliColour; }
19
20
  });
20
21
  Object.defineProperty(exports, 'randomColour', {
21
22
  enumerable: true,
22
- get: function () { return chunk77QZQ377_cjs.randomColour; }
23
+ get: function () { return chunkGBX7KRCX_cjs.randomColour; }
23
24
  });
24
25
  //# sourceMappingURL=out.js.map
25
26
  //# sourceMappingURL=logger.cjs.map
package/dist/logger.d.cts CHANGED
@@ -16,6 +16,7 @@ type Logger = {
16
16
  error: (message: string | null) => void;
17
17
  info: (message: string | null) => void;
18
18
  warn: (message: string | null) => void;
19
+ debug: (message: string | null) => Promise<void>;
19
20
  spinner?: Ora;
20
21
  logs: string[];
21
22
  };
package/dist/logger.d.ts CHANGED
@@ -16,6 +16,7 @@ type Logger = {
16
16
  error: (message: string | null) => void;
17
17
  info: (message: string | null) => void;
18
18
  warn: (message: string | null) => void;
19
+ debug: (message: string | null) => Promise<void>;
19
20
  spinner?: Ora;
20
21
  logs: string[];
21
22
  };
package/dist/logger.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { createRequire } from 'module';
2
- export { LogLevel, createLogger, randomCliColour, randomColour } from './chunk-WFDR7OMY.js';
3
- import './chunk-6N4JBFFS.js';
2
+ export { LogLevel, createLogger, randomCliColour, randomColour } from './chunk-UIQUKFF4.js';
3
+ import './chunk-7CNPSL5M.js';
4
+ import './chunk-WTSDXEWD.js';
4
5
 
5
6
  createRequire(import.meta.url);
6
7
  //# sourceMappingURL=out.js.map
@@ -2,21 +2,21 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var chunkABFPJZJL_cjs = require('./chunk-ABFPJZJL.cjs');
6
- var chunkPY7I7OEN_cjs = require('./chunk-PY7I7OEN.cjs');
7
- var chunkI7UUR5MZ_cjs = require('./chunk-I7UUR5MZ.cjs');
5
+ var chunkU4C2WTCI_cjs = require('./chunk-U4C2WTCI.cjs');
6
+ var chunkST7GHHSU_cjs = require('./chunk-ST7GHHSU.cjs');
7
+ var chunkMM42A6GN_cjs = require('./chunk-MM42A6GN.cjs');
8
8
 
9
9
  // src/transformers/index.ts
10
- chunkI7UUR5MZ_cjs.init_cjs_shims();
10
+ chunkMM42A6GN_cjs.init_cjs_shims();
11
11
 
12
12
  // src/transformers/combineCodes.ts
13
- chunkI7UUR5MZ_cjs.init_cjs_shims();
13
+ chunkMM42A6GN_cjs.init_cjs_shims();
14
14
  function combineCodes(codes) {
15
15
  return codes.join("\n");
16
16
  }
17
17
 
18
18
  // src/transformers/createJSDocBlockText.ts
19
- chunkI7UUR5MZ_cjs.init_cjs_shims();
19
+ chunkMM42A6GN_cjs.init_cjs_shims();
20
20
  function createJSDocBlockText({ comments }) {
21
21
  const filteredComments = comments.filter(Boolean);
22
22
  if (!filteredComments.length) {
@@ -28,7 +28,7 @@ function createJSDocBlockText({ comments }) {
28
28
  }
29
29
 
30
30
  // src/transformers/escape.ts
31
- chunkI7UUR5MZ_cjs.init_cjs_shims();
31
+ chunkMM42A6GN_cjs.init_cjs_shims();
32
32
  function escape(text) {
33
33
  return text ? text.replaceAll("`", "\\`") : "";
34
34
  }
@@ -54,13 +54,13 @@ function jsStringEscape(input) {
54
54
  }
55
55
 
56
56
  // src/transformers/indent.ts
57
- chunkI7UUR5MZ_cjs.init_cjs_shims();
57
+ chunkMM42A6GN_cjs.init_cjs_shims();
58
58
  function createIndent(size) {
59
59
  return Array.from({ length: size + 1 }).join(" ");
60
60
  }
61
61
 
62
62
  // src/transformers/nameSorter.ts
63
- chunkI7UUR5MZ_cjs.init_cjs_shims();
63
+ chunkMM42A6GN_cjs.init_cjs_shims();
64
64
  function nameSorter(a, b) {
65
65
  if (a.name < b.name) {
66
66
  return -1;
@@ -77,41 +77,41 @@ var transformers_default = {
77
77
  escape,
78
78
  jsStringEscape,
79
79
  createIndent,
80
- transformReservedWord: chunkABFPJZJL_cjs.transformReservedWord,
80
+ transformReservedWord: chunkU4C2WTCI_cjs.transformReservedWord,
81
81
  nameSorter,
82
- searchAndReplace: chunkABFPJZJL_cjs.searchAndReplace,
83
- trim: chunkABFPJZJL_cjs.trim,
84
- trimExtName: chunkABFPJZJL_cjs.trimExtName,
82
+ searchAndReplace: chunkU4C2WTCI_cjs.searchAndReplace,
83
+ trim: chunkU4C2WTCI_cjs.trim,
84
+ trimExtName: chunkU4C2WTCI_cjs.trimExtName,
85
85
  JSDoc: {
86
86
  createJSDocBlockText
87
87
  },
88
- camelCase: chunkPY7I7OEN_cjs.camelCase,
89
- pascalCase: chunkPY7I7OEN_cjs.pascalCase
88
+ camelCase: chunkST7GHHSU_cjs.camelCase,
89
+ pascalCase: chunkST7GHHSU_cjs.pascalCase
90
90
  };
91
91
 
92
92
  Object.defineProperty(exports, 'searchAndReplace', {
93
93
  enumerable: true,
94
- get: function () { return chunkABFPJZJL_cjs.searchAndReplace; }
94
+ get: function () { return chunkU4C2WTCI_cjs.searchAndReplace; }
95
95
  });
96
96
  Object.defineProperty(exports, 'transformReservedWord', {
97
97
  enumerable: true,
98
- get: function () { return chunkABFPJZJL_cjs.transformReservedWord; }
98
+ get: function () { return chunkU4C2WTCI_cjs.transformReservedWord; }
99
99
  });
100
100
  Object.defineProperty(exports, 'trim', {
101
101
  enumerable: true,
102
- get: function () { return chunkABFPJZJL_cjs.trim; }
102
+ get: function () { return chunkU4C2WTCI_cjs.trim; }
103
103
  });
104
104
  Object.defineProperty(exports, 'trimExtName', {
105
105
  enumerable: true,
106
- get: function () { return chunkABFPJZJL_cjs.trimExtName; }
106
+ get: function () { return chunkU4C2WTCI_cjs.trimExtName; }
107
107
  });
108
108
  Object.defineProperty(exports, 'camelCase', {
109
109
  enumerable: true,
110
- get: function () { return chunkPY7I7OEN_cjs.camelCase; }
110
+ get: function () { return chunkST7GHHSU_cjs.camelCase; }
111
111
  });
112
112
  Object.defineProperty(exports, 'pascalCase', {
113
113
  enumerable: true,
114
- get: function () { return chunkPY7I7OEN_cjs.pascalCase; }
114
+ get: function () { return chunkST7GHHSU_cjs.pascalCase; }
115
115
  });
116
116
  exports.combineCodes = combineCodes;
117
117
  exports.createIndent = createIndent;
@@ -1,9 +1,9 @@
1
1
  import { createRequire } from 'module';
2
- import { transformReservedWord, searchAndReplace, trim, trimExtName } from './chunk-L6F5QUH2.js';
3
- export { searchAndReplace, transformReservedWord, trim, trimExtName } from './chunk-L6F5QUH2.js';
4
- import { camelCase, pascalCase } from './chunk-SX2AYX5F.js';
5
- export { camelCase, pascalCase } from './chunk-SX2AYX5F.js';
6
- import { init_esm_shims } from './chunk-6N4JBFFS.js';
2
+ import { transformReservedWord, searchAndReplace, trim, trimExtName } from './chunk-SRGTC4FJ.js';
3
+ export { searchAndReplace, transformReservedWord, trim, trimExtName } from './chunk-SRGTC4FJ.js';
4
+ import { camelCase, pascalCase } from './chunk-DKYWBKNH.js';
5
+ export { camelCase, pascalCase } from './chunk-DKYWBKNH.js';
6
+ import { init_esm_shims } from './chunk-WTSDXEWD.js';
7
7
 
8
8
  createRequire(import.meta.url);
9
9
 
package/dist/utils.cjs CHANGED
@@ -1,15 +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
+ var chunkLAS7UYTK_cjs = require('./chunk-LAS7UYTK.cjs');
4
+ var chunkST7GHHSU_cjs = require('./chunk-ST7GHHSU.cjs');
5
+ var chunkMM42A6GN_cjs = require('./chunk-MM42A6GN.cjs');
6
6
  var naturalOrderby = require('natural-orderby');
7
7
 
8
8
  // src/utils/index.ts
9
- chunkI7UUR5MZ_cjs.init_cjs_shims();
9
+ chunkMM42A6GN_cjs.init_cjs_shims();
10
10
 
11
11
  // src/utils/FunctionParams.ts
12
- chunkI7UUR5MZ_cjs.init_cjs_shims();
12
+ chunkMM42A6GN_cjs.init_cjs_shims();
13
13
  var FunctionParams = class {
14
14
  constructor(type) {
15
15
  this.items = [];
@@ -34,7 +34,7 @@ var FunctionParams = class {
34
34
  acc.push(`${type}${rest.default ? ` = ${rest.default}` : ""}`);
35
35
  return acc;
36
36
  }
37
- const parameterName = name.startsWith("{") ? name : chunkPY7I7OEN_cjs.camelCase(name);
37
+ const parameterName = name.startsWith("{") ? name : chunkST7GHHSU_cjs.camelCase(name);
38
38
  if (type) {
39
39
  if (required) {
40
40
  acc.push(`${parameterName}: ${type}${rest.default ? ` = ${rest.default}` : ""}`);
@@ -50,7 +50,7 @@ var FunctionParams = class {
50
50
  };
51
51
 
52
52
  // src/utils/promise.ts
53
- chunkI7UUR5MZ_cjs.init_cjs_shims();
53
+ chunkMM42A6GN_cjs.init_cjs_shims();
54
54
  function isPromise(result) {
55
55
  return !!result && typeof result?.then === "function";
56
56
  }
@@ -62,7 +62,7 @@ function isPromiseRejectedResult(result) {
62
62
  }
63
63
 
64
64
  // src/utils/renderTemplate.ts
65
- chunkI7UUR5MZ_cjs.init_cjs_shims();
65
+ chunkMM42A6GN_cjs.init_cjs_shims();
66
66
  function renderTemplate(template, data = void 0) {
67
67
  if (!data || !Object.keys(data).length) {
68
68
  return template.replace(/{{(.*?)}}/g, "");
@@ -86,30 +86,33 @@ function renderTemplate(template, data = void 0) {
86
86
  }, template) || "";
87
87
  }
88
88
 
89
- Object.defineProperty(exports, 'Queue', {
90
- enumerable: true,
91
- get: function () { return chunk72O327DC_cjs.Queue; }
92
- });
89
+ // src/utils/timeout.ts
90
+ chunkMM42A6GN_cjs.init_cjs_shims();
91
+ async function timeout(ms) {
92
+ return new Promise((resolve) => {
93
+ setTimeout(() => {
94
+ resolve(true);
95
+ }, ms);
96
+ });
97
+ }
98
+
93
99
  Object.defineProperty(exports, 'URLPath', {
94
100
  enumerable: true,
95
- get: function () { return chunk72O327DC_cjs.URLPath; }
101
+ get: function () { return chunkLAS7UYTK_cjs.URLPath; }
96
102
  });
97
103
  Object.defineProperty(exports, 'getUniqueName', {
98
104
  enumerable: true,
99
- get: function () { return chunk72O327DC_cjs.getUniqueName; }
105
+ get: function () { return chunkLAS7UYTK_cjs.getUniqueName; }
100
106
  });
101
107
  Object.defineProperty(exports, 'setUniqueName', {
102
108
  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; }
109
+ get: function () { return chunkLAS7UYTK_cjs.setUniqueName; }
108
110
  });
109
111
  exports.FunctionParams = FunctionParams;
110
112
  exports.isPromise = isPromise;
111
113
  exports.isPromiseFulfilledResult = isPromiseFulfilledResult;
112
114
  exports.isPromiseRejectedResult = isPromiseRejectedResult;
113
115
  exports.renderTemplate = renderTemplate;
116
+ exports.timeout = timeout;
114
117
  //# sourceMappingURL=out.js.map
115
118
  //# sourceMappingURL=utils.cjs.map
@@ -1 +1 @@
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"]}
1
+ {"version":3,"sources":["../src/utils/index.ts","../src/utils/FunctionParams.ts","../src/utils/promise.ts","../src/utils/renderTemplate.ts","../src/utils/timeout.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;;;AC9BA;AAAA,eAAsB,QAAQ,IAA8B;AAC1D,SAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,eAAW,MAAM;AACf,cAAQ,IAAI;AAAA,IACd,GAAG,EAAE;AAAA,EACP,CAAC;AACH","sourcesContent":["export type { FunctionParamsAST } from './FunctionParams.ts'\nexport { FunctionParams } from './FunctionParams.ts'\nexport { isPromise, isPromiseFulfilledResult, isPromiseRejectedResult } from './promise.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","export async function timeout(ms: number): Promise<unknown> {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(true)\n }, ms)\n })\n}\n"]}
package/dist/utils.d.cts CHANGED
@@ -1,5 +1,4 @@
1
1
  import { PossiblePromise } from '@kubb/types';
2
- export { Q as Queue, a as QueueJob } from './Queue-2-6pMcCx.cjs';
3
2
 
4
3
  type FunctionParamsASTWithoutType = {
5
4
  name?: string;
package/dist/utils.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import { PossiblePromise } from '@kubb/types';
2
- export { Q as Queue, a as QueueJob } from './Queue-2-6pMcCx.js';
3
2
 
4
3
  type FunctionParamsASTWithoutType = {
5
4
  name?: string;
package/dist/utils.js CHANGED
@@ -1,7 +1,7 @@
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
+ export { URLPath, getUniqueName, setUniqueName } from './chunk-EZSRGYAY.js';
3
+ import { camelCase } from './chunk-DKYWBKNH.js';
4
+ import { init_esm_shims } from './chunk-WTSDXEWD.js';
5
5
  import { orderBy } from 'natural-orderby';
6
6
 
7
7
  createRequire(import.meta.url);
@@ -87,6 +87,16 @@ function renderTemplate(template, data = void 0) {
87
87
  }, template) || "";
88
88
  }
89
89
 
90
- export { FunctionParams, isPromise, isPromiseFulfilledResult, isPromiseRejectedResult, renderTemplate };
90
+ // src/utils/timeout.ts
91
+ init_esm_shims();
92
+ async function timeout(ms) {
93
+ return new Promise((resolve) => {
94
+ setTimeout(() => {
95
+ resolve(true);
96
+ }, ms);
97
+ });
98
+ }
99
+
100
+ export { FunctionParams, isPromise, isPromiseFulfilledResult, isPromiseRejectedResult, renderTemplate, timeout };
91
101
  //# sourceMappingURL=out.js.map
92
102
  //# sourceMappingURL=utils.js.map
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
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"]}
1
+ {"version":3,"sources":["../src/utils/index.ts","../src/utils/FunctionParams.ts","../src/utils/promise.ts","../src/utils/renderTemplate.ts","../src/utils/timeout.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;;;AC9BA;AAAA,eAAsB,QAAQ,IAA8B;AAC1D,SAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,eAAW,MAAM;AACf,cAAQ,IAAI;AAAA,IACd,GAAG,EAAE;AAAA,EACP,CAAC;AACH","sourcesContent":["export type { FunctionParamsAST } from './FunctionParams.ts'\nexport { FunctionParams } from './FunctionParams.ts'\nexport { isPromise, isPromiseFulfilledResult, isPromiseRejectedResult } from './promise.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","export async function timeout(ms: number): Promise<unknown> {\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve(true)\n }, ms)\n })\n}\n"]}
@@ -2,6 +2,9 @@ declare function getRelativePath(rootDir?: string | null, filePath?: string | nu
2
2
  declare function read(path: string): Promise<string>;
3
3
  declare function readSync(path: string): string;
4
4
 
5
- declare function write(data: string, path: string): Promise<string | undefined>;
5
+ type Options = {
6
+ sanity?: boolean;
7
+ };
8
+ declare function write(data: string, path: string, options?: Options): Promise<string | undefined>;
6
9
 
7
10
  export { readSync as a, getRelativePath as g, read as r, write as w };
@@ -2,6 +2,9 @@ declare function getRelativePath(rootDir?: string | null, filePath?: string | nu
2
2
  declare function read(path: string): Promise<string>;
3
3
  declare function readSync(path: string): string;
4
4
 
5
- declare function write(data: string, path: string): Promise<string | undefined>;
5
+ type Options = {
6
+ sanity?: boolean;
7
+ };
8
+ declare function write(data: string, path: string, options?: Options): Promise<string | undefined>;
6
9
 
7
10
  export { readSync as a, getRelativePath as g, read as r, write as w };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubb/core",
3
- "version": "2.0.0-beta.13",
3
+ "version": "2.0.0-beta.14",
4
4
  "description": "Generator core",
5
5
  "keywords": [
6
6
  "typescript",
@@ -62,27 +62,28 @@
62
62
  "!/**/__tests__/**"
63
63
  ],
64
64
  "dependencies": {
65
+ "change-case": "^5.3.0",
65
66
  "directory-tree": "^3.5.1",
67
+ "find-up": "^7.0.0",
66
68
  "js-runtime": "^0.0.7",
67
69
  "natural-orderby": "^3.0.2",
70
+ "p-queue": "^7.4.1",
68
71
  "seedrandom": "^3.0.5",
69
72
  "semver": "^7.5.4",
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"
73
+ "fs-extra": "^11.2.0",
74
+ "@kubb/parser": "2.0.0-beta.14",
75
+ "@kubb/types": "2.0.0-beta.14"
74
76
  },
75
77
  "devDependencies": {
76
78
  "@types/fs-extra": "^11.0.4",
77
79
  "@types/lodash.isequal": "4.5.6",
78
- "@types/react": "^18.2.41",
80
+ "@types/react": "^18.2.42",
79
81
  "@types/seedrandom": "^3.0.8",
80
82
  "@types/semver": "^7.5.6",
81
83
  "eslint": "^8.55.0",
82
- "tinyrainbow": "^1.1.0",
83
- "fs-extra": "^11.2.0",
84
84
  "lodash.isequal": "^4.5.0",
85
85
  "ora": "^7.0.1",
86
+ "tinyrainbow": "^1.1.1",
86
87
  "tsup": "^8.0.1",
87
88
  "typescript": "^5.3.2",
88
89
  "@kubb/eslint-config": "1.1.8",
@@ -7,18 +7,17 @@ import * as factory from '@kubb/parser/factory'
7
7
 
8
8
  import isEqual from 'lodash.isequal'
9
9
  import { orderBy } from 'natural-orderby'
10
+ import PQueue from 'p-queue'
10
11
 
11
12
  import { getRelativePath, read } from './fs/read.ts'
12
13
  import { write } from './fs/write.ts'
13
14
  import { searchAndReplace } from './transformers/searchAndReplace.ts'
14
15
  import { trimExtName } from './transformers/trim.ts'
15
- import { timeout } from './utils/timeout.ts'
16
16
  import { BarrelManager } from './BarrelManager.ts'
17
17
 
18
18
  import type { GreaterThan } from '@kubb/types'
19
19
  import type { BarrelManagerOptions } from './BarrelManager.ts'
20
20
  import type { KubbPlugin } from './types.ts'
21
- import type { Queue, QueueJob } from './utils/Queue.ts'
22
21
 
23
22
  type BasePath<T extends string = string> = `${T}/`
24
23
 
@@ -192,31 +191,19 @@ type AddIndexesProps = {
192
191
  }
193
192
 
194
193
  type Options = {
195
- queue?: Queue
196
- task?: QueueJob<KubbFile.ResolvedFile>
197
- /**
198
- * Timeout between writes
199
- */
200
- timeout?: number
194
+ queue?: PQueue
195
+ task?: (file: KubbFile.ResolvedFile) => Promise<KubbFile.ResolvedFile>
201
196
  }
202
197
 
203
198
  export class FileManager {
204
199
  #cache: Map<KubbFile.Path, CacheItem[]> = new Map()
205
200
 
206
- #task?: QueueJob<KubbFile.ResolvedFile>
207
- #isWriting = false
208
- /**
209
- * Timeout between writes
210
- */
211
- #timeout: number = 0
212
- #queue?: Queue
213
-
214
- constructor(options?: Options) {
215
- if (options) {
216
- this.#task = options.task
217
- this.#queue = options.queue
218
- this.#timeout = options.timeout || 0
219
- }
201
+ #task: Options['task']
202
+ #queue: PQueue
203
+
204
+ constructor({ task = async (file) => file, queue = new PQueue() }: Options = {}) {
205
+ this.#task = task
206
+ this.#queue = queue
220
207
 
221
208
  return this
222
209
  }
@@ -230,21 +217,13 @@ export class FileManager {
230
217
  return files
231
218
  }
232
219
  get isExecuting(): boolean {
233
- return this.#queue?.hasJobs ?? this.#isWriting ?? false
234
- }
235
-
236
- #validate(file: KubbFile.File): void {
237
- if (!file.path.toLowerCase().endsWith(file.baseName.toLowerCase())) {
238
- throw new Error(`${file.path} should end with the baseName ${file.baseName}`)
239
- }
220
+ return this.#queue.size !== 0 && this.#queue.pending !== 0
240
221
  }
241
222
 
242
223
  async add<T extends Array<KubbFile.File> = Array<KubbFile.File>>(
243
224
  ...files: T
244
225
  ): AddResult<T> {
245
- const promises = files.map((file) => {
246
- // this.#validate(file)
247
-
226
+ const promises = combineFiles(files).map((file) => {
248
227
  if (file.override) {
249
228
  return this.#add(file)
250
229
  }
@@ -267,16 +246,12 @@ export class FileManager {
267
246
 
268
247
  this.#cache.set(resolvedFile.path, [{ cancel: () => controller.abort(), ...resolvedFile }])
269
248
 
270
- if (this.#queue) {
271
- await this.#queue.run(
272
- async () => {
273
- return this.#task?.(resolvedFile)
274
- },
275
- { controller },
276
- )
277
- }
278
-
279
- return resolvedFile
249
+ return this.#queue.add(
250
+ async () => {
251
+ return this.#task?.(resolvedFile)
252
+ },
253
+ { signal: controller.signal },
254
+ ) as Promise<KubbFile.ResolvedFile>
280
255
  }
281
256
 
282
257
  async #addOrAppend(file: KubbFile.File): Promise<KubbFile.ResolvedFile> {
@@ -304,7 +279,7 @@ export class FileManager {
304
279
  return undefined
305
280
  }
306
281
 
307
- const exportPath = output.path.startsWith('./') ? output.path : `./${output.path}`
282
+ const exportPath = output.path.startsWith('./') ? trimExtName(output.path) : `./${trimExtName(output.path)}`
308
283
  const barrelManager = new BarrelManager({ extName: output.extName, ...options })
309
284
  const files = barrelManager.getIndexes(resolve(root, output.path))
310
285
 
@@ -321,11 +296,11 @@ export class FileManager {
321
296
  ? {
322
297
  name: output.exportAs,
323
298
  asAlias: true,
324
- path: exportPath,
299
+ path: output.extName ? `${exportPath}${output.extName}` : exportPath,
325
300
  isTypeOnly: options.isTypeOnly,
326
301
  }
327
302
  : {
328
- path: exportPath,
303
+ path: output.extName ? `${exportPath}${output.extName}` : exportPath,
329
304
  isTypeOnly: options.isTypeOnly,
330
305
  },
331
306
  ],
@@ -369,18 +344,7 @@ export class FileManager {
369
344
  }
370
345
 
371
346
  async write(...params: Parameters<typeof write>): Promise<string | undefined> {
372
- if (!this.#isWriting) {
373
- this.#isWriting = true
374
-
375
- const text = await write(...params)
376
-
377
- this.#isWriting = false
378
- return text
379
- }
380
-
381
- await timeout(this.#timeout)
382
-
383
- return this.write(...params)
347
+ return write(...params)
384
348
  }
385
349
 
386
350
  async read(...params: Parameters<typeof read>): Promise<string> {
@@ -392,6 +356,10 @@ export class FileManager {
392
356
  static getSource<TMeta extends KubbFile.FileMetaBase = KubbFile.FileMetaBase>(file: KubbFile.File<TMeta>): string {
393
357
  return getSource<TMeta>(file)
394
358
  }
359
+
360
+ static combineFiles<TMeta extends KubbFile.FileMetaBase = KubbFile.FileMetaBase>(files: Array<KubbFile.File<TMeta> | null>): Array<KubbFile.File<TMeta>> {
361
+ return combineFiles<TMeta>(files)
362
+ }
395
363
  static getMode(path: string | undefined | null): KubbFile.Mode {
396
364
  if (!path) {
397
365
  return 'directory'
@@ -408,6 +376,41 @@ export class FileManager {
408
376
  }
409
377
  }
410
378
 
379
+ function combineFiles<TMeta extends KubbFile.FileMetaBase = KubbFile.FileMetaBase>(
380
+ files: Array<KubbFile.File<TMeta> | null>,
381
+ ): Array<KubbFile.File<TMeta>> {
382
+ return files.filter(Boolean).reduce((acc, file: KubbFile.File<TMeta>) => {
383
+ const prevIndex = acc.findIndex((item) => item.path === file.path)
384
+
385
+ if (prevIndex === -1) {
386
+ return [...acc, file]
387
+ }
388
+
389
+ const prev = acc[prevIndex]
390
+
391
+ if (prev && file.override) {
392
+ acc[prevIndex] = {
393
+ imports: [],
394
+ exports: [],
395
+ ...file,
396
+ }
397
+ return acc
398
+ }
399
+
400
+ if (prev) {
401
+ acc[prevIndex] = {
402
+ ...file,
403
+ source: prev.source && file.source ? `${prev.source}\n${file.source}` : '',
404
+ imports: [...(prev.imports || []), ...(file.imports || [])],
405
+ exports: [...(prev.exports || []), ...(file.exports || [])],
406
+ env: { ...(prev.env || {}), ...(file.env || {}) },
407
+ }
408
+ }
409
+
410
+ return acc
411
+ }, [] as Array<KubbFile.File<TMeta>>)
412
+ }
413
+
411
414
  export function getSource<TMeta extends KubbFile.FileMetaBase = KubbFile.FileMetaBase>(file: KubbFile.File<TMeta>): string {
412
415
  if (!FileManager.isExtensionAllowed(file.baseName)) {
413
416
  return file.source