@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.
- package/dist/chunk-2JNTDAI2.cjs +14 -14
- package/dist/{chunk-Q5OJPP57.js → chunk-3HKED6KQ.js} +59 -23
- package/dist/chunk-3HKED6KQ.js.map +1 -0
- package/dist/chunk-6453B5D6.js +10 -2
- package/dist/chunk-6453B5D6.js.map +1 -1
- package/dist/chunk-7LKI2367.js +11 -6
- package/dist/chunk-7LKI2367.js.map +1 -1
- package/dist/chunk-AMVMOCJ4.cjs +22 -21
- package/dist/{chunk-LVTR4JV4.cjs → chunk-BCD4E3IZ.cjs} +303 -298
- package/dist/chunk-BCD4E3IZ.cjs.map +1 -0
- package/dist/chunk-DUZFWQUE.js +12 -7
- package/dist/chunk-DUZFWQUE.js.map +1 -1
- package/dist/chunk-E4QOZYOP.js +23 -9
- package/dist/chunk-E4QOZYOP.js.map +1 -1
- package/dist/chunk-EFAVSUDO.cjs +10 -6
- package/dist/chunk-HTCJOTLL.js +10 -6
- package/dist/chunk-HTCJOTLL.js.map +1 -1
- package/dist/chunk-JWYPCGK5.cjs +13 -12
- package/dist/chunk-KRX65PCH.cjs +31 -28
- package/dist/chunk-M5H5RXTY.cjs +11 -8
- package/dist/chunk-PHI4BK5K.cjs +161 -123
- package/dist/chunk-QDUQWRFO.js +7 -3
- package/dist/chunk-QDUQWRFO.js.map +1 -1
- package/dist/chunk-VCS7BATE.js +9 -4
- package/dist/chunk-VCS7BATE.js.map +1 -1
- package/dist/chunk-WCUXF325.cjs +7 -6
- package/dist/chunk-WDKUUZXN.cjs +20 -16
- package/dist/chunk-YFNYSIDY.js +7 -4
- package/dist/chunk-YFNYSIDY.js.map +1 -1
- package/dist/chunk-YNFGR7GL.js +9 -3
- package/dist/chunk-YNFGR7GL.js.map +1 -1
- package/dist/fs.cjs +21 -28
- package/dist/fs.js +21 -5
- package/dist/fs.js.map +1 -1
- package/dist/index.cjs +183 -183
- package/dist/index.d.cts +5 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.js +61 -19
- package/dist/index.js.map +1 -1
- package/dist/logger.cjs +8 -19
- package/dist/logger.js +14 -4
- package/dist/logger.js.map +1 -1
- package/dist/mocks.cjs +10 -8
- package/dist/mocks.js +15 -11
- package/dist/mocks.js.map +1 -1
- package/dist/transformers.cjs +40 -54
- package/dist/transformers.js +30 -8
- package/dist/transformers.js.map +1 -1
- package/dist/utils.cjs +34 -36
- package/dist/utils.js +25 -8
- package/dist/utils.js.map +1 -1
- package/package.json +3 -3
- package/src/FileManager.ts +14 -4
- package/dist/chunk-LVTR4JV4.cjs.map +0 -1
- package/dist/chunk-Q5OJPP57.js.map +0 -1
package/dist/utils.cjs
CHANGED
|
@@ -1,16 +1,23 @@
|
|
|
1
|
-
|
|
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
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var
|
|
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
|
-
|
|
16
|
+
_chunk2JNTDAI2cjs.init_cjs_shims.call(void 0, );
|
|
11
17
|
|
|
12
18
|
// src/utils/FunctionParams.ts
|
|
13
|
-
|
|
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 =
|
|
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 :
|
|
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
|
-
|
|
61
|
+
_chunk2JNTDAI2cjs.init_cjs_shims.call(void 0, );
|
|
55
62
|
function isPromise(result) {
|
|
56
|
-
return !!result && typeof result
|
|
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
|
-
|
|
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
|
|
73
|
-
const index = curr.split(/{{|}}/).filter(Boolean)[0]
|
|
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
|
-
|
|
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
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import {
|
|
5
|
-
|
|
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
|
-
|
|
99
|
-
|
|
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"],"
|
|
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.
|
|
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.
|
|
99
|
-
"@kubb/types": "2.
|
|
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",
|
package/src/FileManager.ts
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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> {
|