@kubb/core 2.0.6 → 2.1.1

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 (71) hide show
  1. package/dist/chunk-5P7ZNIXW.js +15 -0
  2. package/dist/chunk-5P7ZNIXW.js.map +1 -0
  3. package/dist/chunk-65JU7D5L.cjs +29 -0
  4. package/dist/chunk-65JU7D5L.cjs.map +1 -0
  5. package/dist/chunk-6CLGRKHL.js +1859 -0
  6. package/dist/chunk-6CLGRKHL.js.map +1 -0
  7. package/dist/chunk-6TTDLGHW.cjs +2548 -0
  8. package/dist/chunk-6TTDLGHW.cjs.map +1 -0
  9. package/dist/{chunk-XDHI63G7.cjs → chunk-BOAROBF4.cjs} +4 -4
  10. package/dist/chunk-BYGMREPJ.cjs +15 -0
  11. package/dist/chunk-BYGMREPJ.cjs.map +1 -0
  12. package/dist/{chunk-WZQO3EPM.cjs → chunk-CDC7AOGD.cjs} +3 -3
  13. package/dist/{chunk-WZQO3EPM.cjs.map → chunk-CDC7AOGD.cjs.map} +1 -1
  14. package/dist/{chunk-PLVKILIY.cjs → chunk-DQ3TMDDK.cjs} +7 -7
  15. package/dist/{chunk-5TK7TMV6.cjs → chunk-DU6UHGVD.cjs} +5 -5
  16. package/dist/{chunk-K2H7BYQB.js → chunk-EOUT5FJT.js} +3 -3
  17. package/dist/chunk-GPCFICX2.js +29 -0
  18. package/dist/chunk-GPCFICX2.js.map +1 -0
  19. package/dist/{chunk-4A7WG6IA.js → chunk-GQGYHVNX.js} +4 -25
  20. package/dist/chunk-GQGYHVNX.js.map +1 -0
  21. package/dist/{chunk-54P4AWHI.js → chunk-GUCIIN3Z.js} +3 -3
  22. package/dist/{chunk-54P4AWHI.js.map → chunk-GUCIIN3Z.js.map} +1 -1
  23. package/dist/{chunk-H47IKRXJ.cjs → chunk-IZOYUU2C.cjs} +6 -29
  24. package/dist/chunk-IZOYUU2C.cjs.map +1 -0
  25. package/dist/{chunk-NAWI7UXW.js → chunk-JSVMBHJE.js} +6 -12
  26. package/dist/chunk-JSVMBHJE.js.map +1 -0
  27. package/dist/{chunk-HIE46T3F.js → chunk-LIEJUR4C.js} +2 -2
  28. package/dist/{chunk-W2FP7ZWW.cjs → chunk-PTGWQCIU.cjs} +7 -15
  29. package/dist/chunk-PTGWQCIU.cjs.map +1 -0
  30. package/dist/{chunk-7S67BJXQ.js → chunk-QJQ3GMYY.js} +2 -2
  31. package/dist/{chunk-E3ANGQ5N.cjs → chunk-WHFBT7CJ.cjs} +90 -90
  32. package/dist/{chunk-XPOF4D5N.js → chunk-ZXH2OPE4.js} +2 -2
  33. package/dist/fs.cjs +10 -9
  34. package/dist/fs.cjs.map +1 -1
  35. package/dist/fs.js +4 -3
  36. package/dist/fs.js.map +1 -1
  37. package/dist/index.cjs +171 -2637
  38. package/dist/index.cjs.map +1 -1
  39. package/dist/index.d.cts +2 -2
  40. package/dist/index.d.ts +2 -2
  41. package/dist/index.js +36 -1847
  42. package/dist/index.js.map +1 -1
  43. package/dist/logger.cjs +7 -7
  44. package/dist/logger.js +3 -3
  45. package/dist/mocks.cjs +40 -0
  46. package/dist/mocks.cjs.map +1 -0
  47. package/dist/mocks.d.cts +11 -0
  48. package/dist/mocks.d.ts +11 -0
  49. package/dist/mocks.js +41 -0
  50. package/dist/mocks.js.map +1 -0
  51. package/dist/transformers.cjs +21 -21
  52. package/dist/transformers.js +5 -5
  53. package/dist/utils.cjs +13 -12
  54. package/dist/utils.cjs.map +1 -1
  55. package/dist/utils.js +4 -3
  56. package/dist/utils.js.map +1 -1
  57. package/package.json +10 -5
  58. package/src/BarrelManager.ts +43 -17
  59. package/src/FileManager.ts +33 -26
  60. package/dist/chunk-4A7WG6IA.js.map +0 -1
  61. package/dist/chunk-H47IKRXJ.cjs.map +0 -1
  62. package/dist/chunk-NAWI7UXW.js.map +0 -1
  63. package/dist/chunk-W2FP7ZWW.cjs.map +0 -1
  64. /package/dist/{chunk-XDHI63G7.cjs.map → chunk-BOAROBF4.cjs.map} +0 -0
  65. /package/dist/{chunk-PLVKILIY.cjs.map → chunk-DQ3TMDDK.cjs.map} +0 -0
  66. /package/dist/{chunk-5TK7TMV6.cjs.map → chunk-DU6UHGVD.cjs.map} +0 -0
  67. /package/dist/{chunk-K2H7BYQB.js.map → chunk-EOUT5FJT.js.map} +0 -0
  68. /package/dist/{chunk-HIE46T3F.js.map → chunk-LIEJUR4C.js.map} +0 -0
  69. /package/dist/{chunk-7S67BJXQ.js.map → chunk-QJQ3GMYY.js.map} +0 -0
  70. /package/dist/{chunk-E3ANGQ5N.cjs.map → chunk-WHFBT7CJ.cjs.map} +0 -0
  71. /package/dist/{chunk-XPOF4D5N.js.map → chunk-ZXH2OPE4.js.map} +0 -0
