@kubb/core 2.6.7 → 2.7.0

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 (55) hide show
  1. package/dist/chunk-2JNTDAI2.cjs +14 -14
  2. package/dist/{chunk-Q5OJPP57.js → chunk-3HKED6KQ.js} +59 -23
  3. package/dist/chunk-3HKED6KQ.js.map +1 -0
  4. package/dist/chunk-6453B5D6.js +10 -2
  5. package/dist/chunk-6453B5D6.js.map +1 -1
  6. package/dist/chunk-7LKI2367.js +11 -6
  7. package/dist/chunk-7LKI2367.js.map +1 -1
  8. package/dist/chunk-AMVMOCJ4.cjs +22 -21
  9. package/dist/{chunk-LVTR4JV4.cjs → chunk-BCD4E3IZ.cjs} +303 -298
  10. package/dist/chunk-BCD4E3IZ.cjs.map +1 -0
  11. package/dist/chunk-DUZFWQUE.js +12 -7
  12. package/dist/chunk-DUZFWQUE.js.map +1 -1
  13. package/dist/chunk-E4QOZYOP.js +23 -9
  14. package/dist/chunk-E4QOZYOP.js.map +1 -1
  15. package/dist/chunk-EFAVSUDO.cjs +10 -6
  16. package/dist/chunk-HTCJOTLL.js +10 -6
  17. package/dist/chunk-HTCJOTLL.js.map +1 -1
  18. package/dist/chunk-JWYPCGK5.cjs +13 -12
  19. package/dist/chunk-KRX65PCH.cjs +31 -28
  20. package/dist/chunk-M5H5RXTY.cjs +11 -8
  21. package/dist/chunk-PHI4BK5K.cjs +161 -123
  22. package/dist/chunk-QDUQWRFO.js +7 -3
  23. package/dist/chunk-QDUQWRFO.js.map +1 -1
  24. package/dist/chunk-VCS7BATE.js +9 -4
  25. package/dist/chunk-VCS7BATE.js.map +1 -1
  26. package/dist/chunk-WCUXF325.cjs +7 -6
  27. package/dist/chunk-WDKUUZXN.cjs +20 -16
  28. package/dist/chunk-YFNYSIDY.js +7 -4
  29. package/dist/chunk-YFNYSIDY.js.map +1 -1
  30. package/dist/chunk-YNFGR7GL.js +9 -3
  31. package/dist/chunk-YNFGR7GL.js.map +1 -1
  32. package/dist/fs.cjs +21 -28
  33. package/dist/fs.js +21 -5
  34. package/dist/fs.js.map +1 -1
  35. package/dist/index.cjs +183 -183
  36. package/dist/index.d.cts +5 -1
  37. package/dist/index.d.ts +5 -1
  38. package/dist/index.js +61 -19
  39. package/dist/index.js.map +1 -1
  40. package/dist/logger.cjs +8 -19
  41. package/dist/logger.js +14 -4
  42. package/dist/logger.js.map +1 -1
  43. package/dist/mocks.cjs +10 -8
  44. package/dist/mocks.js +15 -11
  45. package/dist/mocks.js.map +1 -1
  46. package/dist/transformers.cjs +40 -54
  47. package/dist/transformers.js +30 -8
  48. package/dist/transformers.js.map +1 -1
  49. package/dist/utils.cjs +34 -36
  50. package/dist/utils.js +25 -8
  51. package/dist/utils.js.map +1 -1
  52. package/package.json +3 -3
  53. package/src/FileManager.ts +14 -4
  54. package/dist/chunk-LVTR4JV4.cjs.map +0 -1
  55. package/dist/chunk-Q5OJPP57.js.map +0 -1
