@kubb/cli 3.0.0-alpha.5 → 3.0.0-alpha.6
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-WJ72QPXS.js → chunk-7EOWZACL.js} +44 -36
- package/dist/chunk-7EOWZACL.js.map +1 -0
- package/dist/{chunk-H3BA33NF.cjs → chunk-MXBF3FNZ.cjs} +46 -37
- package/dist/chunk-MXBF3FNZ.cjs.map +1 -0
- package/dist/{generate-LZOUPH5K.js → generate-B6YVAUQK.js} +2 -2
- package/dist/{generate-M3IAQ4OY.cjs → generate-D5R4IXLS.cjs} +15 -15
- package/dist/{generate-M3IAQ4OY.cjs.map → generate-D5R4IXLS.cjs.map} +1 -1
- package/dist/index.cjs +6 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/package.json +6 -6
- package/src/generate.ts +35 -23
- package/src/utils/Writables.ts +2 -2
- package/src/utils/executeHooks.ts +2 -6
- package/src/utils/getSummary.ts +5 -6
- package/src/utils/writeLog.ts +13 -3
- package/dist/chunk-H3BA33NF.cjs.map +0 -1
- package/dist/chunk-WJ72QPXS.js.map +0 -1
- /package/dist/{generate-LZOUPH5K.js.map → generate-B6YVAUQK.js.map} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/generate.ts
|
|
2
|
-
import {
|
|
2
|
+
import { LogMapper as LogMapper2, createLogger } from "@kubb/core/logger";
|
|
3
3
|
import c4 from "tinyrainbow";
|
|
4
4
|
import { safeBuild } from "@kubb/core";
|
|
5
5
|
|
|
@@ -19,7 +19,7 @@ var ConsolaWritable = class extends Writable {
|
|
|
19
19
|
this.consola = consola;
|
|
20
20
|
}
|
|
21
21
|
_write(chunk, _encoding, callback) {
|
|
22
|
-
process2.stdout.write(c.dim(chunk?.toString()));
|
|
22
|
+
process2.stdout.write(`${c.dim(chunk?.toString())}`);
|
|
23
23
|
callback();
|
|
24
24
|
}
|
|
25
25
|
};
|
|
@@ -43,14 +43,11 @@ async function executeHooks({ hooks, logger }) {
|
|
|
43
43
|
stdout: logger.logLevel === LogMapper.silent ? void 0 : ["pipe", consolaWritable],
|
|
44
44
|
stripFinalNewline: true
|
|
45
45
|
});
|
|
46
|
-
logger.emit("success", `
|
|
47
|
-
if (subProcess) {
|
|
48
|
-
logger.emit("debug", [subProcess.stdout]);
|
|
49
|
-
}
|
|
46
|
+
logger.emit("success", `Executed hook ${logger.logLevel !== LogMapper.silent ? c2.dim(command) : ""}`);
|
|
50
47
|
});
|
|
51
48
|
});
|
|
52
49
|
await Promise.all(promises);
|
|
53
|
-
logger.emit("success", "
|
|
50
|
+
logger.emit("success", "Executed hooks");
|
|
54
51
|
}
|
|
55
52
|
|
|
56
53
|
// src/utils/getErrorCauses.ts
|
|
@@ -78,7 +75,7 @@ function parseHrtimeToSeconds(hrtime) {
|
|
|
78
75
|
}
|
|
79
76
|
|
|
80
77
|
// src/utils/getSummary.ts
|
|
81
|
-
function getSummary({ pluginManager, status, hrStart, config
|
|
78
|
+
function getSummary({ pluginManager, status, hrStart, config }) {
|
|
82
79
|
const logs = [];
|
|
83
80
|
const elapsedSeconds = parseHrtimeToSeconds(process.hrtime(hrStart));
|
|
84
81
|
const buildStartPlugins = pluginManager.executed.filter((item) => item.hookName === "buildStart" && item.plugin.name !== "core").map((item) => item.plugin.name);
|
|
@@ -101,15 +98,14 @@ function getSummary({ pluginManager, status, hrStart, config, logger }) {
|
|
|
101
98
|
plugins: status === "success" ? `${c3.green(`${buildStartPlugins.length} successful`)}, ${pluginsCount} total` : `${c3.red(`${failedPlugins?.length ?? 1} failed`)}, ${pluginsCount} total`,
|
|
102
99
|
pluginsFailed: status === "failed" ? failedPlugins?.map((name) => randomCliColour(name))?.join(", ") : void 0,
|
|
103
100
|
filesCreated: files.length,
|
|
104
|
-
time: `${c3.yellow(`${elapsedSeconds}s`)}
|
|
101
|
+
time: `${c3.yellow(`${elapsedSeconds}s`)}`,
|
|
105
102
|
output: path.isAbsolute(config.root) ? path.resolve(config.root, config.output.path) : config.root
|
|
106
103
|
};
|
|
107
104
|
logs.push(
|
|
108
105
|
[
|
|
109
106
|
[`${c3.bold("Plugins:")} ${meta.plugins}`, true],
|
|
110
107
|
[`${c3.dim("Failed:")} ${meta.pluginsFailed || "none"}`, !!meta.pluginsFailed],
|
|
111
|
-
[`${c3.bold("Generated:")} ${meta.filesCreated} files`, true],
|
|
112
|
-
[`${c3.bold("Time:")} ${meta.time}`, true],
|
|
108
|
+
[`${c3.bold("Generated:")} ${meta.filesCreated} files in ${meta.time}`, true],
|
|
113
109
|
[`${c3.bold("Output:")} ${meta.output}`, true]
|
|
114
110
|
].map((item) => {
|
|
115
111
|
if (item.at(1)) {
|
|
@@ -124,49 +120,61 @@ function getSummary({ pluginManager, status, hrStart, config, logger }) {
|
|
|
124
120
|
// src/utils/writeLog.ts
|
|
125
121
|
import { resolve } from "path";
|
|
126
122
|
import { read, write } from "@kubb/fs";
|
|
127
|
-
async function writeLog(data) {
|
|
123
|
+
async function writeLog({ data, override, fileName = "kubb.log" }) {
|
|
128
124
|
if (data.trim() === "") {
|
|
129
125
|
return void 0;
|
|
130
126
|
}
|
|
131
|
-
const path2 = resolve(process.cwd(),
|
|
127
|
+
const path2 = resolve(process.cwd(), fileName);
|
|
132
128
|
let previousLogs = "";
|
|
133
129
|
try {
|
|
134
130
|
previousLogs = await read(resolve(path2));
|
|
135
131
|
} catch (_err) {
|
|
136
132
|
}
|
|
137
|
-
|
|
133
|
+
if (override) {
|
|
134
|
+
return write(path2, data.trim(), { sanity: false });
|
|
135
|
+
}
|
|
136
|
+
return write(path2, [previousLogs, data.trim()].filter(Boolean).join("\n"), { sanity: false });
|
|
138
137
|
}
|
|
139
138
|
|
|
140
139
|
// src/generate.ts
|
|
141
|
-
import {
|
|
142
|
-
import "@kubb/fs";
|
|
143
|
-
import { relative } from "path";
|
|
140
|
+
import { Presets, SingleBar } from "cli-progress";
|
|
144
141
|
async function generate({ input, config, args }) {
|
|
145
142
|
const logLevel = LogMapper2[args.logLevel] || 3;
|
|
146
143
|
const logger = createLogger({
|
|
147
144
|
logLevel,
|
|
148
145
|
name: config.name
|
|
149
146
|
});
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
147
|
+
const progressBars = {};
|
|
148
|
+
logger.on("progress_start", ({ id, size }) => {
|
|
149
|
+
logger.consola?.pauseLogs();
|
|
150
|
+
if (!progressBars[id]) {
|
|
151
|
+
progressBars[id] = new SingleBar(
|
|
152
|
+
{
|
|
153
|
+
format: logLevel === LogMapper2.info ? "{percentage}% {bar} {value}/{total} {id} | {data}" : "{percentage}% {bar} ETA: {eta}s",
|
|
154
|
+
barsize: 25,
|
|
155
|
+
clearOnComplete: true
|
|
156
|
+
},
|
|
157
|
+
Presets.shades_grey
|
|
158
|
+
);
|
|
159
|
+
progressBars[id].start(size, 1, { id, data: "" });
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
logger.on("progress_stop", ({ id }) => {
|
|
163
|
+
const progressBar = progressBars[id];
|
|
164
|
+
progressBar?.stop();
|
|
165
|
+
logger.consola?.resumeLogs();
|
|
166
|
+
});
|
|
167
|
+
logger.on("progress", ({ id, count, data = "" }) => {
|
|
168
|
+
const progressBar = progressBars[id];
|
|
169
|
+
const payload = { id, data };
|
|
170
|
+
if (count) {
|
|
171
|
+
progressBar?.update(count, payload);
|
|
164
172
|
} else {
|
|
165
|
-
|
|
173
|
+
progressBar?.increment(1, payload);
|
|
166
174
|
}
|
|
167
175
|
});
|
|
168
|
-
logger.on("debug", async (
|
|
169
|
-
await writeLog(
|
|
176
|
+
logger.on("debug", async ({ logs, override, fileName }) => {
|
|
177
|
+
await writeLog({ data: logs.join("\n"), fileName, override });
|
|
170
178
|
});
|
|
171
179
|
const { root = process.cwd(), ...userConfig } = config;
|
|
172
180
|
const inputPath = input ?? ("path" in userConfig.input ? userConfig.input.path : void 0);
|
|
@@ -218,7 +226,7 @@ async function generate({ input, config, args }) {
|
|
|
218
226
|
if (config.hooks) {
|
|
219
227
|
await executeHooks({ hooks: config.hooks, logger });
|
|
220
228
|
}
|
|
221
|
-
logger.consola?.log(`\
|
|
229
|
+
logger.consola?.log(`\u26A1Build completed ${logLevel !== LogMapper2.silent ? c4.dim(inputPath) : ""}`);
|
|
222
230
|
logger.consola?.box({
|
|
223
231
|
title: `${config.name || ""}`,
|
|
224
232
|
message: summary.join(""),
|
|
@@ -233,4 +241,4 @@ async function generate({ input, config, args }) {
|
|
|
233
241
|
export {
|
|
234
242
|
generate
|
|
235
243
|
};
|
|
236
|
-
//# sourceMappingURL=chunk-
|
|
244
|
+
//# sourceMappingURL=chunk-7EOWZACL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/generate.ts","../src/utils/executeHooks.ts","../src/utils/Writables.ts","../src/utils/getErrorCauses.ts","../src/utils/getSummary.ts","../src/utils/parseHrtimeToSeconds.ts","../src/utils/writeLog.ts"],"sourcesContent":["import { LogMapper, createLogger } from '@kubb/core/logger'\n\nimport c from 'tinyrainbow'\n\nimport { type Config, safeBuild } from '@kubb/core'\nimport type { Args } from './commands/generate.ts'\nimport { executeHooks } from './utils/executeHooks.ts'\nimport { getErrorCauses } from './utils/getErrorCauses.ts'\nimport { getSummary } from './utils/getSummary.ts'\nimport { writeLog } from './utils/writeLog.ts'\n\nimport { relative } from 'node:path'\nimport { Presets, SingleBar } from 'cli-progress'\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\n const progressBars: Record<string, SingleBar> = {}\n\n logger.on('progress_start', ({ id, size }) => {\n logger.consola?.pauseLogs()\n if (!progressBars[id]) {\n progressBars[id] = new SingleBar(\n {\n format: logLevel === LogMapper.info ? '{percentage}% {bar} {value}/{total} {id} | {data}' : '{percentage}% {bar} ETA: {eta}s',\n barsize: 25,\n clearOnComplete: true,\n },\n Presets.shades_grey,\n )\n progressBars[id].start(size, 1, { id, data: '' })\n }\n })\n\n logger.on('progress_stop', ({ id }) => {\n const progressBar = progressBars[id]\n progressBar?.stop()\n logger.consola?.resumeLogs()\n })\n\n logger.on('progress', ({ id, count, data = '' }) => {\n const progressBar = progressBars[id]\n const payload = { id, data }\n\n if (count) {\n progressBar?.update(count, payload)\n } else {\n progressBar?.increment(1, payload)\n }\n })\n\n logger.on('debug', async ({ logs, override, fileName }) => {\n await writeLog({ data: logs.join('\\n'), fileName, override })\n })\n\n const { root = process.cwd(), ...userConfig } = config\n const inputPath = input ?? ('path' in userConfig.input ? userConfig.input.path : undefined)\n\n logger.emit('start', `Building ${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 ...userConfig.output,\n },\n }\n const hrStart = process.hrtime()\n const { pluginManager, error } = await safeBuild({\n config: definedConfig,\n logger,\n })\n\n const summary = getSummary({\n pluginManager,\n config: definedConfig,\n status: error ? 'failed' : 'success',\n hrStart,\n logger,\n })\n\n if (error && logger.consola) {\n logger.consola.error(`Build failed ${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 && 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 ${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","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 const subProcess = 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","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\n command: string\n constructor(consola: ConsolaInstance, 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","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","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, FileMetaBase, PluginManager } from '@kubb/core'\nimport type { Logger } from '@kubb/core/logger'\n\ntype SummaryProps = {\n pluginManager: PluginManager\n status: 'success' | 'failed'\n hrStart: [number, number]\n config: Config\n logger: Logger\n}\n\nexport function getSummary({ pluginManager, status, hrStart, config }: SummaryProps): string[] {\n const logs: 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 const files = pluginManager.fileManager.files.sort((a: { meta?: FileMetaBase }, b: { meta?: FileMetaBase }) => {\n if (!a.meta?.pluginKey?.[0] || !b.meta?.pluginKey?.[0]) {\n return 0\n }\n if (a.meta?.pluginKey?.[0]?.length < b.meta?.pluginKey?.[0]?.length) {\n return 1\n }\n if (a.meta?.pluginKey?.[0]?.length > b.meta?.pluginKey?.[0]?.length) {\n return -1\n }\n return 0\n })\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: files.length,\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.push(\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","export function parseHrtimeToSeconds(hrtime: [number, number]): string {\n const seconds = (hrtime[0] + hrtime[1] / 1e9).toFixed(3)\n return seconds\n}\n","import { resolve } from 'node:path'\nimport { read, write } from '@kubb/fs'\n\ntype Props = {\n data: string\n fileName?: string\n override?: boolean\n}\n\nexport async function writeLog({ data, override, fileName = 'kubb.log' }: Props): Promise<string | undefined> {\n if (data.trim() === '') {\n return undefined\n }\n const path = resolve(process.cwd(), fileName)\n let previousLogs = ''\n\n try {\n previousLogs = await read(resolve(path))\n } catch (_err) {\n /* empty */\n }\n\n if (override) {\n return write(path, data.trim(), { sanity: false })\n }\n\n return write(path, [previousLogs, data.trim()].filter(Boolean).join('\\n'), { sanity: false })\n}\n"],"mappings":"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","names":["LogMapper","c","c","process","c","c","c","path","LogMapper","c"]}
|
|
@@ -7798,7 +7798,7 @@ var ConsolaWritable = class extends _stream.Writable {
|
|
|
7798
7798
|
this.consola = consola;
|
|
7799
7799
|
}
|
|
7800
7800
|
_write(chunk, _encoding, callback) {
|
|
7801
|
-
process10.stdout.write(p2.dim(_optionalChain([chunk, 'optionalAccess', _38 => _38.toString, 'call', _39 => _39()])));
|
|
7801
|
+
process10.stdout.write(`${p2.dim(_optionalChain([chunk, 'optionalAccess', _38 => _38.toString, 'call', _39 => _39()]))}`);
|
|
7802
7802
|
callback();
|
|
7803
7803
|
}
|
|
7804
7804
|
};
|
|
@@ -8281,14 +8281,11 @@ async function executeHooks({ hooks, logger }) {
|
|
|
8281
8281
|
stdout: logger.logLevel === _logger.LogMapper.silent ? void 0 : ["pipe", consolaWritable],
|
|
8282
8282
|
stripFinalNewline: true
|
|
8283
8283
|
});
|
|
8284
|
-
logger.emit("success", `
|
|
8285
|
-
if (subProcess) {
|
|
8286
|
-
logger.emit("debug", [subProcess.stdout]);
|
|
8287
|
-
}
|
|
8284
|
+
logger.emit("success", `Executed hook ${logger.logLevel !== _logger.LogMapper.silent ? p2.dim(command) : ""}`);
|
|
8288
8285
|
});
|
|
8289
8286
|
});
|
|
8290
8287
|
await Promise.all(promises);
|
|
8291
|
-
logger.emit("success", "
|
|
8288
|
+
logger.emit("success", "Executed hooks");
|
|
8292
8289
|
}
|
|
8293
8290
|
|
|
8294
8291
|
// src/utils/getErrorCauses.ts
|
|
@@ -8318,7 +8315,7 @@ function parseHrtimeToSeconds(hrtime2) {
|
|
|
8318
8315
|
}
|
|
8319
8316
|
|
|
8320
8317
|
// src/utils/getSummary.ts
|
|
8321
|
-
function getSummary({ pluginManager, status, hrStart, config
|
|
8318
|
+
function getSummary({ pluginManager, status, hrStart, config }) {
|
|
8322
8319
|
const logs = [];
|
|
8323
8320
|
const elapsedSeconds = parseHrtimeToSeconds(process.hrtime(hrStart));
|
|
8324
8321
|
const buildStartPlugins = pluginManager.executed.filter((item) => item.hookName === "buildStart" && item.plugin.name !== "core").map((item) => item.plugin.name);
|
|
@@ -8341,15 +8338,14 @@ function getSummary({ pluginManager, status, hrStart, config, logger }) {
|
|
|
8341
8338
|
plugins: status === "success" ? `${p2.green(`${buildStartPlugins.length} successful`)}, ${pluginsCount} total` : `${p2.red(`${_nullishCoalesce(_optionalChain([failedPlugins, 'optionalAccess', _80 => _80.length]), () => ( 1))} failed`)}, ${pluginsCount} total`,
|
|
8342
8339
|
pluginsFailed: status === "failed" ? _optionalChain([failedPlugins, 'optionalAccess', _81 => _81.map, 'call', _82 => _82((name) => _logger.randomCliColour.call(void 0, name)), 'optionalAccess', _83 => _83.join, 'call', _84 => _84(", ")]) : void 0,
|
|
8343
8340
|
filesCreated: files.length,
|
|
8344
|
-
time: `${p2.yellow(`${elapsedSeconds}s`)}
|
|
8341
|
+
time: `${p2.yellow(`${elapsedSeconds}s`)}`,
|
|
8345
8342
|
output: _path2.default.isAbsolute(config.root) ? _path2.default.resolve(config.root, config.output.path) : config.root
|
|
8346
8343
|
};
|
|
8347
8344
|
logs.push(
|
|
8348
8345
|
[
|
|
8349
8346
|
[`${p2.bold("Plugins:")} ${meta.plugins}`, true],
|
|
8350
8347
|
[`${p2.dim("Failed:")} ${meta.pluginsFailed || "none"}`, !!meta.pluginsFailed],
|
|
8351
|
-
[`${p2.bold("Generated:")} ${meta.filesCreated} files`, true],
|
|
8352
|
-
[`${p2.bold("Time:")} ${meta.time}`, true],
|
|
8348
|
+
[`${p2.bold("Generated:")} ${meta.filesCreated} files in ${meta.time}`, true],
|
|
8353
8349
|
[`${p2.bold("Output:")} ${meta.output}`, true]
|
|
8354
8350
|
].map((item) => {
|
|
8355
8351
|
if (item.at(1)) {
|
|
@@ -8365,49 +8361,62 @@ function getSummary({ pluginManager, status, hrStart, config, logger }) {
|
|
|
8365
8361
|
init_cjs_shims();
|
|
8366
8362
|
|
|
8367
8363
|
var _fs3 = require('@kubb/fs');
|
|
8368
|
-
async function writeLog(data) {
|
|
8364
|
+
async function writeLog({ data, override, fileName = "kubb.log" }) {
|
|
8369
8365
|
if (data.trim() === "") {
|
|
8370
8366
|
return void 0;
|
|
8371
8367
|
}
|
|
8372
|
-
const path6 = _path.resolve.call(void 0, process.cwd(),
|
|
8368
|
+
const path6 = _path.resolve.call(void 0, process.cwd(), fileName);
|
|
8373
8369
|
let previousLogs = "";
|
|
8374
8370
|
try {
|
|
8375
8371
|
previousLogs = await _fs3.read.call(void 0, _path.resolve.call(void 0, path6));
|
|
8376
8372
|
} catch (_err) {
|
|
8377
8373
|
}
|
|
8378
|
-
|
|
8374
|
+
if (override) {
|
|
8375
|
+
return _fs3.write.call(void 0, path6, data.trim(), { sanity: false });
|
|
8376
|
+
}
|
|
8377
|
+
return _fs3.write.call(void 0, path6, [previousLogs, data.trim()].filter(Boolean).join("\n"), { sanity: false });
|
|
8379
8378
|
}
|
|
8380
8379
|
|
|
8381
8380
|
// src/generate.ts
|
|
8382
|
-
var _cliprogress = require('cli-progress');
|
|
8383
|
-
|
|
8384
8381
|
|
|
8382
|
+
var _cliprogress = require('cli-progress');
|
|
8385
8383
|
async function generate({ input, config, args }) {
|
|
8386
8384
|
const logLevel = _logger.LogMapper[args.logLevel] || 3;
|
|
8387
8385
|
const logger = _logger.createLogger.call(void 0, {
|
|
8388
8386
|
logLevel,
|
|
8389
8387
|
name: config.name
|
|
8390
8388
|
});
|
|
8391
|
-
const
|
|
8392
|
-
|
|
8393
|
-
|
|
8394
|
-
|
|
8395
|
-
|
|
8396
|
-
|
|
8397
|
-
|
|
8398
|
-
|
|
8399
|
-
|
|
8400
|
-
|
|
8401
|
-
|
|
8402
|
-
|
|
8403
|
-
|
|
8404
|
-
|
|
8389
|
+
const progressBars = {};
|
|
8390
|
+
logger.on("progress_start", ({ id, size }) => {
|
|
8391
|
+
_optionalChain([logger, 'access', _85 => _85.consola, 'optionalAccess', _86 => _86.pauseLogs, 'call', _87 => _87()]);
|
|
8392
|
+
if (!progressBars[id]) {
|
|
8393
|
+
progressBars[id] = new (0, _cliprogress.SingleBar)(
|
|
8394
|
+
{
|
|
8395
|
+
format: logLevel === _logger.LogMapper.info ? "{percentage}% {bar} {value}/{total} {id} | {data}" : "{percentage}% {bar} ETA: {eta}s",
|
|
8396
|
+
barsize: 25,
|
|
8397
|
+
clearOnComplete: true
|
|
8398
|
+
},
|
|
8399
|
+
_cliprogress.Presets.shades_grey
|
|
8400
|
+
);
|
|
8401
|
+
progressBars[id].start(size, 1, { id, data: "" });
|
|
8402
|
+
}
|
|
8403
|
+
});
|
|
8404
|
+
logger.on("progress_stop", ({ id }) => {
|
|
8405
|
+
const progressBar = progressBars[id];
|
|
8406
|
+
_optionalChain([progressBar, 'optionalAccess', _88 => _88.stop, 'call', _89 => _89()]);
|
|
8407
|
+
_optionalChain([logger, 'access', _90 => _90.consola, 'optionalAccess', _91 => _91.resumeLogs, 'call', _92 => _92()]);
|
|
8408
|
+
});
|
|
8409
|
+
logger.on("progress", ({ id, count: count2, data = "" }) => {
|
|
8410
|
+
const progressBar = progressBars[id];
|
|
8411
|
+
const payload = { id, data };
|
|
8412
|
+
if (count2) {
|
|
8413
|
+
_optionalChain([progressBar, 'optionalAccess', _93 => _93.update, 'call', _94 => _94(count2, payload)]);
|
|
8405
8414
|
} else {
|
|
8406
|
-
|
|
8415
|
+
_optionalChain([progressBar, 'optionalAccess', _95 => _95.increment, 'call', _96 => _96(1, payload)]);
|
|
8407
8416
|
}
|
|
8408
8417
|
});
|
|
8409
|
-
logger.on("debug", async (
|
|
8410
|
-
await writeLog(
|
|
8418
|
+
logger.on("debug", async ({ logs, override, fileName }) => {
|
|
8419
|
+
await writeLog({ data: logs.join("\n"), fileName, override });
|
|
8411
8420
|
});
|
|
8412
8421
|
const { root = process.cwd(), ...userConfig } = config;
|
|
8413
8422
|
const inputPath = _nullishCoalesce(input, () => ( ("path" in userConfig.input ? userConfig.input.path : void 0)));
|
|
@@ -8450,17 +8459,17 @@ async function generate({ input, config, args }) {
|
|
|
8450
8459
|
const errors = getErrorCauses([error]);
|
|
8451
8460
|
if (logger.consola && errors.length && logLevel === _logger.LogMapper.debug) {
|
|
8452
8461
|
errors.forEach((err) => {
|
|
8453
|
-
_optionalChain([logger, 'access',
|
|
8462
|
+
_optionalChain([logger, 'access', _97 => _97.consola, 'optionalAccess', _98 => _98.error, 'call', _99 => _99(err)]);
|
|
8454
8463
|
});
|
|
8455
8464
|
}
|
|
8456
|
-
_optionalChain([logger, 'access',
|
|
8465
|
+
_optionalChain([logger, 'access', _100 => _100.consola, 'optionalAccess', _101 => _101.error, 'call', _102 => _102(error)]);
|
|
8457
8466
|
process.exit(0);
|
|
8458
8467
|
}
|
|
8459
8468
|
if (config.hooks) {
|
|
8460
8469
|
await executeHooks({ hooks: config.hooks, logger });
|
|
8461
8470
|
}
|
|
8462
|
-
_optionalChain([logger, 'access',
|
|
8463
|
-
_optionalChain([logger, 'access',
|
|
8471
|
+
_optionalChain([logger, 'access', _103 => _103.consola, 'optionalAccess', _104 => _104.log, 'call', _105 => _105(`\u26A1Build completed ${logLevel !== _logger.LogMapper.silent ? p2.dim(inputPath) : ""}`)]);
|
|
8472
|
+
_optionalChain([logger, 'access', _106 => _106.consola, 'optionalAccess', _107 => _107.box, 'call', _108 => _108({
|
|
8464
8473
|
title: `${config.name || ""}`,
|
|
8465
8474
|
message: summary.join(""),
|
|
8466
8475
|
style: {
|
|
@@ -8477,4 +8486,4 @@ async function generate({ input, config, args }) {
|
|
|
8477
8486
|
|
|
8478
8487
|
|
|
8479
8488
|
exports.init_cjs_shims = init_cjs_shims; exports.p = p2; exports.execa = execa; exports.generate = generate;
|
|
8480
|
-
//# sourceMappingURL=chunk-
|
|
8489
|
+
//# sourceMappingURL=chunk-MXBF3FNZ.cjs.map
|