@kubb/cli 3.0.0-alpha.9 → 3.0.0-beta.2
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/README.md +14 -5
- package/dist/{chunk-LK3JKOEH.cjs → chunk-53UZIH3L.cjs} +583 -695
- package/dist/chunk-53UZIH3L.cjs.map +1 -0
- package/dist/{chunk-CZ3C3WQD.js → chunk-LA3QWVJI.js} +63 -99
- package/dist/chunk-LA3QWVJI.js.map +1 -0
- package/dist/generate-GY5YTAID.cjs +244 -0
- package/dist/generate-GY5YTAID.cjs.map +1 -0
- package/dist/{generate-IFZ2Y6PO.js → generate-JA5KME2H.js} +38 -53
- package/dist/generate-JA5KME2H.js.map +1 -0
- package/dist/index.cjs +26 -21
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -6
- package/dist/index.d.ts +3 -6
- package/dist/index.js +11 -18
- package/dist/index.js.map +1 -1
- package/package.json +15 -19
- package/src/commands/generate.ts +23 -17
- package/src/generate.ts +43 -45
- package/src/index.ts +1 -1
- package/src/utils/Writables.ts +2 -2
- package/src/utils/executeHooks.ts +5 -5
- package/src/utils/getCosmiConfig.ts +4 -15
- package/src/utils/getSummary.ts +4 -6
- package/src/utils/watcher.ts +4 -6
- package/bin/bkubb.cjs +0 -6
- package/dist/chunk-CZ3C3WQD.js.map +0 -1
- package/dist/chunk-LK3JKOEH.cjs.map +0 -1
- package/dist/generate-CMBXNVHT.cjs +0 -228
- package/dist/generate-CMBXNVHT.cjs.map +0 -1
- package/dist/generate-IFZ2Y6PO.js.map +0 -1
- package/src/utils/writeLog.ts +0 -28
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
1
|
+
import { LogMapper, createLogger, randomCliColour } from '@kubb/core/logger';
|
|
2
|
+
import c3 from 'tinyrainbow';
|
|
3
|
+
import { safeBuild } from '@kubb/core';
|
|
4
|
+
import { execa } from 'execa';
|
|
5
|
+
import { parseArgsStringToArgv } from 'string-argv';
|
|
6
|
+
import { Writable } from 'node:stream';
|
|
7
|
+
import * as process2 from 'node:process';
|
|
8
|
+
import PQueue from 'p-queue';
|
|
9
|
+
import path from 'node:path';
|
|
10
|
+
import { SingleBar, Presets } from 'cli-progress';
|
|
10
11
|
|
|
11
|
-
// src/
|
|
12
|
-
import { Writable } from "node:stream";
|
|
13
|
-
import c from "tinyrainbow";
|
|
14
|
-
import * as process2 from "node:process";
|
|
12
|
+
// src/generate.ts
|
|
15
13
|
var ConsolaWritable = class extends Writable {
|
|
16
14
|
consola;
|
|
17
15
|
command;
|
|
@@ -21,14 +19,10 @@ var ConsolaWritable = class extends Writable {
|
|
|
21
19
|
this.consola = consola;
|
|
22
20
|
}
|
|
23
21
|
_write(chunk, _encoding, callback) {
|
|
24
|
-
process2.stdout.write(`${
|
|
22
|
+
process2.stdout.write(`${c3.dim(chunk?.toString())}`);
|
|
25
23
|
callback();
|
|
26
24
|
}
|
|
27
25
|
};
|
|
28
|
-
|
|
29
|
-
// src/utils/executeHooks.ts
|
|
30
|
-
import { LogMapper } from "@kubb/core/logger";
|
|
31
|
-
import PQueue from "p-queue";
|
|
32
26
|
async function executeHooks({ hooks, logger }) {
|
|
33
27
|
const commands = Array.isArray(hooks.done) ? hooks.done : [hooks.done].filter(Boolean);
|
|
34
28
|
const queue = new PQueue({ concurrency: 1 });
|
|
@@ -39,17 +33,17 @@ async function executeHooks({ hooks, logger }) {
|
|
|
39
33
|
return null;
|
|
40
34
|
}
|
|
41
35
|
await queue.add(async () => {
|
|
42
|
-
logger
|
|
43
|
-
|
|
36
|
+
logger?.emit("start", `Executing hook ${logger.logLevel !== LogMapper.silent ? c3.dim(command) : ""}`);
|
|
37
|
+
await execa(cmd, _args, {
|
|
44
38
|
detached: true,
|
|
45
|
-
stdout: logger
|
|
39
|
+
stdout: logger?.logLevel === LogMapper.silent ? void 0 : ["pipe", consolaWritable],
|
|
46
40
|
stripFinalNewline: true
|
|
47
41
|
});
|
|
48
|
-
logger
|
|
42
|
+
logger?.emit("success", `Executed hook ${logger.logLevel !== LogMapper.silent ? c3.dim(command) : ""}`);
|
|
49
43
|
});
|
|
50
44
|
});
|
|
51
45
|
await Promise.all(promises);
|
|
52
|
-
logger
|
|
46
|
+
logger?.emit("success", "Executed hooks");
|
|
53
47
|
}
|
|
54
48
|
|
|
55
49
|
// src/utils/getErrorCauses.ts
|
|
@@ -65,11 +59,6 @@ function getErrorCauses(errors) {
|
|
|
65
59
|
}, []).filter(Boolean);
|
|
66
60
|
}
|
|
67
61
|
|
|
68
|
-
// src/utils/getSummary.ts
|
|
69
|
-
import path from "node:path";
|
|
70
|
-
import { randomCliColour } from "@kubb/core/logger";
|
|
71
|
-
import c3 from "tinyrainbow";
|
|
72
|
-
|
|
73
62
|
// src/utils/parseHrtimeToSeconds.ts
|
|
74
63
|
function parseHrtimeToSeconds(hrtime) {
|
|
75
64
|
const seconds = (hrtime[0] + hrtime[1] / 1e9).toFixed(3);
|
|
@@ -78,7 +67,7 @@ function parseHrtimeToSeconds(hrtime) {
|
|
|
78
67
|
|
|
79
68
|
// src/utils/getSummary.ts
|
|
80
69
|
function getSummary({ pluginManager, filesCreated, status, hrStart, config }) {
|
|
81
|
-
const logs =
|
|
70
|
+
const logs = /* @__PURE__ */ new Set();
|
|
82
71
|
const elapsedSeconds = parseHrtimeToSeconds(process.hrtime(hrStart));
|
|
83
72
|
const buildStartPlugins = pluginManager.executed.filter((item) => item.hookName === "buildStart" && item.plugin.name !== "core").map((item) => item.plugin.name);
|
|
84
73
|
const buildEndPlugins = pluginManager.executed.filter((item) => item.hookName === "buildEnd" && item.plugin.name !== "core").map((item) => item.plugin.name);
|
|
@@ -91,7 +80,7 @@ function getSummary({ pluginManager, filesCreated, status, hrStart, config }) {
|
|
|
91
80
|
time: `${c3.yellow(`${elapsedSeconds}s`)}`,
|
|
92
81
|
output: path.isAbsolute(config.root) ? path.resolve(config.root, config.output.path) : config.root
|
|
93
82
|
};
|
|
94
|
-
logs.
|
|
83
|
+
logs.add(
|
|
95
84
|
[
|
|
96
85
|
[`${c3.bold("Plugins:")} ${meta.plugins}`, true],
|
|
97
86
|
[`${c3.dim("Failed:")} ${meta.pluginsFailed || "none"}`, !!meta.pluginsFailed],
|
|
@@ -104,77 +93,45 @@ function getSummary({ pluginManager, filesCreated, status, hrStart, config }) {
|
|
|
104
93
|
return void 0;
|
|
105
94
|
}).filter(Boolean).join("\n")
|
|
106
95
|
);
|
|
107
|
-
return logs;
|
|
96
|
+
return [...logs];
|
|
108
97
|
}
|
|
109
|
-
|
|
110
|
-
// src/utils/writeLog.ts
|
|
111
|
-
import { resolve } from "node:path";
|
|
112
|
-
import { read, write } from "@kubb/fs";
|
|
113
|
-
async function writeLog({ data, override, fileName = "kubb.log" }) {
|
|
114
|
-
if (data.trim() === "") {
|
|
115
|
-
return void 0;
|
|
116
|
-
}
|
|
117
|
-
const path2 = resolve(process.cwd(), fileName);
|
|
118
|
-
let previousLogs = "";
|
|
119
|
-
try {
|
|
120
|
-
previousLogs = await read(resolve(path2));
|
|
121
|
-
} catch (_err) {
|
|
122
|
-
}
|
|
123
|
-
if (override) {
|
|
124
|
-
return write(path2, data.trim(), { sanity: false });
|
|
125
|
-
}
|
|
126
|
-
return write(path2, [previousLogs, data.trim()].filter(Boolean).join("\n"), { sanity: false });
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
// src/generate.ts
|
|
130
|
-
import { Presets, SingleBar } from "cli-progress";
|
|
131
98
|
async function generate({ input, config, args }) {
|
|
132
|
-
const logLevel =
|
|
99
|
+
const logLevel = LogMapper[args.logLevel] || 3;
|
|
133
100
|
const logger = createLogger({
|
|
134
101
|
logLevel,
|
|
135
102
|
name: config.name
|
|
136
103
|
});
|
|
137
|
-
const
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
} : {
|
|
148
|
-
format: "{percentage}% {bar} {value}/{total} {id}",
|
|
104
|
+
const { root = process.cwd(), ...userConfig } = config;
|
|
105
|
+
const inputPath = input ?? ("path" in userConfig.input ? userConfig.input.path : void 0);
|
|
106
|
+
if (logger.logLevel !== LogMapper.debug) {
|
|
107
|
+
const progressCache = /* @__PURE__ */ new Map();
|
|
108
|
+
logger.on("progress_start", ({ id, size, message = "" }) => {
|
|
109
|
+
logger.consola?.pauseLogs();
|
|
110
|
+
const payload = { id, message };
|
|
111
|
+
const progressBar = new SingleBar(
|
|
112
|
+
{
|
|
113
|
+
format: "{percentage}% {bar} {value}/{total} | {message}",
|
|
149
114
|
barsize: 30,
|
|
150
115
|
clearOnComplete: true,
|
|
151
116
|
emptyOnZero: true
|
|
152
117
|
},
|
|
153
118
|
Presets.shades_grey
|
|
154
119
|
);
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
}
|
|
171
|
-
});
|
|
172
|
-
logger.on("debug", async ({ logs, override, fileName }) => {
|
|
173
|
-
await writeLog({ data: logs.join("\n"), fileName, override });
|
|
174
|
-
});
|
|
175
|
-
const { root = process.cwd(), ...userConfig } = config;
|
|
176
|
-
const inputPath = input ?? ("path" in userConfig.input ? userConfig.input.path : void 0);
|
|
177
|
-
logger.emit("start", `Building ${logLevel !== LogMapper2.silent ? c4.dim(inputPath) : ""}`);
|
|
120
|
+
if (!progressCache.has(id)) {
|
|
121
|
+
progressCache.set(id, progressBar);
|
|
122
|
+
progressBar.start(size, 1, payload);
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
logger.on("progress_stop", ({ id }) => {
|
|
126
|
+
progressCache.get(id)?.stop();
|
|
127
|
+
logger.consola?.resumeLogs();
|
|
128
|
+
});
|
|
129
|
+
logger.on("progressed", ({ id, message = "" }) => {
|
|
130
|
+
const payload = { id, message };
|
|
131
|
+
progressCache.get(id)?.increment(1, payload);
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
logger.emit("start", `Building ${logger.logLevel !== LogMapper.silent ? c3.dim(inputPath) : ""}`);
|
|
178
135
|
const definedConfig = {
|
|
179
136
|
root,
|
|
180
137
|
...userConfig,
|
|
@@ -184,7 +141,10 @@ async function generate({ input, config, args }) {
|
|
|
184
141
|
} : userConfig.input,
|
|
185
142
|
output: {
|
|
186
143
|
write: true,
|
|
187
|
-
|
|
144
|
+
barrelType: "named",
|
|
145
|
+
extension: {
|
|
146
|
+
".ts": ".ts"
|
|
147
|
+
},
|
|
188
148
|
...userConfig.output
|
|
189
149
|
}
|
|
190
150
|
};
|
|
@@ -193,17 +153,22 @@ async function generate({ input, config, args }) {
|
|
|
193
153
|
config: definedConfig,
|
|
194
154
|
logger
|
|
195
155
|
});
|
|
156
|
+
if (logger.logLevel === LogMapper.debug) {
|
|
157
|
+
logger.consola?.start("Writing logs");
|
|
158
|
+
const logFiles = await logger.writeLogs();
|
|
159
|
+
logger.consola?.success(`Written logs:
|
|
160
|
+
${logFiles.join("\n")}`);
|
|
161
|
+
}
|
|
196
162
|
const summary = getSummary({
|
|
197
163
|
filesCreated: files.length,
|
|
198
164
|
pluginManager,
|
|
199
165
|
config: definedConfig,
|
|
200
166
|
status: error ? "failed" : "success",
|
|
201
|
-
hrStart
|
|
202
|
-
logger
|
|
167
|
+
hrStart
|
|
203
168
|
});
|
|
204
169
|
if (error && logger.consola) {
|
|
205
170
|
logger.consola?.resumeLogs();
|
|
206
|
-
logger.consola.error(`Build failed ${logLevel !==
|
|
171
|
+
logger.consola.error(`Build failed ${logger.logLevel !== LogMapper.silent ? c3.dim(inputPath) : ""}`);
|
|
207
172
|
logger.consola.box({
|
|
208
173
|
title: `${config.name || ""}`,
|
|
209
174
|
message: summary.join(""),
|
|
@@ -214,7 +179,7 @@ async function generate({ input, config, args }) {
|
|
|
214
179
|
}
|
|
215
180
|
});
|
|
216
181
|
const errors = getErrorCauses([error]);
|
|
217
|
-
if (logger.consola && errors.length && logLevel ===
|
|
182
|
+
if (logger.consola && errors.length && logger.logLevel === LogMapper.debug) {
|
|
218
183
|
errors.forEach((err) => {
|
|
219
184
|
logger.consola?.error(err);
|
|
220
185
|
});
|
|
@@ -225,7 +190,7 @@ async function generate({ input, config, args }) {
|
|
|
225
190
|
if (config.hooks) {
|
|
226
191
|
await executeHooks({ hooks: config.hooks, logger });
|
|
227
192
|
}
|
|
228
|
-
logger.consola?.log(`\u26A1Build completed ${logLevel !==
|
|
193
|
+
logger.consola?.log(`\u26A1Build completed ${logger.logLevel !== LogMapper.silent ? c3.dim(inputPath) : ""}`);
|
|
229
194
|
logger.consola?.box({
|
|
230
195
|
title: `${config.name || ""}`,
|
|
231
196
|
message: summary.join(""),
|
|
@@ -237,7 +202,6 @@ async function generate({ input, config, args }) {
|
|
|
237
202
|
});
|
|
238
203
|
}
|
|
239
204
|
|
|
240
|
-
export {
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
//# sourceMappingURL=chunk-CZ3C3WQD.js.map
|
|
205
|
+
export { generate };
|
|
206
|
+
//# sourceMappingURL=chunk-LA3QWVJI.js.map
|
|
207
|
+
//# sourceMappingURL=chunk-LA3QWVJI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/Writables.ts","../src/utils/executeHooks.ts","../src/utils/getErrorCauses.ts","../src/utils/parseHrtimeToSeconds.ts","../src/utils/getSummary.ts","../src/generate.ts"],"names":["c","LogMapper"],"mappings":"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","file":"chunk-LA3QWVJI.js","sourcesContent":["import { Writable } from 'node:stream'\n\nimport c from 'tinyrainbow'\n\nimport * as process from 'node:process'\nimport type { WritableOptions } from 'node:stream'\nimport type { ConsolaInstance } from 'consola'\n\nexport class ConsolaWritable extends Writable {\n consola: ConsolaInstance | undefined\n command: string\n constructor(consola: ConsolaInstance | undefined, command: string, opts?: WritableOptions) {\n super(opts)\n\n this.command = command\n this.consola = consola\n }\n _write(chunk: any, _encoding: BufferEncoding, callback: (error?: Error | null) => void): void {\n process.stdout.write(`${c.dim(chunk?.toString())}`)\n\n callback()\n }\n}\n","import type { Logger } from '@kubb/core/logger'\nimport { execa } from 'execa'\nimport { parseArgsStringToArgv } from 'string-argv'\nimport c from 'tinyrainbow'\n\nimport { ConsolaWritable } from './Writables.ts'\n\nimport type { Config } from '@kubb/core'\nimport { LogMapper } from '@kubb/core/logger'\nimport PQueue from 'p-queue'\n\ntype ExecutingHooksProps = {\n hooks: NonNullable<Config['hooks']>\n logger: Logger\n}\n\nexport async function executeHooks({ hooks, logger }: ExecutingHooksProps): Promise<void> {\n const commands = Array.isArray(hooks.done) ? hooks.done : [hooks.done].filter(Boolean)\n const queue = new PQueue({ concurrency: 1 })\n\n const promises = commands.map(async (command) => {\n const consolaWritable = new ConsolaWritable(logger.consola!, command)\n const [cmd, ..._args] = [...parseArgsStringToArgv(command)]\n\n if (!cmd) {\n return null\n }\n\n await queue.add(async () => {\n logger?.emit('start', `Executing hook ${logger.logLevel !== LogMapper.silent ? c.dim(command) : ''}`)\n\n await execa(cmd, _args, {\n detached: true,\n stdout: logger?.logLevel === LogMapper.silent ? undefined : ['pipe', consolaWritable],\n stripFinalNewline: true,\n })\n\n logger?.emit('success', `Executed hook ${logger.logLevel !== LogMapper.silent ? c.dim(command) : ''}`)\n })\n })\n\n await Promise.all(promises)\n\n logger?.emit('success', 'Executed hooks')\n}\n","export function getErrorCauses(errors: Error[]): Error[] {\n return errors\n .reduce((prev, error) => {\n const causedError = error?.cause as Error\n if (causedError) {\n prev = [...prev, ...getErrorCauses([causedError])]\n return prev\n }\n prev = [...prev, error]\n\n return prev\n }, [] as Error[])\n .filter(Boolean)\n}\n","export function parseHrtimeToSeconds(hrtime: [number, number]): string {\n const seconds = (hrtime[0] + hrtime[1] / 1e9).toFixed(3)\n return seconds\n}\n","import path from 'node:path'\n\nimport { randomCliColour } from '@kubb/core/logger'\n\nimport c from 'tinyrainbow'\n\nimport { parseHrtimeToSeconds } from './parseHrtimeToSeconds.ts'\n\nimport type { Config, PluginManager } from '@kubb/core'\n\ntype SummaryProps = {\n pluginManager: PluginManager\n status: 'success' | 'failed'\n hrStart: [number, number]\n filesCreated: number\n config: Config\n}\n\nexport function getSummary({ pluginManager, filesCreated, status, hrStart, config }: SummaryProps): string[] {\n const logs = new Set<string>()\n const elapsedSeconds = parseHrtimeToSeconds(process.hrtime(hrStart))\n\n const buildStartPlugins = pluginManager.executed\n .filter((item) => item.hookName === 'buildStart' && item.plugin.name !== 'core')\n .map((item) => item.plugin.name)\n\n const buildEndPlugins = pluginManager.executed.filter((item) => item.hookName === 'buildEnd' && item.plugin.name !== 'core').map((item) => item.plugin.name)\n\n const failedPlugins = config.plugins?.filter((plugin) => !buildEndPlugins.includes(plugin.name))?.map((plugin) => plugin.name)\n const pluginsCount = config.plugins?.length || 0\n\n const meta = {\n plugins:\n status === 'success'\n ? `${c.green(`${buildStartPlugins.length} successful`)}, ${pluginsCount} total`\n : `${c.red(`${failedPlugins?.length ?? 1} failed`)}, ${pluginsCount} total`,\n pluginsFailed: status === 'failed' ? failedPlugins?.map((name) => randomCliColour(name))?.join(', ') : undefined,\n filesCreated: filesCreated,\n time: `${c.yellow(`${elapsedSeconds}s`)}`,\n output: path.isAbsolute(config.root) ? path.resolve(config.root, config.output.path) : config.root,\n } as const\n\n logs.add(\n [\n [`${c.bold('Plugins:')} ${meta.plugins}`, true],\n [`${c.dim('Failed:')} ${meta.pluginsFailed || 'none'}`, !!meta.pluginsFailed],\n [`${c.bold('Generated:')} ${meta.filesCreated} files in ${meta.time}`, true],\n [`${c.bold('Output:')} ${meta.output}`, true],\n ]\n .map((item) => {\n if (item.at(1)) {\n return item.at(0)\n }\n return undefined\n })\n .filter(Boolean)\n .join('\\n'),\n )\n\n return [...logs]\n}\n","import { LogMapper } from '@kubb/core/logger'\n\nimport c from 'tinyrainbow'\n\nimport { type Config, safeBuild } from '@kubb/core'\nimport { executeHooks } from './utils/executeHooks.ts'\nimport { getErrorCauses } from './utils/getErrorCauses.ts'\nimport { getSummary } from './utils/getSummary.ts'\n\nimport { createLogger } from '@kubb/core/logger'\nimport { Presets, SingleBar } from 'cli-progress'\nimport type { Args } from './commands/generate.ts'\n\ntype GenerateProps = {\n input?: string\n config: Config\n args: Args\n}\n\nexport async function generate({ input, config, args }: GenerateProps): Promise<void> {\n const logLevel = LogMapper[args.logLevel as keyof typeof LogMapper] || 3\n const logger = createLogger({\n logLevel,\n name: config.name,\n })\n const { root = process.cwd(), ...userConfig } = config\n const inputPath = input ?? ('path' in userConfig.input ? userConfig.input.path : undefined)\n\n if (logger.logLevel !== LogMapper.debug) {\n const progressCache = new Map<string, SingleBar>()\n\n logger.on('progress_start', ({ id, size, message = '' }) => {\n logger.consola?.pauseLogs()\n const payload = { id, message }\n const progressBar = new SingleBar(\n {\n format: '{percentage}% {bar} {value}/{total} | {message}',\n barsize: 30,\n clearOnComplete: true,\n emptyOnZero: true,\n },\n Presets.shades_grey,\n )\n\n if (!progressCache.has(id)) {\n progressCache.set(id, progressBar)\n progressBar.start(size, 1, payload)\n }\n })\n\n logger.on('progress_stop', ({ id }) => {\n progressCache.get(id)?.stop()\n logger.consola?.resumeLogs()\n })\n\n logger.on('progressed', ({ id, message = '' }) => {\n const payload = { id, message }\n\n progressCache.get(id)?.increment(1, payload)\n })\n }\n\n logger.emit('start', `Building ${logger.logLevel !== LogMapper.silent ? c.dim(inputPath) : ''}`)\n\n const definedConfig: Config = {\n root,\n ...userConfig,\n input: inputPath\n ? {\n ...userConfig.input,\n path: inputPath,\n }\n : userConfig.input,\n output: {\n write: true,\n barrelType: 'named',\n extension: {\n '.ts': '.ts',\n },\n ...userConfig.output,\n },\n }\n const hrStart = process.hrtime()\n const { pluginManager, files, error } = await safeBuild({\n config: definedConfig,\n logger,\n })\n\n if (logger.logLevel === LogMapper.debug) {\n logger.consola?.start('Writing logs')\n\n const logFiles = await logger.writeLogs()\n\n logger.consola?.success(`Written logs: \\n${logFiles.join('\\n')}`)\n }\n\n const summary = getSummary({\n filesCreated: files.length,\n pluginManager,\n config: definedConfig,\n status: error ? 'failed' : 'success',\n hrStart,\n })\n\n if (error && logger.consola) {\n logger.consola?.resumeLogs()\n logger.consola.error(`Build failed ${logger.logLevel !== LogMapper.silent ? c.dim(inputPath) : ''}`)\n\n logger.consola.box({\n title: `${config.name || ''}`,\n message: summary.join(''),\n style: {\n padding: 2,\n borderColor: 'red',\n borderStyle: 'rounded',\n },\n })\n\n const errors = getErrorCauses([error])\n if (logger.consola && errors.length && logger.logLevel === LogMapper.debug) {\n errors.forEach((err) => {\n logger.consola?.error(err)\n })\n }\n\n logger.consola?.error(error)\n\n process.exit(0)\n }\n\n if (config.hooks) {\n await executeHooks({ hooks: config.hooks, logger })\n }\n\n logger.consola?.log(`⚡Build completed ${logger.logLevel !== LogMapper.silent ? c.dim(inputPath) : ''}`)\n\n logger.consola?.box({\n title: `${config.name || ''}`,\n message: summary.join(''),\n style: {\n padding: 2,\n borderColor: 'green',\n borderStyle: 'rounded',\n },\n })\n}\n"]}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk53UZIH3L_cjs = require('./chunk-53UZIH3L.cjs');
|
|
4
|
+
var citty = require('citty');
|
|
5
|
+
var utils = require('@kubb/core/utils');
|
|
6
|
+
var cosmiconfig = require('cosmiconfig');
|
|
7
|
+
var jiti = require('jiti');
|
|
8
|
+
var logger = require('@kubb/core/logger');
|
|
9
|
+
var path = require('path');
|
|
10
|
+
var process = require('process');
|
|
11
|
+
var core = require('@kubb/core');
|
|
12
|
+
|
|
13
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
|
|
15
|
+
function _interopNamespace(e) {
|
|
16
|
+
if (e && e.__esModule) return e;
|
|
17
|
+
var n = Object.create(null);
|
|
18
|
+
if (e) {
|
|
19
|
+
Object.keys(e).forEach(function (k) {
|
|
20
|
+
if (k !== 'default') {
|
|
21
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
22
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
23
|
+
enumerable: true,
|
|
24
|
+
get: function () { return e[k]; }
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
n.default = e;
|
|
30
|
+
return Object.freeze(n);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
var path__default = /*#__PURE__*/_interopDefault(path);
|
|
34
|
+
var process__namespace = /*#__PURE__*/_interopNamespace(process);
|
|
35
|
+
|
|
36
|
+
// src/commands/generate.ts
|
|
37
|
+
chunk53UZIH3L_cjs.init_cjs_shims();
|
|
38
|
+
|
|
39
|
+
// src/utils/getConfig.ts
|
|
40
|
+
chunk53UZIH3L_cjs.init_cjs_shims();
|
|
41
|
+
|
|
42
|
+
// src/utils/getPlugins.ts
|
|
43
|
+
chunk53UZIH3L_cjs.init_cjs_shims();
|
|
44
|
+
function isJSONPlugins(plugins) {
|
|
45
|
+
return !!plugins?.some((plugin) => {
|
|
46
|
+
return Array.isArray(plugin) && typeof plugin?.at(0) === "string";
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function isObjectPlugins(plugins) {
|
|
50
|
+
return plugins instanceof Object && !Array.isArray(plugins);
|
|
51
|
+
}
|
|
52
|
+
function getPlugins(plugins) {
|
|
53
|
+
if (isObjectPlugins(plugins)) {
|
|
54
|
+
throw new Error("Object plugins are not supported anymore, best to use http://kubb.dev/getting-started/configure#json");
|
|
55
|
+
}
|
|
56
|
+
if (isJSONPlugins(plugins)) {
|
|
57
|
+
throw new Error("JSON plugins are not supported anymore, best to use http://kubb.dev/getting-started/configure#json");
|
|
58
|
+
}
|
|
59
|
+
return Promise.resolve(plugins);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// src/utils/getConfig.ts
|
|
63
|
+
async function getConfig(result, args2) {
|
|
64
|
+
const config = result?.config;
|
|
65
|
+
let kubbUserConfig = Promise.resolve(config);
|
|
66
|
+
if (typeof config === "function") {
|
|
67
|
+
const possiblePromise = config(args2);
|
|
68
|
+
if (utils.isPromise(possiblePromise)) {
|
|
69
|
+
kubbUserConfig = possiblePromise;
|
|
70
|
+
}
|
|
71
|
+
kubbUserConfig = Promise.resolve(possiblePromise);
|
|
72
|
+
}
|
|
73
|
+
let JSONConfig = await kubbUserConfig;
|
|
74
|
+
if (Array.isArray(JSONConfig)) {
|
|
75
|
+
const promises = JSONConfig.map(async (item) => {
|
|
76
|
+
return {
|
|
77
|
+
...item,
|
|
78
|
+
plugins: item.plugins ? await getPlugins(item.plugins) : void 0
|
|
79
|
+
};
|
|
80
|
+
});
|
|
81
|
+
return Promise.all(promises);
|
|
82
|
+
}
|
|
83
|
+
JSONConfig = {
|
|
84
|
+
...JSONConfig,
|
|
85
|
+
plugins: JSONConfig.plugins ? await getPlugins(JSONConfig.plugins) : void 0
|
|
86
|
+
};
|
|
87
|
+
return JSONConfig;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// src/utils/getCosmiConfig.ts
|
|
91
|
+
chunk53UZIH3L_cjs.init_cjs_shims();
|
|
92
|
+
var tsLoader = async (configFile) => {
|
|
93
|
+
const jiti$1 = jiti.createJiti(chunk53UZIH3L_cjs.importMetaUrl, { jsx: true });
|
|
94
|
+
const mod = await jiti$1.import(configFile);
|
|
95
|
+
return mod;
|
|
96
|
+
};
|
|
97
|
+
async function getCosmiConfig(moduleName, config) {
|
|
98
|
+
const searchPlaces = [
|
|
99
|
+
"package.json",
|
|
100
|
+
`.${moduleName}rc`,
|
|
101
|
+
`.${moduleName}rc.json`,
|
|
102
|
+
`.${moduleName}rc.yaml`,
|
|
103
|
+
`.${moduleName}rc.yml`,
|
|
104
|
+
`.${moduleName}rc.ts`,
|
|
105
|
+
`.${moduleName}rc.js`,
|
|
106
|
+
`.${moduleName}rc.mjs`,
|
|
107
|
+
`.${moduleName}rc.cjs`,
|
|
108
|
+
`${moduleName}.config.ts`,
|
|
109
|
+
`${moduleName}.config.js`,
|
|
110
|
+
`${moduleName}.config.mjs`,
|
|
111
|
+
`${moduleName}.config.cjs`
|
|
112
|
+
];
|
|
113
|
+
const explorer = cosmiconfig.cosmiconfig(moduleName, {
|
|
114
|
+
cache: false,
|
|
115
|
+
searchPlaces: [
|
|
116
|
+
...searchPlaces.map((searchPlace) => {
|
|
117
|
+
return `.config/${searchPlace}`;
|
|
118
|
+
}),
|
|
119
|
+
...searchPlaces.map((searchPlace) => {
|
|
120
|
+
return `configs/${searchPlace}`;
|
|
121
|
+
}),
|
|
122
|
+
...searchPlaces
|
|
123
|
+
],
|
|
124
|
+
loaders: {
|
|
125
|
+
".ts": tsLoader
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
const result = config ? await explorer.load(config) : await explorer.search();
|
|
129
|
+
if (result?.isEmpty || !result || !result.config) {
|
|
130
|
+
throw new Error("Config not defined, create a kubb.config.js or pass through your config with the option --config");
|
|
131
|
+
}
|
|
132
|
+
return result;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// src/utils/watcher.ts
|
|
136
|
+
chunk53UZIH3L_cjs.init_cjs_shims();
|
|
137
|
+
async function startWatcher(path2, cb) {
|
|
138
|
+
const { watch } = await import('chokidar');
|
|
139
|
+
const logger$1 = logger.createLogger();
|
|
140
|
+
const ignored = "**/{.git,node_modules}/**";
|
|
141
|
+
const watcher = watch(path2, {
|
|
142
|
+
ignorePermissionErrors: true,
|
|
143
|
+
ignored
|
|
144
|
+
});
|
|
145
|
+
watcher.on("all", (type, file) => {
|
|
146
|
+
logger$1?.emit("info", chunk53UZIH3L_cjs.p.yellow(chunk53UZIH3L_cjs.p.bold(`Change detected: ${type} ${file}`)));
|
|
147
|
+
try {
|
|
148
|
+
cb(path2);
|
|
149
|
+
} catch (e) {
|
|
150
|
+
logger$1?.emit("warning", chunk53UZIH3L_cjs.p.red("Watcher failed"));
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
var args = {
|
|
155
|
+
config: {
|
|
156
|
+
type: "string",
|
|
157
|
+
description: "Path to the Kubb config",
|
|
158
|
+
alias: "c"
|
|
159
|
+
},
|
|
160
|
+
logLevel: {
|
|
161
|
+
type: "string",
|
|
162
|
+
description: "Info, silent or debug",
|
|
163
|
+
alias: "l",
|
|
164
|
+
default: "info",
|
|
165
|
+
valueHint: "silent|info|debug"
|
|
166
|
+
},
|
|
167
|
+
watch: {
|
|
168
|
+
type: "boolean",
|
|
169
|
+
description: "Watch mode based on the input file",
|
|
170
|
+
alias: "w",
|
|
171
|
+
default: false
|
|
172
|
+
},
|
|
173
|
+
debug: {
|
|
174
|
+
type: "boolean",
|
|
175
|
+
description: "Override logLevel to debug",
|
|
176
|
+
alias: "d",
|
|
177
|
+
default: false
|
|
178
|
+
},
|
|
179
|
+
help: {
|
|
180
|
+
type: "boolean",
|
|
181
|
+
description: "Show help",
|
|
182
|
+
alias: "h",
|
|
183
|
+
default: false
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
var command = citty.defineCommand({
|
|
187
|
+
meta: {
|
|
188
|
+
name: "generate",
|
|
189
|
+
description: "[input] Generate files based on a 'kubb.config.ts' file"
|
|
190
|
+
},
|
|
191
|
+
args,
|
|
192
|
+
async run(commandContext) {
|
|
193
|
+
const { args: args2 } = commandContext;
|
|
194
|
+
const input = args2._[0];
|
|
195
|
+
if (args2.help) {
|
|
196
|
+
citty.showUsage(command);
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
if (args2.debug) {
|
|
200
|
+
args2.logLevel = "debug";
|
|
201
|
+
}
|
|
202
|
+
const logLevel = logger.LogMapper[args2.logLevel] || 3;
|
|
203
|
+
const logger$1 = logger.createLogger({
|
|
204
|
+
logLevel
|
|
205
|
+
});
|
|
206
|
+
logger$1.emit("start", "Loading config");
|
|
207
|
+
const result = await getCosmiConfig("kubb", args2.config);
|
|
208
|
+
logger$1.emit("success", `Config loaded(${chunk53UZIH3L_cjs.p.dim(path__default.default.relative(process__namespace.cwd(), result.filepath))})`);
|
|
209
|
+
const config = await getConfig(result, args2);
|
|
210
|
+
if (args2.watch) {
|
|
211
|
+
if (Array.isArray(config)) {
|
|
212
|
+
throw new Error("Cannot use watcher with multiple Configs(array)");
|
|
213
|
+
}
|
|
214
|
+
if (core.isInputPath(config)) {
|
|
215
|
+
return startWatcher([input || config.input.path], async (paths) => {
|
|
216
|
+
await chunk53UZIH3L_cjs.generate({ config, args: args2, input });
|
|
217
|
+
logger$1.emit("start", chunk53UZIH3L_cjs.p.yellow(chunk53UZIH3L_cjs.p.bold(`Watching for changes in ${paths.join(" and ")}`)));
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
if (Array.isArray(config)) {
|
|
222
|
+
const promiseManager = new core.PromiseManager();
|
|
223
|
+
const promises = config.map((item) => () => chunk53UZIH3L_cjs.generate({ input, config: item, args: args2 }));
|
|
224
|
+
return promiseManager.run("seq", promises);
|
|
225
|
+
}
|
|
226
|
+
await chunk53UZIH3L_cjs.generate({ input, config, args: args2 });
|
|
227
|
+
if (globalThis.isDevtoolsEnabled) {
|
|
228
|
+
const restart = await logger$1.consola?.prompt("Restart(could be used to validate the profiler)?", {
|
|
229
|
+
type: "confirm",
|
|
230
|
+
initial: false
|
|
231
|
+
});
|
|
232
|
+
if (restart) {
|
|
233
|
+
await command.run?.(commandContext);
|
|
234
|
+
} else {
|
|
235
|
+
process__namespace.exit(1);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
});
|
|
240
|
+
var generate_default = command;
|
|
241
|
+
|
|
242
|
+
module.exports = generate_default;
|
|
243
|
+
//# sourceMappingURL=generate-GY5YTAID.cjs.map
|
|
244
|
+
//# sourceMappingURL=generate-GY5YTAID.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/commands/generate.ts","../src/utils/getConfig.ts","../src/utils/getPlugins.ts","../src/utils/getCosmiConfig.ts","../src/utils/watcher.ts"],"names":["init_cjs_shims","args","isPromise","jiti","createJiti","importMetaUrl","cosmiconfig","path","logger","createLogger","p","defineCommand","showUsage","LogMapper","process","isInputPath","generate","PromiseManager"],"mappings":"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","file":"generate-GY5YTAID.cjs","sourcesContent":["import { defineCommand, showUsage } from 'citty'\nimport type { ArgsDef, ParsedArgs } from 'citty'\nimport { execa } from 'execa'\nimport c from 'tinyrainbow'\n\nimport { getConfig } from '../utils/getConfig.ts'\nimport { getCosmiConfig } from '../utils/getCosmiConfig.ts'\nimport { startWatcher } from '../utils/watcher.ts'\n\nimport path from 'node:path'\nimport * as process from 'node:process'\nimport { PromiseManager, isInputPath } from '@kubb/core'\nimport { LogMapper, createLogger } from '@kubb/core/logger'\nimport { generate } from '../generate.ts'\n\ndeclare global {\n var isDevtoolsEnabled: any\n}\n\nconst args = {\n config: {\n type: 'string',\n description: 'Path to the Kubb config',\n alias: 'c',\n },\n logLevel: {\n type: 'string',\n description: 'Info, silent or debug',\n alias: 'l',\n default: 'info',\n valueHint: 'silent|info|debug',\n },\n watch: {\n type: 'boolean',\n description: 'Watch mode based on the input file',\n alias: 'w',\n default: false,\n },\n debug: {\n type: 'boolean',\n description: 'Override logLevel to debug',\n alias: 'd',\n default: false,\n },\n help: {\n type: 'boolean',\n description: 'Show help',\n alias: 'h',\n default: false,\n },\n} as const satisfies ArgsDef\n\nexport type Args = ParsedArgs<typeof args>\n\nconst command = defineCommand({\n meta: {\n name: 'generate',\n description: \"[input] Generate files based on a 'kubb.config.ts' file\",\n },\n args,\n async run(commandContext) {\n const { args } = commandContext\n const input = args._[0]\n\n if (args.help) {\n showUsage(command)\n return\n }\n\n if (args.debug) {\n args.logLevel = 'debug'\n }\n\n const logLevel = LogMapper[args.logLevel as keyof typeof LogMapper] || 3\n const logger = createLogger({\n logLevel,\n })\n\n logger.emit('start', 'Loading config')\n\n const result = await getCosmiConfig('kubb', args.config)\n logger.emit('success', `Config loaded(${c.dim(path.relative(process.cwd(), result.filepath))})`)\n\n const config = await getConfig(result, args)\n\n if (args.watch) {\n if (Array.isArray(config)) {\n throw new Error('Cannot use watcher with multiple Configs(array)')\n }\n\n if (isInputPath(config)) {\n return startWatcher([input || config.input.path], async (paths) => {\n await generate({ config, args, input })\n logger.emit('start', c.yellow(c.bold(`Watching for changes in ${paths.join(' and ')}`)))\n })\n }\n }\n\n if (Array.isArray(config)) {\n const promiseManager = new PromiseManager()\n const promises = config.map((item) => () => generate({ input, config: item, args }))\n\n return promiseManager.run('seq', promises)\n }\n\n await generate({ input, config, args })\n\n if (globalThis.isDevtoolsEnabled) {\n const restart = await logger.consola?.prompt('Restart(could be used to validate the profiler)?', {\n type: 'confirm',\n initial: false,\n })\n\n if (restart) {\n await command.run?.(commandContext)\n } else {\n process.exit(1)\n }\n }\n },\n})\n\nexport default command\n","import { isPromise } from '@kubb/core/utils'\n\nimport { getPlugins } from './getPlugins.ts'\n\nimport type { Config, UserConfig } from '@kubb/core'\nimport type { Args } from '../commands/generate.ts'\nimport type { CosmiconfigResult } from './getCosmiConfig.ts'\n\n/**\n * Converting UserConfig to Config without a change in the object beside the JSON convert.\n */\nexport async function getConfig(result: CosmiconfigResult, args: Args): Promise<Array<Config> | Config> {\n const config = result?.config\n let kubbUserConfig = Promise.resolve(config) as Promise<UserConfig | Array<UserConfig>>\n\n // for ts or js files\n if (typeof config === 'function') {\n const possiblePromise = config(args)\n if (isPromise(possiblePromise)) {\n kubbUserConfig = possiblePromise\n }\n kubbUserConfig = Promise.resolve(possiblePromise)\n }\n\n let JSONConfig = await kubbUserConfig\n\n if (Array.isArray(JSONConfig)) {\n const promises = JSONConfig.map(async (item) => {\n return {\n ...item,\n plugins: item.plugins ? await getPlugins(item.plugins) : undefined,\n }\n }) as unknown as Array<Promise<Config>>\n\n return Promise.all(promises)\n }\n\n JSONConfig = {\n ...JSONConfig,\n plugins: JSONConfig.plugins ? await getPlugins(JSONConfig.plugins) : undefined,\n }\n\n return JSONConfig as Config\n}\n","import type { UserConfig } from '@kubb/core'\n\nfunction isJSONPlugins(plugins: UserConfig['plugins']) {\n return !!(plugins as any)?.some((plugin: any) => {\n return Array.isArray(plugin) && typeof plugin?.at(0) === 'string'\n })\n}\n\nfunction isObjectPlugins(plugins: UserConfig['plugins']): plugins is any {\n return plugins instanceof Object && !Array.isArray(plugins)\n}\n\nexport function getPlugins(plugins: UserConfig['plugins']): Promise<UserConfig['plugins']> {\n if (isObjectPlugins(plugins)) {\n throw new Error('Object plugins are not supported anymore, best to use http://kubb.dev/getting-started/configure#json')\n }\n\n if (isJSONPlugins(plugins)) {\n throw new Error('JSON plugins are not supported anymore, best to use http://kubb.dev/getting-started/configure#json')\n }\n\n return Promise.resolve(plugins)\n}\n","import { cosmiconfig } from 'cosmiconfig'\nimport { createJiti } from 'jiti'\n\nimport type { UserConfig, defineConfig } from '@kubb/core'\n\nexport type CosmiconfigResult = {\n filepath: string\n isEmpty?: boolean\n config: ReturnType<typeof defineConfig> | UserConfig\n}\n\nconst tsLoader = async (configFile: string) => {\n const jiti = createJiti(import.meta.url, { jsx: true })\n\n const mod = await jiti.import(configFile)\n\n return mod\n}\n\nexport async function getCosmiConfig(moduleName: string, config?: string): Promise<CosmiconfigResult> {\n const searchPlaces = [\n 'package.json',\n `.${moduleName}rc`,\n `.${moduleName}rc.json`,\n `.${moduleName}rc.yaml`,\n `.${moduleName}rc.yml`,\n\n `.${moduleName}rc.ts`,\n `.${moduleName}rc.js`,\n `.${moduleName}rc.mjs`,\n `.${moduleName}rc.cjs`,\n\n `${moduleName}.config.ts`,\n `${moduleName}.config.js`,\n `${moduleName}.config.mjs`,\n `${moduleName}.config.cjs`,\n ]\n const explorer = cosmiconfig(moduleName, {\n cache: false,\n searchPlaces: [\n ...searchPlaces.map((searchPlace) => {\n return `.config/${searchPlace}`\n }),\n ...searchPlaces.map((searchPlace) => {\n return `configs/${searchPlace}`\n }),\n ...searchPlaces,\n ],\n loaders: {\n '.ts': tsLoader,\n },\n })\n\n const result = config ? await explorer.load(config) : await explorer.search()\n\n if (result?.isEmpty || !result || !result.config) {\n throw new Error('Config not defined, create a kubb.config.js or pass through your config with the option --config')\n }\n\n return result as CosmiconfigResult\n}\n","import { createLogger } from '@kubb/core/logger'\nimport c from 'tinyrainbow'\n\nexport async function startWatcher(path: string[], cb: (path: string[]) => Promise<void>): Promise<void> {\n const { watch } = await import('chokidar')\n const logger = createLogger()\n\n const ignored = '**/{.git,node_modules}/**'\n\n const watcher = watch(path, {\n ignorePermissionErrors: true,\n ignored,\n })\n watcher.on('all', (type, file) => {\n logger?.emit('info', c.yellow(c.bold(`Change detected: ${type} ${file}`)))\n\n try {\n cb(path)\n } catch (e) {\n logger?.emit('warning', c.red('Watcher failed'))\n }\n })\n}\n"]}
|