package/dist/utils.cjs CHANGED
@@ -1,16 +1,23 @@
1
- 'use strict';
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var chunkM5H5RXTY_cjs = require('./chunk-M5H5RXTY.cjs');
4
- var chunkWCUXF325_cjs = require('./chunk-WCUXF325.cjs');
5
- var chunkAMVMOCJ4_cjs = require('./chunk-AMVMOCJ4.cjs');
6
- var chunk2JNTDAI2_cjs = require('./chunk-2JNTDAI2.cjs');
7
- var naturalOrderby = require('natural-orderby');
3
+ var _chunkM5H5RXTYcjs = require('./chunk-M5H5RXTY.cjs');
4
+
5
+
6
+
7
+ var _chunkWCUXF325cjs = require('./chunk-WCUXF325.cjs');
8
+
9
+
10
+ var _chunkAMVMOCJ4cjs = require('./chunk-AMVMOCJ4.cjs');
11
+
12
+
13
+ var _chunk2JNTDAI2cjs = require('./chunk-2JNTDAI2.cjs');
8
14
 
9
15
  // src/utils/index.ts
10
- chunk2JNTDAI2_cjs.init_cjs_shims();
16
+ _chunk2JNTDAI2cjs.init_cjs_shims.call(void 0, );
11
17
 
12
18
  // src/utils/FunctionParams.ts
