@kubb/core 2.6.7 → 2.7.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.
- package/dist/{chunk-6453B5D6.js → chunk-77TYOFGF.js} +13 -5
- package/dist/chunk-77TYOFGF.js.map +1 -0
- package/dist/{chunk-VCS7BATE.js → chunk-AHK6WOW6.js} +10 -5
- package/dist/chunk-AHK6WOW6.js.map +1 -0
- package/dist/{chunk-AMVMOCJ4.cjs → chunk-AWUFUNOJ.cjs} +23 -22
- package/dist/{chunk-Q5OJPP57.js → chunk-BHNAGXM3.js} +59 -23
- package/dist/chunk-BHNAGXM3.js.map +1 -0
- package/dist/{chunk-M5H5RXTY.cjs → chunk-CUO3T7RA.cjs} +12 -9
- package/dist/{chunk-2JNTDAI2.cjs → chunk-DJLNT4KC.cjs} +17 -17
- package/dist/{chunk-2JNTDAI2.cjs.map → chunk-DJLNT4KC.cjs.map} +1 -1
- package/dist/chunk-EXBYWEC2.cjs +19 -0
- package/dist/{chunk-LVTR4JV4.cjs → chunk-FNHECX2X.cjs} +303 -298
- package/dist/chunk-FNHECX2X.cjs.map +1 -0
- package/dist/{chunk-WCUXF325.cjs → chunk-GNWOOGXA.cjs} +8 -7
- package/dist/{chunk-WDKUUZXN.cjs → chunk-IXCRUQPC.cjs} +21 -17
- package/dist/{chunk-HTCJOTLL.js → chunk-J2ES4PYI.js} +11 -7
- package/dist/chunk-J2ES4PYI.js.map +1 -0
- package/dist/{chunk-QDUQWRFO.js → chunk-JPSCPXBD.js} +8 -4
- package/dist/chunk-JPSCPXBD.js.map +1 -0
- package/dist/{chunk-YNFGR7GL.js → chunk-L3XMZMJ5.js} +10 -4
- package/dist/chunk-L3XMZMJ5.js.map +1 -0
- package/dist/chunk-SEATGNQM.js +15 -0
- package/dist/chunk-SEATGNQM.js.map +1 -0
- package/dist/{chunk-DUZFWQUE.js → chunk-SV7GUBBD.js} +13 -8
- package/dist/chunk-SV7GUBBD.js.map +1 -0
- package/dist/{chunk-E4QOZYOP.js → chunk-WRGVBPK2.js} +24 -10
- package/dist/chunk-WRGVBPK2.js.map +1 -0
- package/dist/{chunk-PHI4BK5K.cjs → chunk-X2JM3GAC.cjs} +162 -124
- package/dist/{chunk-7LKI2367.js → chunk-XDO5ZSKZ.js} +12 -7
- package/dist/chunk-XDO5ZSKZ.js.map +1 -0
- package/dist/{chunk-JWYPCGK5.cjs → chunk-XXN4BH6X.cjs} +14 -13
- package/dist/{chunk-KRX65PCH.cjs → chunk-ZJ6GI35A.cjs} +32 -29
- package/dist/fs.cjs +21 -28
- package/dist/fs.js +21 -5
- package/dist/fs.js.map +1 -1
- package/dist/index.cjs +189 -189
- 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 +14 -25
- package/dist/logger.js +14 -4
- package/dist/logger.js.map +1 -1
- package/dist/mocks.cjs +14 -12
- 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 +5 -5
- package/src/FileManager.ts +14 -4
- package/dist/chunk-6453B5D6.js.map +0 -1
- package/dist/chunk-7LKI2367.js.map +0 -1
- package/dist/chunk-DUZFWQUE.js.map +0 -1
- package/dist/chunk-EFAVSUDO.cjs +0 -15
- package/dist/chunk-HTCJOTLL.js.map +0 -1
- package/dist/chunk-KRX65PCH.cjs.map +0 -1
- package/dist/chunk-LVTR4JV4.cjs.map +0 -1
- package/dist/chunk-Q5OJPP57.js.map +0 -1
- package/dist/chunk-VCS7BATE.js.map +0 -1
- package/dist/chunk-WCUXF325.cjs.map +0 -1
- package/dist/chunk-YFNYSIDY.js +0 -12
- package/dist/chunk-YFNYSIDY.js.map +0 -1
- package/dist/chunk-YNFGR7GL.js.map +0 -1
- /package/dist/{chunk-AMVMOCJ4.cjs.map → chunk-AWUFUNOJ.cjs.map} +0 -0
- /package/dist/{chunk-M5H5RXTY.cjs.map → chunk-CUO3T7RA.cjs.map} +0 -0
- /package/dist/{chunk-EFAVSUDO.cjs.map → chunk-EXBYWEC2.cjs.map} +0 -0
- /package/dist/{chunk-QDUQWRFO.js.map → chunk-GNWOOGXA.cjs.map} +0 -0
- /package/dist/{chunk-WDKUUZXN.cjs.map → chunk-IXCRUQPC.cjs.map} +0 -0
- /package/dist/{chunk-PHI4BK5K.cjs.map → chunk-X2JM3GAC.cjs.map} +0 -0
- /package/dist/{chunk-JWYPCGK5.cjs.map → chunk-XXN4BH6X.cjs.map} +0 -0
- /package/dist/{chunk-E4QOZYOP.js.map → chunk-ZJ6GI35A.cjs.map} +0 -0
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 _chunkCUO3T7RAcjs = require('./chunk-CUO3T7RA.cjs');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
var _chunkGNWOOGXAcjs = require('./chunk-GNWOOGXA.cjs');
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
var _chunkAWUFUNOJcjs = require('./chunk-AWUFUNOJ.cjs');
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
var _chunkDJLNT4KCcjs = require('./chunk-DJLNT4KC.cjs');
|
|
8
14
|
|
|
9
15
|
// src/utils/index.ts
|
|
10
|
-
|
|
16
|
+
_chunkDJLNT4KCcjs.init_cjs_shims.call(void 0, );
|
|
11
17
|
|
|
12
18
|
// src/utils/FunctionParams.ts
|
|
13
|
-
|
|
19
|
+
_chunkDJLNT4KCcjs.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 : _chunkAWUFUNOJcjs.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
|
+
_chunkDJLNT4KCcjs.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
|
+
_chunkDJLNT4KCcjs.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
|
+
_chunkDJLNT4KCcjs.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 = _chunkCUO3T7RAcjs.URLPath; exports.getUniqueName = _chunkGNWOOGXAcjs.getUniqueName; exports.isPromise = isPromise; exports.isPromiseFulfilledResult = isPromiseFulfilledResult; exports.isPromiseRejectedResult = isPromiseRejectedResult; exports.renderTemplate = renderTemplate; exports.setUniqueName = _chunkGNWOOGXAcjs.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-AHK6WOW6.js";
|
|
4
|
+
import {
|
|
5
|
+
getUniqueName,
|
|
6
|
+
setUniqueName
|
|
7
|
+
} from "./chunk-JPSCPXBD.js";
|
|
8
|
+
import {
|
|
9
|
+
camelCase
|
|
10
|
+
} from "./chunk-SV7GUBBD.js";
|
|
11
|
+
import {
|
|
12
|
+
init_esm_shims
|
|
13
|
+
} from "./chunk-77TYOFGF.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.1",
|
|
4
4
|
"description": "Generator core",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -95,13 +95,13 @@
|
|
|
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.1",
|
|
99
|
+
"@kubb/types": "2.7.1"
|
|
100
100
|
},
|
|
101
101
|
"devDependencies": {
|
|
102
102
|
"@types/fs-extra": "^11.0.4",
|
|
103
103
|
"@types/lodash.isequal": "^4.5.8",
|
|
104
|
-
"@types/react": "^18.2.
|
|
104
|
+
"@types/react": "^18.2.63",
|
|
105
105
|
"@types/seedrandom": "^3.0.8",
|
|
106
106
|
"@types/semver": "^7.5.8",
|
|
107
107
|
"eslint": "^8.57.0",
|
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
"ora": "^8.0.1",
|
|
110
110
|
"tinyrainbow": "^1.1.1",
|
|
111
111
|
"tsup": "^8.0.2",
|
|
112
|
-
"typescript": "^5.
|
|
112
|
+
"typescript": "^5.4.2",
|
|
113
113
|
"@kubb/eslint-config": "1.1.8",
|
|
114
114
|
"@kubb/ts-config": "0.1.0",
|
|
115
115
|
"@kubb/tsup-config": "1.1.8"
|
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> {
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/.pnpm/tsup@8.0.2_@microsoft+api-extractor@7.42.3_ts-node@10.9.2_typescript@5.3.3/node_modules/tsup/assets/esm_shims.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["// Shim globals in esm bundle\nimport { fileURLToPath } from 'url'\nimport path from 'path'\n\nconst getFilename = () => fileURLToPath(import.meta.url)\nconst getDirname = () => path.dirname(getFilename())\n\nexport const __dirname = /* @__PURE__ */ getDirname()\nexport const __filename = /* @__PURE__ */ getFilename()\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/fs/read.ts"],"names":[],"mappings":";;;;;AAAA;AAAA,SAAS,UAAU,SAAS,gBAAgB;AAE5C,OAAO,QAAQ;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,aAAO,GAAG,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,GAAG,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 { 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/transformers/casing.ts"],"names":[],"mappings":";;;;;AAAA;AAAA,SAAS,aAAa,iBAAiB,cAAc,kBAAkB,YAAY,sBAAsB;AAWlG,SAAS,UAAU,MAAc,EAAE,QAAQ,SAAS,IAAI,SAAS,GAAG,IAAa,CAAC,GAAW;AAClG,MAAI,QAAQ;AACV,UAAM,aAAa,KAAK,MAAM,GAAG;AACjC,WAAO,WAAW,IAAI,CAAC,MAAM,MAAM,MAAM,WAAW,SAAS,IAAI,UAAU,MAAM,EAAE,QAAQ,OAAO,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE,KAAK,GAAG;AAAA,EAClI;AAEA,SAAO,gBAAgB,GAAG,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,EAAE,WAAW,IAAI,0BAA0B,KAAK,CAAC;AACzG;AAEO,SAAS,WAAW,MAAc,EAAE,QAAQ,SAAS,IAAI,SAAS,GAAG,IAAa,CAAC,GAAW;AACnG,MAAI,QAAQ;AACV,UAAM,aAAa,KAAK,MAAM,GAAG;AACjC,WAAO,WAAW,IAAI,CAAC,MAAM,MAAM,MAAM,WAAW,SAAS,IAAI,WAAW,MAAM,EAAE,QAAQ,OAAO,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE,KAAK,GAAG;AAAA,EACnI;AAEA,SAAO,iBAAiB,GAAG,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,EAAE,WAAW,IAAI,0BAA0B,KAAK,CAAC;AAC1G;AAEO,SAAS,SAAS,MAAc,EAAE,QAAQ,SAAS,IAAI,SAAS,GAAG,IAAa,CAAC,GAAW;AACjG,MAAI,QAAQ;AACV,UAAM,aAAa,KAAK,MAAM,GAAG;AACjC,WAAO,WAAW,IAAI,CAAC,MAAM,MAAM,MAAM,WAAW,SAAS,IAAI,SAAS,MAAM,EAAE,QAAQ,OAAO,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE,KAAK,GAAG;AAAA,EACjI;AAEA,SAAO,eAAe,GAAG,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,EAAE,WAAW,GAAG,CAAC;AACxE","sourcesContent":["import { camelCase as changeCamelCase, pascalCase as changePascalCase, pathCase as changePathCase } from 'change-case'\n\ntype Options = {\n /**\n * When set it will replace all `.` with `/`.\n */\n isFile?: boolean\n prefix?: string\n suffix?: string\n}\n\nexport function camelCase(text: string, { isFile, prefix = '', suffix = '' }: Options = {}): string {\n if (isFile) {\n const splitArray = text.split('.')\n return splitArray.map((item, i) => i === splitArray.length - 1 ? camelCase(item, { prefix, suffix }) : camelCase(item)).join('/')\n }\n\n return changeCamelCase(`${prefix} ${text} ${suffix}`, { delimiter: '', mergeAmbiguousCharacters: true })\n}\n\nexport function pascalCase(text: string, { isFile, prefix = '', suffix = '' }: Options = {}): string {\n if (isFile) {\n const splitArray = text.split('.')\n return splitArray.map((item, i) => i === splitArray.length - 1 ? pascalCase(item, { prefix, suffix }) : camelCase(item)).join('/')\n }\n\n return changePascalCase(`${prefix} ${text} ${suffix}`, { delimiter: '', mergeAmbiguousCharacters: true })\n}\n\nexport function pathCase(text: string, { isFile, prefix = '', suffix = '' }: Options = {}): string {\n if (isFile) {\n const splitArray = text.split('.')\n return splitArray.map((item, i) => i === splitArray.length - 1 ? pathCase(item, { prefix, suffix }) : camelCase(item)).join('/')\n }\n\n return changePathCase(`${prefix} ${text} ${suffix}`, { delimiter: '' })\n}\n"]}
|
package/dist/chunk-EFAVSUDO.cjs
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkPHI4BK5K_cjs = require('./chunk-PHI4BK5K.cjs');
|
|
4
|
-
var chunk2JNTDAI2_cjs = require('./chunk-2JNTDAI2.cjs');
|
|
5
|
-
|
|
6
|
-
// src/fs/clean.ts
|
|
7
|
-
chunk2JNTDAI2_cjs.init_cjs_shims();
|
|
8
|
-
var import_fs_extra = chunk2JNTDAI2_cjs.__toESM(chunkPHI4BK5K_cjs.require_lib(), 1);
|
|
9
|
-
async function clean(path) {
|
|
10
|
-
return import_fs_extra.default.remove(path);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
exports.clean = clean;
|
|
14
|
-
//# sourceMappingURL=out.js.map
|
|
15
|
-
//# sourceMappingURL=chunk-EFAVSUDO.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/fs/write.ts"],"names":[],"mappings":";;;;;AAAA;AAAA,SAAS,eAAe;AAExB,OAAO,QAAQ;AACf,SAAS,gBAAgB;AAIzB,IAAM,SAAS;AAAA,EACb;AAAA,IACE,MAAM,OAAO,MAAc,MAAc,EAAE,OAAO,MAAe;AAC/D,UAAI;AACF,cAAM,aAAa,MAAM,GAAG,SAAS,QAAQ,IAAI,GAAG,EAAE,UAAU,QAAQ,CAAC;AACzE,YAAI,YAAY,SAAS,MAAM,MAAM,SAAS,GAAG;AAC/C;AAAA,QACF;AAAA,MACF,SAAS,MAAM;AAAA,MAEf;AAEA,YAAM,GAAG,WAAW,QAAQ,IAAI,GAAG,MAAM,EAAE,UAAU,QAAQ,CAAC;AAE9D,UAAI,QAAQ;AACV,cAAM,YAAY,MAAM,GAAG,SAAS,QAAQ,IAAI,GAAG,EAAE,UAAU,QAAQ,CAAC;AAExE,YAAI,WAAW,SAAS,MAAM,MAAM,SAAS,GAAG;AAC9C,gBAAM,IAAI,MAAM,2BAA2B,IAAI;AAAA;AAAA,OAAY,KAAK,MAAM;AAAA,EAAO,IAAI;AAAA;AAAA,QAAa,UAAU,MAAM;AAAA,EAAO,SAAS;AAAA,CAAI;AAAA,QACpI;AAEA,eAAO;AAAA,MACT;AAEA,aAAO;AAAA,IACT;AAAA,IACA,KAAK,OAAO,MAAc,MAAc,EAAE,OAAO,MAAe;AAC9D,UAAI;AACF,cAAM,IAAI,MAAM,QAAQ,IAAI,GAAG,IAAI;AAEnC,YAAI,QAAQ;AACV,gBAAM,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC;AACnC,gBAAM,YAAY,MAAM,KAAK,KAAK;AAElC,cAAI,WAAW,SAAS,MAAM,MAAM,SAAS,GAAG;AAC9C,kBAAM,IAAI,MAAM,2BAA2B,IAAI;AAAA;AAAA,OAAY,KAAK,MAAM;AAAA,EAAO,IAAI;AAAA;AAAA,QAAa,UAAU,MAAM;AAAA,EAAO,SAAS;AAAA,CAAI;AAAA,UACpI;AAEA,iBAAO;AAAA,QACT;AAEA,eAAO;AAAA,MACT,SAAS,GAAG;AACV,gBAAQ,IAAI,GAAG,QAAQ,IAAI,CAAC;AAAA,MAC9B;AAAA,IACF;AAAA,EACF;AAAA,EACA;AACF;AAEA,eAAsB,MAAM,MAAc,MAAc,UAAmB,CAAC,GAAgC;AAC1G,MAAI,KAAK,KAAK,MAAM,IAAI;AACtB,WAAO;AAAA,EACT;AACA,SAAO,OAAO,MAAM,KAAK,KAAK,GAAG,OAAO;AAC1C;AAEA,eAAsB,SAAS,MAA2C;AACxE,MAAI,KAAK,KAAK,MAAM,IAAI;AACtB,WAAO;AAAA,EACT;AACA,QAAM,OAAO,QAAQ,QAAQ,IAAI,GAAG,cAAc;AAClD,MAAI,eAAe;AAEnB,MAAI;AACF,mBAAe,MAAM,GAAG,SAAS,QAAQ,IAAI,GAAG,EAAE,UAAU,QAAQ,CAAC;AAAA,EACvE,SAAS,MAAM;AAAA,EAEf;AAEA,SAAO,OAAO,MAAM,CAAC,cAAc,KAAK,KAAK,CAAC,EAAE,OAAO,OAAO,EAAE,KAAK,QAAQ,GAAG,EAAE,QAAQ,MAAM,CAAC;AACnG","sourcesContent":["import { resolve } from 'node:path'\n\nimport fs from 'fs-extra'\nimport { switcher } from 'js-runtime'\n\ntype Options = { sanity?: boolean }\n\nconst writer = switcher(\n {\n node: async (path: string, data: string, { sanity }: Options) => {\n try {\n const oldContent = await fs.readFile(resolve(path), { encoding: 'utf-8' })\n if (oldContent?.toString() === data?.toString()) {\n return\n }\n } catch (_err) {\n /* empty */\n }\n\n await fs.outputFile(resolve(path), data, { encoding: 'utf-8' })\n\n if (sanity) {\n const savedData = await fs.readFile(resolve(path), { encoding: 'utf-8' })\n\n if (savedData?.toString() !== data?.toString()) {\n throw new Error(`Sanity check failed for ${path}\\n\\nData[${data.length}]:\\n${data}\\n\\nSaved[${savedData.length}]:\\n${savedData}\\n`)\n }\n\n return savedData\n }\n\n return data\n },\n bun: async (path: string, data: string, { sanity }: Options) => {\n try {\n await Bun.write(resolve(path), data)\n\n if (sanity) {\n const file = Bun.file(resolve(path))\n const savedData = await file.text()\n\n if (savedData?.toString() !== data?.toString()) {\n throw new Error(`Sanity check failed for ${path}\\n\\nData[${data.length}]:\\n${data}\\n\\nSaved[${savedData.length}]:\\n${savedData}\\n`)\n }\n\n return savedData\n }\n\n return data\n } catch (e) {\n console.log(e, resolve(path))\n }\n },\n },\n 'node',\n)\n\nexport async function write(data: string, path: string, options: Options = {}): Promise<string | undefined> {\n if (data.trim() === '') {\n return undefined\n }\n return writer(path, data.trim(), options)\n}\n\nexport async function writeLog(data: string): Promise<string | undefined> {\n if (data.trim() === '') {\n return undefined\n }\n const path = resolve(process.cwd(), 'kubb-log.log')\n let previousLogs = ''\n\n try {\n previousLogs = await fs.readFile(resolve(path), { encoding: 'utf-8' })\n } catch (_err) {\n /* empty */\n }\n\n return writer(path, [previousLogs, data.trim()].filter(Boolean).join('\\n\\n\\n'), { sanity: false })\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/logger.ts","../../../node_modules/.pnpm/tinyrainbow@1.1.1/node_modules/tinyrainbow/dist/node.js","../../../node_modules/.pnpm/tinyrainbow@1.1.1/node_modules/tinyrainbow/dist/chunk-5WCZOS7T.js","../src/utils/EventEmitter.ts"],"names":["r","p"],"mappings":"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","sourcesContent":["import seedrandom from 'seedrandom'\nimport c, { createColors } from 'tinyrainbow'\n\nimport { writeLog } from './fs/write.ts'\nimport { EventEmitter } from './utils/EventEmitter.ts'\n\nimport type { Ora } from 'ora'\nimport type { Formatter } from 'tinyrainbow'\n\nexport const LogLevel = {\n silent: 'silent',\n info: 'info',\n debug: 'debug',\n} as const\n\nexport type LogLevel = keyof typeof LogLevel\n\ntype Events = {\n start: [message: string]\n end: [message: string]\n error: [message: string]\n warning: [message: string]\n debug: [logs: string[]]\n}\nexport type Logger = {\n /**\n * Optional config name to show in CLI output\n */\n name?: string\n logLevel: LogLevel\n\n spinner?: Ora\n on: EventEmitter<Events>['on']\n emit: EventEmitter<Events>['emit']\n}\n\ntype Props = {\n name?: string\n logLevel: LogLevel\n spinner?: Ora\n}\n\nexport function createLogger({ logLevel, name, spinner }: Props): Logger {\n const events = new EventEmitter<Events>()\n\n events.on('start', (message) => {\n if (spinner) {\n spinner.start(message)\n }\n })\n\n events.on('end', (message) => {\n if (spinner) {\n spinner.suffixText = ''\n spinner.succeed(message)\n }\n })\n\n events.on('warning', (message) => {\n if (spinner) {\n spinner.warn(c.yellow(message))\n }\n })\n\n events.on('error', (message) => {\n throw new Error(message || 'Something went wrong')\n })\n\n events.on('debug', async (messages) => {\n await writeLog(messages.join('\\n'))\n })\n\n const logger: Logger = {\n name,\n logLevel,\n spinner,\n on: (...args) => {\n return events.on(...args)\n },\n emit: (...args) => {\n return events.emit(...args)\n },\n }\n\n return logger\n}\n\nconst defaultColours = ['black', 'blue', 'darkBlue', 'cyan', 'gray', 'green', 'darkGreen', 'magenta', 'red', 'darkRed', 'yellow', 'darkYellow'] as const\n\nexport function randomColour(text?: string, colours = defaultColours): string {\n if (!text) {\n return 'white'\n }\n\n const random = seedrandom(text)\n const colour = colours.at(Math.floor(random() * colours.length)) || 'white'\n\n return colour\n}\n\nexport function randomCliColour(text?: string, colors = defaultColours): string {\n const colours = createColors(true)\n\n if (!text) {\n return colours.white(text)\n }\n\n const colour = randomColour(text, colors)\n const isDark = colour.includes('dark')\n const key = colour.replace('dark', '').toLowerCase() as keyof typeof colours\n const formatter: Formatter = colours[key] as Formatter\n\n if (isDark) {\n return c.bold(formatter(text))\n }\n\n if (typeof formatter !== 'function') {\n throw new Error('Formatter for picoColor is not of type function/Formatter')\n }\n return formatter(text)\n}\n","import {\n a as t,\n b as e,\n c as o\n} from \"./chunk-5WCZOS7T.js\";\n\n// src/node.ts\nimport { isatty as r } from \"tty\";\nvar p = o(r(1));\nexport {\n o as createColors,\n p as default,\n t as getDefaultColors,\n e as isSupported\n};\n","// src/index.ts\nvar b = {\n reset: [0, 0],\n bold: [1, 22, \"\\x1B[22m\\x1B[1m\"],\n dim: [2, 22, \"\\x1B[22m\\x1B[2m\"],\n italic: [3, 23],\n underline: [4, 24],\n inverse: [7, 27],\n hidden: [8, 28],\n strikethrough: [9, 29],\n black: [30, 39],\n red: [31, 39],\n green: [32, 39],\n yellow: [33, 39],\n blue: [34, 39],\n magenta: [35, 39],\n cyan: [36, 39],\n white: [37, 39],\n gray: [90, 39],\n bgBlack: [40, 49],\n bgRed: [41, 49],\n bgGreen: [42, 49],\n bgYellow: [43, 49],\n bgBlue: [44, 49],\n bgMagenta: [45, 49],\n bgCyan: [46, 49],\n bgWhite: [47, 49]\n}, C = Object.entries(b);\nfunction d(r) {\n return String(r);\n}\nd.open = \"\";\nd.close = \"\";\nvar m = /* @__PURE__ */ C.reduce(\n (r, [n]) => (r[n] = d, r),\n { isColorSupported: !1 }\n);\nfunction x() {\n return { ...m };\n}\nfunction p(r = !1) {\n let n = typeof process != \"undefined\" ? process : void 0, t = (n == null ? void 0 : n.env) || {}, a = (n == null ? void 0 : n.argv) || [];\n return !(\"NO_COLOR\" in t || a.includes(\"--no-color\")) && !(\"GITHUB_ACTIONS\" in t) && (\"FORCE_COLOR\" in t || a.includes(\"--color\") || (n == null ? void 0 : n.platform) === \"win32\" || r && t.TERM !== \"dumb\" || \"CI\" in t) || typeof window != \"undefined\" && !!window.chrome;\n}\nfunction w(r = !1) {\n let n = p(r), t = (e, o, c, i) => {\n let u = e.substring(0, i) + c, s = e.substring(i + o.length), l = s.indexOf(o);\n return ~l ? u + t(s, o, c, l) : u + s;\n }, a = (e, o, c = e) => {\n let i = (u) => {\n let s = String(u), l = s.indexOf(o, e.length);\n return ~l ? e + t(s, o, c, l) + o : e + s + o;\n };\n return i.open = e, i.close = o, i;\n }, g = {\n isColorSupported: n\n }, f = (e) => `\\x1B[${e}m`;\n for (let [e, o] of C)\n g[e] = n ? a(\n f(o[0]),\n f(o[1]),\n o[2]\n ) : d;\n return g;\n}\n\nexport {\n x as a,\n p as b,\n w as c\n};\n","/* eslint-disable @typescript-eslint/no-unsafe-argument */\nimport { EventEmitter as NodeEventEmitter } from 'node:events'\n\nexport class EventEmitter<TEvents extends Record<string, any>> {\n constructor() {\n this.#emitter.setMaxListeners(100)\n }\n #emitter = new NodeEventEmitter()\n\n emit<TEventName extends keyof TEvents & string>(eventName: TEventName, ...eventArg: TEvents[TEventName]): void {\n this.#emitter.emit(eventName, ...(eventArg as []))\n }\n\n on<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void {\n this.#emitter.on(eventName, handler as any)\n }\n\n off<TEventName extends keyof TEvents & string>(eventName: TEventName, handler: (...eventArg: TEvents[TEventName]) => void): void {\n this.#emitter.off(eventName, handler as any)\n }\n removeAll(): void {\n this.#emitter.removeAllListeners()\n }\n}\n"]}
|