package/dist/mocks.js ADDED
@@ -0,0 +1,41 @@
1
+ import { createRequire } from 'module';
2
+ import './chunk-6CLGRKHL.js';
3
+ import './chunk-LIEJUR4C.js';
4
+ import './chunk-GPCFICX2.js';
5
+ import { pascalCase } from './chunk-ZXH2OPE4.js';
6
+ import './chunk-EOUT5FJT.js';
7
+ import './chunk-JSVMBHJE.js';
8
+ import './chunk-QJQ3GMYY.js';
9
+ import { init_esm_shims } from './chunk-GUCIIN3Z.js';
10
+
11
+ createRequire(import.meta.url);
12
+
13
+ // mocks/index.ts
14
+ init_esm_shims();
15
+ var mockedPluginManager = {
16
+ resolveName: ({ name, type }) => {
17
+ if (type === "type") {
18
+ return pascalCase(name);
19
+ }
20
+ return name;
21
+ },
22
+ resolvePath: ({ baseName }) => baseName,
23
+ logger: {
24
+ info(message) {
25
+ console.log(message);
26
+ },
27
+ error(message) {
28
+ console.log(message);
29
+ },
30
+ warn(message) {
31
+ console.log(message);
32
+ },
33
+ log(message) {
34
+ console.log(message);
35
+ }
36
+ }
37
+ };
38
+
39
+ export { mockedPluginManager };
40
+ //# sourceMappingURL=out.js.map
41
+ //# sourceMappingURL=mocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../mocks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAGO,IAAM,sBAAsB;AAAA,EACjC,aAAa,CAAC,EAAE,MAAM,KAAK,MAAM;AAC/B,QAAI,SAAS,QAAQ;AACnB,aAAO,WAAW,IAAI;AAAA,IACxB;AAEA,WAAO;AAAA,EACT;AAAA,EACA,aAAa,CAAC,EAAE,SAAS,MAAM;AAAA,EAC/B,QAAQ;AAAA,IACN,KAAK,SAAS;AACZ,cAAQ,IAAI,OAAO;AAAA,IACrB;AAAA,IACA,MAAM,SAAS;AACb,cAAQ,IAAI,OAAO;AAAA,IACrB;AAAA,IACA,KAAK,SAAS;AACZ,cAAQ,IAAI,OAAO;AAAA,IACrB;AAAA,IACA,IAAI,SAAS;AACX,cAAQ,IAAI,OAAO;AAAA,IACrB;AAAA,EACF;AACF","sourcesContent":["import { pascalCase } from '../src/transformers/casing.ts'\n\nimport { PluginManager } from '../src/PluginManager.ts'\nexport const mockedPluginManager = {\n resolveName: ({ name, type }) => {\n if (type === 'type') {\n return pascalCase(name)\n }\n\n return name\n },\n resolvePath: ({ baseName }) => baseName,\n logger: {\n info(message) {\n console.log(message)\n },\n error(message) {\n console.log(message)\n },\n warn(message) {\n console.log(message)\n },\n log(message) {\n console.log(message)\n },\n },\n} as PluginManager\n"]}
@@ -2,21 +2,21 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var chunk5TK7TMV6_cjs = require('./chunk-5TK7TMV6.cjs');
6
- var chunkXDHI63G7_cjs = require('./chunk-XDHI63G7.cjs');
7
- var chunkWZQO3EPM_cjs = require('./chunk-WZQO3EPM.cjs');
5
+ var chunkDU6UHGVD_cjs = require('./chunk-DU6UHGVD.cjs');
6
+ var chunkBOAROBF4_cjs = require('./chunk-BOAROBF4.cjs');
7
+ var chunkCDC7AOGD_cjs = require('./chunk-CDC7AOGD.cjs');
8
8
 
9
9
  // src/transformers/index.ts
10
- chunkWZQO3EPM_cjs.init_cjs_shims();
10
+ chunkCDC7AOGD_cjs.init_cjs_shims();
11
11
 
12
12
  // src/transformers/combineCodes.ts
13
- chunkWZQO3EPM_cjs.init_cjs_shims();
13
+ chunkCDC7AOGD_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
- chunkWZQO3EPM_cjs.init_cjs_shims();
19
+ chunkCDC7AOGD_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
- chunkWZQO3EPM_cjs.init_cjs_shims();
31
+ chunkCDC7AOGD_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
- chunkWZQO3EPM_cjs.init_cjs_shims();
57
+ chunkCDC7AOGD_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
- chunkWZQO3EPM_cjs.init_cjs_shims();
63
+ chunkCDC7AOGD_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: chunk5TK7TMV6_cjs.transformReservedWord,
80
+ transformReservedWord: chunkDU6UHGVD_cjs.transformReservedWord,
81
81
  nameSorter,
82
- searchAndReplace: chunk5TK7TMV6_cjs.searchAndReplace,
83
- trim: chunk5TK7TMV6_cjs.trim,
84
- trimExtName: chunk5TK7TMV6_cjs.trimExtName,
82
+ searchAndReplace: chunkDU6UHGVD_cjs.searchAndReplace,
83
+ trim: chunkDU6UHGVD_cjs.trim,
84
+ trimExtName: chunkDU6UHGVD_cjs.trimExtName,
85
85
  JSDoc: {
86
86
  createJSDocBlockText
87
87
  },
88
- camelCase: chunkXDHI63G7_cjs.camelCase,
89
- pascalCase: chunkXDHI63G7_cjs.pascalCase
88
+ camelCase: chunkBOAROBF4_cjs.camelCase,
89
+ pascalCase: chunkBOAROBF4_cjs.pascalCase
90
90
  };