13
- chunk2JNTDAI2_cjs.init_cjs_shims();
19
+ _chunk2JNTDAI2cjs.init_cjs_shims.call(void 0, );
20
+ var _naturalorderby = require('natural-orderby');
14
21
  var FunctionParams = class {
15
22
  constructor(type) {
16
23
  this.items = [];
@@ -29,13 +36,13 @@ var FunctionParams = class {
29
36
  return this;
30
37
  }
31
38
  toString() {
32
- const sortedData = naturalOrderby.orderBy(this.items.filter(Boolean), [(v) => !v.default, (v) => v.required ?? true], ["desc", "desc"]);
39
+ const sortedData = _naturalorderby.orderBy.call(void 0, this.items.filter(Boolean), [(v) => !v.default, (v) => _nullishCoalesce(v.required, () => ( true))], ["desc", "desc"]);
33
40
  return sortedData.filter(({ enabled = true }) => enabled).reduce((acc, { name, type, required = true, ...rest }) => {
34
41
  if (!name) {
35
42
  acc.push(`${type}${rest.default ? ` = ${rest.default}` : ""}`);
36
43
  return acc;
37
44
  }
38
- const parameterName = name.startsWith("{") ? name : chunkAMVMOCJ4_cjs.camelCase(name);
45
+ const parameterName = name.startsWith("{") ? name : _chunkAMVMOCJ4cjs.camelCase.call(void 0, name);
39
46
  if (type) {
40
47
  if (required) {
41
48
  acc.push(`${parameterName}: ${type}${rest.default ? ` = ${rest.default}` : ""}`);
@@ -51,9 +58,9 @@ var FunctionParams = class {
51
58
  };
52
59
 
53
60
  // src/utils/promise.ts
54
- chunk2JNTDAI2_cjs.init_cjs_shims();
61
+ _chunk2JNTDAI2cjs.init_cjs_shims.call(void 0, );
55
62
  function isPromise(result) {
56
- return !!result && typeof result?.then === "function";
63
+ return !!result && typeof _optionalChain([result, 'optionalAccess', _ => _.then]) === "function";
57
64
  }
58
65
  function isPromiseFulfilledResult(result) {
59
66
  return result.status === "fulfilled";
@@ -63,14 +70,14 @@ function isPromiseRejectedResult(result) {
63
70
  }
64
71
 
65
72
  // src/utils/renderTemplate.ts
66
- chunk2JNTDAI2_cjs.init_cjs_shims();
73
+ _chunk2JNTDAI2cjs.init_cjs_shims.call(void 0, );
67
74
  function renderTemplate(template, data = void 0) {
68
75
  if (!data || !Object.keys(data).length) {
69
76
  return template.replace(/{{(.*?)}}/g, "");
70
77
  }
71
78
  const matches = template.match(/{{(.*?)}}/g);
72
- return matches?.reduce((prev, curr) => {
73
- const index = curr.split(/{{|}}/).filter(Boolean)[0]?.trim();
79
+ return _optionalChain([matches, 'optionalAccess', _2 => _2.reduce, 'call', _3 => _3((prev, curr) => {
80
+ const index = _optionalChain([curr, 'access', _4 => _4.split, 'call', _5 => _5(/{{|}}/), 'access', _6 => _6.filter, 'call', _7 => _7(Boolean), 'access', _8 => _8[0], 'optionalAccess', _9 => _9.trim, 'call', _10 => _10()]);
74
81
  if (index === void 0) {
75
82
  return prev;
76
83
  }
@@ -84,11 +91,11 @@ function renderTemplate(template, data = void 0) {
84
91
  }
85
92
  return value || "";
86
93
  }).trim();
87
- }, template) || "";
94
+ }, template)]) || "";
88
95
  }
89
96
 
90
97
  // src/utils/timeout.ts
91
- chunk2JNTDAI2_cjs.init_cjs_shims();
98
+ _chunk2JNTDAI2cjs.init_cjs_shims.call(void 0, );
92
99
  async function timeout(ms) {
93
100
  return new Promise((resolve) => {
94
101
  setTimeout(() => {
@@ -97,23 +104,14 @@ async function timeout(ms) {
97
104
  });
98
105
  }
99
106
 
100
- Object.defineProperty(exports, "URLPath", {
101
- enumerable: true,
102
- get: function () { return chunkM5H5RXTY_cjs.URLPath; }
103
- });
104
- Object.defineProperty(exports, "getUniqueName", {
105
- enumerable: true,
106
- get: function () { return chunkWCUXF325_cjs.getUniqueName; }
107
- });
108
- Object.defineProperty(exports, "setUniqueName", {
109
- enumerable: true,
110
- get: function () { return chunkWCUXF325_cjs.setUniqueName; }
111
- });
112
- exports.FunctionParams = FunctionParams;
113
- exports.isPromise = isPromise;
114
- exports.isPromiseFulfilledResult = isPromiseFulfilledResult;
115
- exports.isPromiseRejectedResult = isPromiseRejectedResult;
116
- exports.renderTemplate = renderTemplate;
117
- exports.timeout = timeout;
118
- //# sourceMappingURL=out.js.map
107
+
108
+
109
+
110
+
111
+
112
+
113
+
114
+
115
+
116
+ exports.FunctionParams = FunctionParams; exports.URLPath = _chunkM5H5RXTYcjs.URLPath; exports.getUniqueName = _chunkWCUXF325cjs.getUniqueName; exports.isPromise = isPromise; exports.isPromiseFulfilledResult = isPromiseFulfilledResult; exports.isPromiseRejectedResult = isPromiseRejectedResult; exports.renderTemplate = renderTemplate; exports.setUniqueName = _chunkWCUXF325cjs.setUniqueName; exports.timeout = timeout;
119
117
  //# sourceMappingURL=utils.cjs.map
package/dist/utils.js CHANGED
@@ -1,14 +1,23 @@
1
- export { URLPath } from './chunk-VCS7BATE.js';
2
- export { getUniqueName, setUniqueName } from './chunk-QDUQWRFO.js';
3
- import { camelCase } from './chunk-DUZFWQUE.js';
4
- import { init_esm_shims } from './chunk-6453B5D6.js';
5
- import { orderBy } from 'natural-orderby';
1
+ import {
2
+ URLPath
3
+ } from "./chunk-VCS7BATE.js";
4
+ import {
5
+ getUniqueName,
6
+ setUniqueName
7
+ } from "./chunk-QDUQWRFO.js";
8
+ import {
9
+ camelCase
10
+ } from "./chunk-DUZFWQUE.js";
11
+ import {
12
+ init_esm_shims
13
+ } from "./chunk-6453B5D6.js";
6
14
 
7
15
  // src/utils/index.ts
8
16
  init_esm_shims();
9
17
 
10
18
  // src/utils/FunctionParams.ts
11
19
  init_esm_shims();
20
+ import { orderBy } from "natural-orderby";
12
21
  var FunctionParams = class {
13
22
  constructor(type) {
14
23
  this.items = [];
@@ -94,7 +103,15 @@ async function timeout(ms) {
94
103
  }, ms);
95
104
  });
96
105
  }
97
-
98
- export { FunctionParams, isPromise, isPromiseFulfilledResult, isPromiseRejectedResult, renderTemplate, timeout };
99
- //# sourceMappingURL=out.js.map
106
+ export {
107
+ FunctionParams,
108
+ URLPath,
109
+ getUniqueName,
110
+ isPromise,
111
+ isPromiseFulfilledResult,
112
+ isPromiseRejectedResult,
113
+ renderTemplate,
114
+ setUniqueName,
115
+ timeout
116
+ };
100
117
  //# 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","../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"],"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"],"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;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubb/core",
3
- "version": "2.6.7",
3
+ "version": "2.7.0",
4
4
  "description": "Generator core",
5
5
  "keywords": [
6
6
  "typescript",
@@ -95,8 +95,8 @@
95
95
  "p-queue": "^8.0.1",
96
96
  "seedrandom": "^3.0.5",
97
97
  "semver": "^7.6.0",
98
- "@kubb/parser": "2.6.7",
99
- "@kubb/types": "2.6.7"
98
+ "@kubb/parser": "2.7.0",
99
+ "@kubb/types": "2.7.0"
100
100
  },
101
101
  "devDependencies": {
102
102
  "@types/fs-extra": "^11.0.4",
@@ -145,6 +145,10 @@ export namespace KubbFile {
145
145
  * This will override `process.env[key]` inside the `source`, see `getFileSource`.
146
146
  */
147
147
  env?: NodeJS.ProcessEnv
148
+ /**
149
+ * The name of the language being used. This can be TypeScript, JavaScript and still have another ext.
150
+ */
151
+ language?: string
148
152
  }
149
153
 
150
154
  export type ResolvedFile<
@@ -390,7 +394,7 @@ export class FileManager {
390
394
  return ['.js', '.ts', '.tsx']
391
395
  }
392
396
 
393
- static isExtensionAllowed(baseName: string): boolean {
397
+ static isJavascript(baseName: string): boolean {
394
398
  return FileManager.extensions.some((extension) => baseName.endsWith(extension))
395
399
  }
396
400
  }
@@ -431,12 +435,15 @@ function combineFiles<TMeta extends KubbFile.FileMetaBase = KubbFile.FileMetaBas
431
435
  }
432
436
 
433
437
  export function getSource<TMeta extends KubbFile.FileMetaBase = KubbFile.FileMetaBase>(file: KubbFile.File<TMeta>): string {
434
- if (!FileManager.isExtensionAllowed(file.baseName)) {
438
+ // only use .js, .ts or .tsx files for ESM imports
439
+
440
+ if (file.language ? !['typescript', 'javascript'].includes(file.language) : !FileManager.isJavascript(file.baseName)) {
435
441
  return file.source
436
442
  }
437
443
 
438
444
  const exports = file.exports ? combineExports(file.exports) : []
439
- const imports = file.imports ? combineImports(file.imports, exports, file.source) : []
445
+ // imports should be defined and source should contain code or we have imports without them being used
446
+ const imports = file.imports && file.source ? combineImports(file.imports, exports, file.source) : []
440
447
 
441
448
  const importNodes = imports.filter(item => {
442
449
  // isImportNotNeeded
@@ -458,7 +465,10 @@ export function getSource<TMeta extends KubbFile.FileMetaBase = KubbFile.FileMet
458
465
  })
459
466
  )
460
467
 
461
- return [print([...importNodes, ...exportNodes]), getEnvSource(file.source, file.env)].join('\n')
468
+ const source = [print([...importNodes, ...exportNodes]), getEnvSource(file.source, file.env)].join('\n')
469
+
470
+ // do some basic linting with the ts compiler
471
+ return print([], { source, noEmitHelpers: false })
462
472
  }
463
473
 
464
474
  export function combineExports(exports: Array<KubbFile.Export>): Array<KubbFile.Export> {