91
91
 
92
92
  Object.defineProperty(exports, "searchAndReplace", {
93
93
  enumerable: true,
94
- get: function () { return chunk5TK7TMV6_cjs.searchAndReplace; }
94
+ get: function () { return chunkDU6UHGVD_cjs.searchAndReplace; }
95
95
  });
96
96
  Object.defineProperty(exports, "transformReservedWord", {
97
97
  enumerable: true,
98
- get: function () { return chunk5TK7TMV6_cjs.transformReservedWord; }
98
+ get: function () { return chunkDU6UHGVD_cjs.transformReservedWord; }
99
99
  });
100
100
  Object.defineProperty(exports, "trim", {
101
101
  enumerable: true,
102
- get: function () { return chunk5TK7TMV6_cjs.trim; }
102
+ get: function () { return chunkDU6UHGVD_cjs.trim; }
103
103
  });
104
104
  Object.defineProperty(exports, "trimExtName", {
105
105
  enumerable: true,
106
- get: function () { return chunk5TK7TMV6_cjs.trimExtName; }
106
+ get: function () { return chunkDU6UHGVD_cjs.trimExtName; }
107
107
  });
108
108
  Object.defineProperty(exports, "camelCase", {
109
109
  enumerable: true,
110
- get: function () { return chunkXDHI63G7_cjs.camelCase; }
110
+ get: function () { return chunkBOAROBF4_cjs.camelCase; }
111
111
  });
112
112
  Object.defineProperty(exports, "pascalCase", {
113
113
  enumerable: true,
114
- get: function () { return chunkXDHI63G7_cjs.pascalCase; }
114
+ get: function () { return chunkBOAROBF4_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-HIE46T3F.js';
3
- export { searchAndReplace, transformReservedWord, trim, trimExtName } from './chunk-HIE46T3F.js';
4
- import { camelCase, pascalCase } from './chunk-XPOF4D5N.js';
5
- export { camelCase, pascalCase } from './chunk-XPOF4D5N.js';
6
- import { init_esm_shims } from './chunk-54P4AWHI.js';
2
+ import { transformReservedWord, searchAndReplace, trim, trimExtName } from './chunk-LIEJUR4C.js';
3
+ export { searchAndReplace, transformReservedWord, trim, trimExtName } from './chunk-LIEJUR4C.js';
4
+ import { camelCase, pascalCase } from './chunk-ZXH2OPE4.js';
5
+ export { camelCase, pascalCase } from './chunk-ZXH2OPE4.js';
6
+ import { init_esm_shims } from './chunk-GUCIIN3Z.js';
7
7
 
8
8
  createRequire(import.meta.url);
9
9
 
package/dist/utils.cjs CHANGED
@@ -1,15 +1,16 @@
1
1
  'use strict';
2
2
 
3
- var chunkH47IKRXJ_cjs = require('./chunk-H47IKRXJ.cjs');
4
- var chunkXDHI63G7_cjs = require('./chunk-XDHI63G7.cjs');
5
- var chunkWZQO3EPM_cjs = require('./chunk-WZQO3EPM.cjs');
3
+ var chunkIZOYUU2C_cjs = require('./chunk-IZOYUU2C.cjs');
4
+ var chunk65JU7D5L_cjs = require('./chunk-65JU7D5L.cjs');
5
+ var chunkBOAROBF4_cjs = require('./chunk-BOAROBF4.cjs');
6
+ var chunkCDC7AOGD_cjs = require('./chunk-CDC7AOGD.cjs');
6
7
  var naturalOrderby = require('natural-orderby');
7
8
 
8
9
  // src/utils/index.ts
9
- chunkWZQO3EPM_cjs.init_cjs_shims();
10
+ chunkCDC7AOGD_cjs.init_cjs_shims();
10
11
 
11
12
  // src/utils/FunctionParams.ts
12
- chunkWZQO3EPM_cjs.init_cjs_shims();
13
+ chunkCDC7AOGD_cjs.init_cjs_shims();
13
14
  var FunctionParams = class {
14
15
  constructor(type) {
15
16
  this.items = [];
@@ -34,7 +35,7 @@ var FunctionParams = class {
34
35
  acc.push(`${type}${rest.default ? ` = ${rest.default}` : ""}`);
35
36
  return acc;
36
37
  }
37
- const parameterName = name.startsWith("{") ? name : chunkXDHI63G7_cjs.camelCase(name);
38
+ const parameterName = name.startsWith("{") ? name : chunkBOAROBF4_cjs.camelCase(name);
38
39
  if (type) {
39
40
  if (required) {
40
41
  acc.push(`${parameterName}: ${type}${rest.default ? ` = ${rest.default}` : ""}`);
@@ -50,7 +51,7 @@ var FunctionParams = class {
50
51
  };
51
52
 
52
53
  // src/utils/promise.ts
53
- chunkWZQO3EPM_cjs.init_cjs_shims();
54
+ chunkCDC7AOGD_cjs.init_cjs_shims();
54
55
  function isPromise(result) {
55
56
  return !!result && typeof result?.then === "function";
56
57
  }
@@ -62,7 +63,7 @@ function isPromiseRejectedResult(result) {
62
63
  }
63
64
 
64
65
  // src/utils/renderTemplate.ts
65
- chunkWZQO3EPM_cjs.init_cjs_shims();
66
+ chunkCDC7AOGD_cjs.init_cjs_shims();
66
67
  function renderTemplate(template, data = void 0) {
67
68
  if (!data || !Object.keys(data).length) {
68
69
  return template.replace(/{{(.*?)}}/g, "");
@@ -87,7 +88,7 @@ function renderTemplate(template, data = void 0) {
87
88
  }
88
89
 
89
90
  // src/utils/timeout.ts
90
- chunkWZQO3EPM_cjs.init_cjs_shims();
91
+ chunkCDC7AOGD_cjs.init_cjs_shims();
91
92
  async function timeout(ms) {
92
93
  return new Promise((resolve) => {
93
94
  setTimeout(() => {
@@ -98,15 +99,15 @@ async function timeout(ms) {
98
99
 
99
100
  Object.defineProperty(exports, "URLPath", {
100
101
  enumerable: true,
101
- get: function () { return chunkH47IKRXJ_cjs.URLPath; }
102
+ get: function () { return chunkIZOYUU2C_cjs.URLPath; }
102
103
  });
103
104
  Object.defineProperty(exports, "getUniqueName", {
104
105
  enumerable: true,
105
- get: function () { return chunkH47IKRXJ_cjs.getUniqueName; }
106
+ get: function () { return chunk65JU7D5L_cjs.getUniqueName; }
106
107
  });
107
108
  Object.defineProperty(exports, "setUniqueName", {
108
109
  enumerable: true,
109
- get: function () { return chunkH47IKRXJ_cjs.setUniqueName; }
110
+ get: function () { return chunk65JU7D5L_cjs.setUniqueName; }
110
111
  });
111
112
  exports.FunctionParams = FunctionParams;
112
113
  exports.isPromise = isPromise;
@@ -1 +1 @@
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"]}
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.js CHANGED
@@ -1,7 +1,8 @@
1
1
  import { createRequire } from 'module';
2
- export { URLPath, getUniqueName, setUniqueName } from './chunk-4A7WG6IA.js';
3
- import { camelCase } from './chunk-XPOF4D5N.js';
4
- import { init_esm_shims } from './chunk-54P4AWHI.js';
2
+ export { URLPath } from './chunk-GQGYHVNX.js';
3
+ export { getUniqueName, setUniqueName } from './chunk-GPCFICX2.js';
4
+ import { camelCase } from './chunk-ZXH2OPE4.js';
5
+ import { init_esm_shims } from './chunk-GUCIIN3Z.js';
5
6
  import { orderBy } from 'natural-orderby';
6
7
 
7
8
  createRequire(import.meta.url);
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","../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"]}
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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubb/core",
3
- "version": "2.0.6",
3
+ "version": "2.1.1",
4
4
  "description": "Generator core",
5
5
  "keywords": [
6
6
  "typescript",
@@ -43,6 +43,11 @@
43
43
  "require": "./dist/fs.cjs",
44
44
  "default": "./dist/fs.cjs"
45
45
  },
46
+ "./mocks": {
47
+ "import": "./dist/mocks.js",
48
+ "require": "./dist/mocks.cjs",
49
+ "default": "./dist/mocks.cjs"
50
+ },
46
51
  "./package.json": "./package.json",
47
52
  "./globals": {
48
53
  "types": "./globals.d.ts"
@@ -71,8 +76,8 @@
71
76
  "p-queue": "^8.0.1",
72
77
  "seedrandom": "^3.0.5",
73
78
  "semver": "^7.5.4",
74
- "@kubb/parser": "2.0.6",
75
- "@kubb/types": "2.0.6"
79
+ "@kubb/parser": "2.1.1",
80
+ "@kubb/types": "2.1.1"
76
81
  },
77
82
  "devDependencies": {
78
83
  "@types/fs-extra": "^11.0.4",
@@ -80,9 +85,9 @@
80
85
  "@types/react": "^18.2.45",
81
86
  "@types/seedrandom": "^3.0.8",
82
87
  "@types/semver": "^7.5.6",
83
- "eslint": "^8.55.0",
88
+ "eslint": "^8.56.0",
84
89
  "lodash.isequal": "^4.5.0",
85
- "ora": "^7.0.1",
90
+ "ora": "^8.0.1",
86
91
  "tinyrainbow": "^1.1.1",
87
92
  "tsup": "^8.0.1",
88
93
  "typescript": "^5.3.3",
@@ -1,3 +1,5 @@
1
+ import { getExports } from '@kubb/parser'
2
+
1
3
  import path from 'path'
2
4
 
3
5
  import { trimExtName } from './transformers/trim.ts'
@@ -5,12 +7,6 @@ import { TreeNode } from './utils/TreeNode.ts'
5
7
 
6
8
  import type { DirectoryTreeOptions } from 'directory-tree'
7
9
  import type { KubbFile } from './FileManager.ts'
8
- import type { KubbPlugin } from './index.ts'
9
-
10
- type FileMeta = {
11
- pluginKey?: KubbPlugin['key']
12
- treeNode: TreeNode
13
- }
14
10
 
15
11
  export type BarrelManagerOptions = {
16
12
  treeNode?: DirectoryTreeOptions
@@ -30,17 +26,53 @@ export class BarrelManager {
30
26
  return this
31
27
  }
32
28
 
29
+ getNamedExport(root: string, item: KubbFile.Export): KubbFile.Export[] {
30
+ const exportedNames = getExports(path.resolve(root, item.path))
31
+
32
+ if (!exportedNames) {
33
+ return [item]
34
+ }
35
+
36
+ return exportedNames.reduce((prev, curr) => {
37
+ if (!prev[0]?.name || !prev[1]?.name) {
38
+ return prev
39
+ }
40
+
41
+ if (curr.isTypeOnly) {
42
+ prev[1] = { ...prev[1], name: [...prev[1].name, curr.name] }
43
+ } else {
44
+ prev[0] = { ...prev[0], name: [...prev[0].name, curr.name] }
45
+ }
46
+
47
+ return prev
48
+ }, [{
49
+ ...item,
50
+ name: [],
51
+ isTypeOnly: false,
52
+ }, {
53
+ ...item,
54
+ name: [],
55
+ isTypeOnly: true,
56
+ }] as KubbFile.Export[])
57
+ }
58
+
59
+ getNamedExports(root: string, exports: KubbFile.Export[]): KubbFile.Export[] {
60
+ return exports?.map(item => {
61
+ return this.getNamedExport(root, item)
62
+ }).flat()
63
+ }
64
+
33
65
  getIndexes(
34
- pathToBuild: string,
35
- ): Array<KubbFile.File<FileMeta>> | null {
66
+ root: string,
67
+ ): Array<KubbFile.File> | null {
36
68
  const { treeNode = {}, isTypeOnly, extName } = this.#options
37
- const tree = TreeNode.build(pathToBuild, treeNode)
69
+ const tree = TreeNode.build(root, treeNode)
38
70
 
39
71
  if (!tree) {
40
72
  return null
41
73
  }
42
74
 
43
- const fileReducer = (files: Array<KubbFile.File<FileMeta>>, treeNode: TreeNode) => {
75
+ const fileReducer = (files: Array<KubbFile.File>, treeNode: TreeNode) => {
44
76
  if (!treeNode.children) {
45
77
  return []
46
78
  }
@@ -48,7 +80,7 @@ export class BarrelManager {
48
80
  if (treeNode.children.length > 1) {
49
81
  const indexPath: KubbFile.Path = path.resolve(treeNode.data.path, 'index.ts')
50
82
 
51
- const exports: KubbFile.Export[] = treeNode.children
83
+ const exports: Array<KubbFile.Export> = treeNode.children
52
84
  .filter(Boolean)
53
85
  .map((file) => {
54
86
  const importPath: string = file.data.type === 'directory' ? `./${file.data.name}/index` : `./${trimExtName(file.data.name)}`
@@ -69,9 +101,6 @@ export class BarrelManager {
69
101
  baseName: 'index.ts',
70
102
  source: '',
71
103
  exports,
72
- meta: {
73
- treeNode,
74
- },
75
104
  })
76
105
  } else if (treeNode.children.length === 1) {
77
106
  const [treeNodeChild] = treeNode.children as [TreeNode]
@@ -95,9 +124,6 @@ export class BarrelManager {
95
124
  baseName: 'index.ts',
96
125
  source: '',
97
126
  exports,
98
- meta: {
99
- treeNode,
100
- },
101
127
  })
102
128
  }
103
129
 
@@ -184,7 +184,7 @@ type AddIndexesProps = {
184
184
  path: string
185
185
  exportAs?: string
186
186
  extName?: KubbFile.Extname
187
- exportType?: 'barrel' | false
187
+ exportType?: 'barrel' | 'barrelNamed' | false
188
188
  }
189
189
  options?: BarrelManagerOptions
190
190
  meta?: KubbFile.File['meta']
@@ -272,33 +272,45 @@ export class FileManager {
272
272
  return this.#add(file)
273
273
  }
274
274
 
275
- async addIndexes({ root, output, meta, options = {} }: AddIndexesProps): Promise<Array<KubbFile.File> | undefined> {
275
+ async addIndexes({ root, output, meta, options = {} }: AddIndexesProps): Promise<void> {
276
276
  const { exportType = 'barrel' } = output
277
277
 
278
- if (!exportType) {
278
+ if (exportType === false) {
279
279
  return undefined
280
280
  }
281
281
 
282
+ const pathToBuildFrom = resolve(root, output.path)
282
283
  const exportPath = output.path.startsWith('./') ? trimExtName(output.path) : `./${trimExtName(output.path)}`
283
284
  const mode = FileManager.getMode(output.path)
284
285
  const barrelManager = new BarrelManager({ extName: output.extName, ...options })
285
- const files = barrelManager.getIndexes(resolve(root, output.path))
286
-
287
- function getPath() {
288
- if (output.extName) {
289
- if (mode === 'directory') {
290
- return `${exportPath}/index${output.extName}`
291
- }
292
- return `${exportPath}${output.extName}`
293
- }
294
-
295
- return exportPath
296
- }
286
+ let files = barrelManager.getIndexes(pathToBuildFrom)
297
287
 
298
288
  if (!files) {
299
289
  return undefined
300
290
  }
301
291
 
292
+ if (exportType === 'barrelNamed') {
293
+ files = files.map(file => {
294
+ if (file.exports) {
295
+ return {
296
+ ...file,
297
+ exports: barrelManager.getNamedExports(pathToBuildFrom, file.exports),
298
+ }
299
+ }
300
+ return file
301
+ })
302
+ }
303
+
304
+ await Promise.all(
305
+ files.map((file) => {
306
+ return this.#addOrAppend({
307
+ ...file,
308
+ meta: meta ? meta : file.meta,
309
+ })
310
+ }),
311
+ )
312
+
313
+ const rootPath = mode === 'directory' ? `${exportPath}/index${output.extName || ''}` : `${exportPath}${output.extName || ''}`
302
314
  const rootFile: KubbFile.File = {
303
315
  path: resolve(root, 'index.ts'),
304
316
  baseName: 'index.ts',
@@ -308,29 +320,24 @@ export class FileManager {
308
320
  ? {
309
321
  name: output.exportAs,
310
322
  asAlias: true,
311
- path: getPath(),
323
+ path: rootPath,
312
324
  isTypeOnly: options.isTypeOnly,
313
325
  }
314
326
  : {
315
- path: getPath(),
327
+ path: rootPath,
316
328
  isTypeOnly: options.isTypeOnly,
317
329
  },
318
330
  ],
319
331
  }
320
332
 
333
+ if (exportType === 'barrelNamed' && !output.exportAs && rootFile.exports?.[0]) {
334
+ rootFile.exports = barrelManager.getNamedExport(root, rootFile.exports[0])
335
+ }
336
+
321
337
  await this.#addOrAppend({
322
338
  ...rootFile,
323
339
  meta: meta ? meta : rootFile.meta,
324
340
  })
325
-
326
- return await Promise.all(
327
- files.map((file) => {
328
- return this.#addOrAppend({
329
- ...file,
330
- meta: meta ? meta : file.meta,
331
- })
332
- }),
333
- )
334
341
  }
335
342
 
336
343
  getCacheByUUID(UUID: KubbFile.UUID): KubbFile.File | undefined {
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/URLPath.ts","../src/utils/uniqueName.ts"],"names":[],"mappings":"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","sourcesContent":["import { camelCase } from '../transformers/casing.ts'\n\nexport type URLObject = {\n url: string\n params?: Record<string, string>\n}\n\ntype ObjectOptions = {\n type?: 'path' | 'template'\n replacer?: (pathParam: string) => string\n stringify?: boolean\n}\n\nexport class URLPath {\n path: string\n\n constructor(path: string) {\n this.path = path\n\n return this\n }\n\n /**\n * Convert Swagger path to URLPath(syntax of Express)\n * @example /pet/{petId} => /pet/:petId\n */\n get URL(): string {\n return this.toURLPath()\n }\n get isURL(): boolean {\n try {\n const url = new URL(this.path)\n if (url?.href) {\n return true\n }\n } catch (error) {\n return false\n }\n return false\n }\n\n /**\n * Convert Swagger path to template literals/ template strings(camelcase)\n * @example /pet/{petId} => `/pet/${petId}`\n * @example /account/monetary-accountID => `/account/${monetaryAccountId}`\n * @example /account/userID => `/account/${userId}`\n */\n get template(): string {\n return this.toTemplateString()\n }\n get object(): URLObject | string {\n return this.toObject()\n }\n get params(): Record<string, string> | undefined {\n return this.getParams()\n }\n\n toObject({ type = 'path', replacer, stringify }: ObjectOptions = {}): URLObject | string {\n const object = {\n url: type === 'path' ? this.toURLPath() : this.toTemplateString(replacer),\n params: this.getParams(),\n }\n\n if (stringify) {\n if (type === 'template') {\n return JSON.stringify(object).replaceAll(\"'\", '').replaceAll(`\"`, '')\n }\n\n if (object.params) {\n return `{ url: '${object.url}', params: ${JSON.stringify(object.params).replaceAll(\"'\", '').replaceAll(`\"`, '')} }`\n }\n\n return `{ url: '${object.url}' }`\n }\n\n return object\n }\n\n /**\n * Convert Swagger path to template literals/ template strings(camelcase)\n * @example /pet/{petId} => `/pet/${petId}`\n * @example /account/monetary-accountID => `/account/${monetaryAccountId}`\n * @example /account/userID => `/account/${userId}`\n */\n toTemplateString(replacer?: (pathParam: string) => string): string {\n const regex = /{(\\w|-)*}/g\n const found = this.path.match(regex)\n let newPath = this.path.replaceAll('{', '${')\n\n if (found) {\n newPath = found.reduce((prev, curr) => {\n const pathParam = replacer\n ? replacer(camelCase(curr))\n : 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(camelCase(item))\n : 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","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"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/URLPath.ts","../src/utils/uniqueName.ts"],"names":[],"mappings":"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","sourcesContent":["import { camelCase } from '../transformers/casing.ts'\n\nexport type URLObject = {\n url: string\n params?: Record<string, string>\n}\n\ntype ObjectOptions = {\n type?: 'path' | 'template'\n replacer?: (pathParam: string) => string\n stringify?: boolean\n}\n\nexport class URLPath {\n path: string\n\n constructor(path: string) {\n this.path = path\n\n return this\n }\n\n /**\n * Convert Swagger path to URLPath(syntax of Express)\n * @example /pet/{petId} => /pet/:petId\n */\n get URL(): string {\n return this.toURLPath()\n }\n get isURL(): boolean {\n try {\n const url = new URL(this.path)\n if (url?.href) {\n return true\n }\n } catch (error) {\n return false\n }\n return false\n }\n\n /**\n * Convert Swagger path to template literals/ template strings(camelcase)\n * @example /pet/{petId} => `/pet/${petId}`\n * @example /account/monetary-accountID => `/account/${monetaryAccountId}`\n * @example /account/userID => `/account/${userId}`\n */\n get template(): string {\n return this.toTemplateString()\n }\n get object(): URLObject | string {\n return this.toObject()\n }\n get params(): Record<string, string> | undefined {\n return this.getParams()\n }\n\n toObject({ type = 'path', replacer, stringify }: ObjectOptions = {}): URLObject | string {\n const object = {\n url: type === 'path' ? this.toURLPath() : this.toTemplateString(replacer),\n params: this.getParams(),\n }\n\n if (stringify) {\n if (type === 'template') {\n return JSON.stringify(object).replaceAll(\"'\", '').replaceAll(`\"`, '')\n }\n\n if (object.params) {\n return `{ url: '${object.url}', params: ${JSON.stringify(object.params).replaceAll(\"'\", '').replaceAll(`\"`, '')} }`\n }\n\n return `{ url: '${object.url}' }`\n }\n\n return object\n }\n\n /**\n * Convert Swagger path to template literals/ template strings(camelcase)\n * @example /pet/{petId} => `/pet/${petId}`\n * @example /account/monetary-accountID => `/account/${monetaryAccountId}`\n * @example /account/userID => `/account/${userId}`\n */\n toTemplateString(replacer?: (pathParam: string) => string): string {\n const regex = /{(\\w|-)*}/g\n const found = this.path.match(regex)\n let newPath = this.path.replaceAll('{', '${')\n\n if (found) {\n newPath = found.reduce((prev, curr) => {\n const pathParam = replacer\n ? replacer(camelCase(curr))\n : 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(camelCase(item))\n : 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","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"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/fs/clean.ts","../src/fs/read.ts"],"names":["fs"],"mappings":";;;;;;;;;AAAA;AAAA,OAAO,QAAQ;AAEf,eAAsB,MAAM,MAA6B;AACvD,SAAO,GAAG,OAAO,IAAI;AACvB;;;ACJA;AAAA,SAAS,UAAU,SAAS,gBAAgB;AAE5C,OAAOA,SAAQ;AACf,SAAS,gBAAgB;AAEzB,SAAS,MAAM,MAAc,WAAwC,SAAS;AAC5E,QAAM,gBAAgB,YAAY,KAAK,IAAI;AAE3C,MAAI,CAAC,SAAS,KAAK,EAAE,SAAS,QAAQ,KAAK,CAAC,eAAe;AAEzD,WAAO,KAAK,WAAW,OAAO,GAAG,EAAE,QAAQ,OAAO,EAAE,EAAE,QAAQ;AAAA,EAChE;AAGA,SAAO,KAAK,WAAW,OAAO,GAAG,EAAE,QAAQ,OAAO,EAAE,EAAE,QAAQ;AAChE;AAEO,SAAS,gBAAgB,SAAyB,UAA0B,WAAwC,SAAiB;AAC1I,MAAI,CAAC,WAAW,CAAC,UAAU;AACzB,UAAM,IAAI,MAAM,uEAAuE,WAAW,EAAE,IAAI,YAAY,EAAE,EAAE;AAAA,EAC1H;AAEA,QAAM,eAAe,SAAS,SAAS,QAAQ;AAI/C,QAAM,cAAc,MAAM,cAAc,QAAQ;AAEhD,MAAI,YAAY,WAAW,KAAK,GAAG;AACjC,WAAO,YAAY,QAAQ,SAAS,WAAW,GAAG,SAAS,aAAa,QAAQ,QAAQ,CAAC,CAAC;AAAA,EAC5F;AAEA,SAAO,KAAK,YAAY,QAAQ,SAAS,WAAW,GAAG,SAAS,aAAa,QAAQ,QAAQ,CAAC,CAAC,CAAC;AAClG;AAEA,IAAM,SAAS;AAAA,EACb;AAAA,IACE,MAAM,OAAO,SAAiB;AAC5B,aAAOA,IAAG,SAAS,MAAM,EAAE,UAAU,OAAO,CAAC;AAAA,IAC/C;AAAA,IACA,KAAK,OAAO,SAAiB;AAC3B,YAAM,OAAO,IAAI,KAAK,IAAI;AAE1B,aAAO,KAAK,KAAK;AAAA,IACnB;AAAA,EACF;AAAA,EACA;AACF;AAEA,IAAM,aAAa;AAAA,EACjB;AAAA,IACE,MAAM,CAAC,SAAiB;AACtB,aAAOA,IAAG,aAAa,MAAM,EAAE,UAAU,OAAO,CAAC;AAAA,IACnD;AAAA,IACA,KAAK,MAAM;AACT,YAAM,IAAI,MAAM,sBAAsB;AAAA,IACxC;AAAA,EACF;AAAA,EACA;AACF;AAEA,eAAsB,KAAK,MAA+B;AACxD,SAAO,OAAO,IAAI;AACpB;AAEO,SAAS,SAAS,MAAsB;AAC7C,SAAO,WAAW,IAAI;AACxB","sourcesContent":["import fs from 'fs-extra'\n\nexport async function clean(path: string): Promise<void> {\n return fs.remove(path)\n}\n","import { basename, extname, relative } from 'node:path'\n\nimport fs from 'fs-extra'\nimport { switcher } from 'js-runtime'\n\nfunction slash(path: string, platform: 'windows' | 'mac' | 'linux' = 'linux') {\n const isWindowsPath = /^\\\\\\\\\\?\\\\/.test(path)\n\n if (['linux', 'mac'].includes(platform) && !isWindowsPath) {\n // linux and mac\n return path.replaceAll(/\\\\/g, '/').replace('../', '').trimEnd()\n }\n\n // windows\n return path.replaceAll(/\\\\/g, '/').replace('../', '').trimEnd()\n}\n\nexport function getRelativePath(rootDir?: string | null, filePath?: string | null, platform: 'windows' | 'mac' | 'linux' = 'linux'): string {\n if (!rootDir || !filePath) {\n throw new Error(`Root and file should be filled in when retrieving the relativePath, ${rootDir || ''} ${filePath || ''}`)\n }\n\n const relativePath = relative(rootDir, filePath)\n\n // On Windows, paths are separated with a \"\\\"\n // However, web browsers use \"/\" no matter the platform\n const slashedPath = slash(relativePath, platform)\n\n if (slashedPath.startsWith('../')) {\n return slashedPath.replace(basename(slashedPath), basename(slashedPath, extname(filePath)))\n }\n\n return `./${slashedPath.replace(basename(slashedPath), basename(slashedPath, extname(filePath)))}`\n}\n\nconst reader = switcher(\n {\n node: async (path: string) => {\n return fs.readFile(path, { encoding: 'utf8' })\n },\n bun: async (path: string) => {\n const file = Bun.file(path)\n\n return file.text()\n },\n },\n 'node',\n)\n\nconst syncReader = switcher(\n {\n node: (path: string) => {\n return fs.readFileSync(path, { encoding: 'utf8' })\n },\n bun: () => {\n throw new Error('Bun cannot read sync')\n },\n },\n 'node',\n)\n\nexport async function read(path: string): Promise<string> {\n return reader(path)\n}\n\nexport function readSync(path: string): string {\n return syncReader(path)\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/fs/clean.ts","../src/fs/read.ts"],"names":["fs","import_fs_extra"],"mappings":";;;;;;;;;AAAA;AAAA,sBAAe;AAEf,eAAsB,MAAM,MAA6B;AACvD,SAAO,gBAAAA,QAAG,OAAO,IAAI;AACvB;;;ACJA;AAEA,IAAAC,mBAAe;AAFf,SAAS,UAAU,SAAS,gBAAgB;AAG5C,SAAS,gBAAgB;AAEzB,SAAS,MAAM,MAAc,WAAwC,SAAS;AAC5E,QAAM,gBAAgB,YAAY,KAAK,IAAI;AAE3C,MAAI,CAAC,SAAS,KAAK,EAAE,SAAS,QAAQ,KAAK,CAAC,eAAe;AAEzD,WAAO,KAAK,WAAW,OAAO,GAAG,EAAE,QAAQ,OAAO,EAAE,EAAE,QAAQ;AAAA,EAChE;AAGA,SAAO,KAAK,WAAW,OAAO,GAAG,EAAE,QAAQ,OAAO,EAAE,EAAE,QAAQ;AAChE;AAEO,SAAS,gBAAgB,SAAyB,UAA0B,WAAwC,SAAiB;AAC1I,MAAI,CAAC,WAAW,CAAC,UAAU;AACzB,UAAM,IAAI,MAAM,uEAAuE,WAAW,EAAE,IAAI,YAAY,EAAE,EAAE;AAAA,EAC1H;AAEA,QAAM,eAAe,SAAS,SAAS,QAAQ;AAI/C,QAAM,cAAc,MAAM,cAAc,QAAQ;AAEhD,MAAI,YAAY,WAAW,KAAK,GAAG;AACjC,WAAO,YAAY,QAAQ,SAAS,WAAW,GAAG,SAAS,aAAa,QAAQ,QAAQ,CAAC,CAAC;AAAA,EAC5F;AAEA,SAAO,KAAK,YAAY,QAAQ,SAAS,WAAW,GAAG,SAAS,aAAa,QAAQ,QAAQ,CAAC,CAAC,CAAC;AAClG;AAEA,IAAM,SAAS;AAAA,EACb;AAAA,IACE,MAAM,OAAO,SAAiB;AAC5B,aAAO,iBAAAD,QAAG,SAAS,MAAM,EAAE,UAAU,OAAO,CAAC;AAAA,IAC/C;AAAA,IACA,KAAK,OAAO,SAAiB;AAC3B,YAAM,OAAO,IAAI,KAAK,IAAI;AAE1B,aAAO,KAAK,KAAK;AAAA,IACnB;AAAA,EACF;AAAA,EACA;AACF;AAEA,IAAM,aAAa;AAAA,EACjB;AAAA,IACE,MAAM,CAAC,SAAiB;AACtB,aAAO,iBAAAA,QAAG,aAAa,MAAM,EAAE,UAAU,OAAO,CAAC;AAAA,IACnD;AAAA,IACA,KAAK,MAAM;AACT,YAAM,IAAI,MAAM,sBAAsB;AAAA,IACxC;AAAA,EACF;AAAA,EACA;AACF;AAEA,eAAsB,KAAK,MAA+B;AACxD,SAAO,OAAO,IAAI;AACpB;AAEO,SAAS,SAAS,MAAsB;AAC7C,SAAO,WAAW,IAAI;AACxB","sourcesContent":["import fs from 'fs-extra'\n\nexport async function clean(path: string): Promise<void> {\n return fs.remove(path)\n}\n","import { basename, extname, relative } from 'node:path'\n\nimport fs from 'fs-extra'\nimport { switcher } from 'js-runtime'\n\nfunction slash(path: string, platform: 'windows' | 'mac' | 'linux' = 'linux') {\n const isWindowsPath = /^\\\\\\\\\\?\\\\/.test(path)\n\n if (['linux', 'mac'].includes(platform) && !isWindowsPath) {\n // linux and mac\n return path.replaceAll(/\\\\/g, '/').replace('../', '').trimEnd()\n }\n\n // windows\n return path.replaceAll(/\\\\/g, '/').replace('../', '').trimEnd()\n}\n\nexport function getRelativePath(rootDir?: string | null, filePath?: string | null, platform: 'windows' | 'mac' | 'linux' = 'linux'): string {\n if (!rootDir || !filePath) {\n throw new Error(`Root and file should be filled in when retrieving the relativePath, ${rootDir || ''} ${filePath || ''}`)\n }\n\n const relativePath = relative(rootDir, filePath)\n\n // On Windows, paths are separated with a \"\\\"\n // However, web browsers use \"/\" no matter the platform\n const slashedPath = slash(relativePath, platform)\n\n if (slashedPath.startsWith('../')) {\n return slashedPath.replace(basename(slashedPath), basename(slashedPath, extname(filePath)))\n }\n\n return `./${slashedPath.replace(basename(slashedPath), basename(slashedPath, extname(filePath)))}`\n}\n\nconst reader = switcher(\n {\n node: async (path: string) => {\n return fs.readFile(path, { encoding: 'utf8' })\n },\n bun: async (path: string) => {\n const file = Bun.file(path)\n\n return file.text()\n },\n },\n 'node',\n)\n\nconst syncReader = switcher(\n {\n node: (path: string) => {\n return fs.readFileSync(path, { encoding: 'utf8' })\n },\n bun: () => {\n throw new Error('Bun cannot read sync')\n },\n },\n 'node',\n)\n\nexport async function read(path: string): Promise<string> {\n return reader(path)\n}\n\nexport function readSync(path: string): string {\n return syncReader(path)\n}\n"]}