@kubb/cli 3.0.0-alpha.11 → 3.0.0-alpha.13

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.
@@ -1,26 +1,46 @@
1
1
  'use strict';
2
2
 
3
- var chunkIO6NJ3A2_cjs = require('./chunk-IO6NJ3A2.cjs');
3
+ var chunkCUBO53J7_cjs = require('./chunk-CUBO53J7.cjs');
4
4
  var citty = require('citty');
5
5
  var utils = require('@kubb/core/utils');
6
6
  var bundleRequire = require('bundle-require');
7
7
  var cosmiconfig = require('cosmiconfig');
8
8
  var logger = require('@kubb/core/logger');
9
9
  var path = require('path');
10
+ var process = require('process');
10
11
  var core = require('@kubb/core');
11
12
 
12
13
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
13
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
+
14
33
  var path__default = /*#__PURE__*/_interopDefault(path);
34
+ var process__namespace = /*#__PURE__*/_interopNamespace(process);
15
35
 
16
36
  // src/commands/generate.ts
17
- chunkIO6NJ3A2_cjs.init_cjs_shims();
37
+ chunkCUBO53J7_cjs.init_cjs_shims();
18
38
 
19
39
  // src/utils/getConfig.ts
20
- chunkIO6NJ3A2_cjs.init_cjs_shims();
40
+ chunkCUBO53J7_cjs.init_cjs_shims();
21
41
 
22
42
  // src/utils/getPlugins.ts
23
- chunkIO6NJ3A2_cjs.init_cjs_shims();
43
+ chunkCUBO53J7_cjs.init_cjs_shims();
24
44
  function isJSONPlugins(plugins) {
25
45
  return !!plugins?.some((plugin) => {
26
46
  return Array.isArray(plugin) && typeof plugin?.at(0) === "string";
@@ -68,7 +88,7 @@ async function getConfig(result, args2) {
68
88
  }
69
89
 
70
90
  // src/utils/getCosmiConfig.ts
71
- chunkIO6NJ3A2_cjs.init_cjs_shims();
91
+ chunkCUBO53J7_cjs.init_cjs_shims();
72
92
  var tsLoader = async (configFile) => {
73
93
  const { mod } = await bundleRequire.bundleRequire({
74
94
  filepath: configFile,
@@ -115,7 +135,7 @@ async function getCosmiConfig(moduleName, config) {
115
135
  }
116
136
 
117
137
  // src/utils/watcher.ts
118
- chunkIO6NJ3A2_cjs.init_cjs_shims();
138
+ chunkCUBO53J7_cjs.init_cjs_shims();
119
139
  async function startWatcher(path2, cb) {
120
140
  const { watch } = await import('chokidar');
121
141
  const logger$1 = logger.createLogger();
@@ -125,11 +145,11 @@ async function startWatcher(path2, cb) {
125
145
  ignored
126
146
  });
127
147
  watcher.on("all", (type, file) => {
128
- logger$1?.emit("info", chunkIO6NJ3A2_cjs.p.yellow(chunkIO6NJ3A2_cjs.p.bold(`Change detected: ${type} ${file}`)));
148
+ logger$1?.emit("info", chunkCUBO53J7_cjs.p.yellow(chunkCUBO53J7_cjs.p.bold(`Change detected: ${type} ${file}`)));
129
149
  try {
130
150
  cb(path2);
131
151
  } catch (e) {
132
- logger$1?.emit("warning", chunkIO6NJ3A2_cjs.p.red("Watcher failed"));
152
+ logger$1?.emit("warning", chunkCUBO53J7_cjs.p.red("Watcher failed"));
133
153
  }
134
154
  });
135
155
  return;
@@ -178,7 +198,8 @@ var command = citty.defineCommand({
178
198
  description: "[input] Generate files based on a 'kubb.config.ts' file"
179
199
  },
180
200
  args,
181
- async run({ args: args2 }) {
201
+ async run(commandContext) {
202
+ const { args: args2 } = commandContext;
182
203
  const input = args2._[0];
183
204
  if (args2.help) {
184
205
  citty.showUsage(command);
@@ -188,8 +209,8 @@ var command = citty.defineCommand({
188
209
  args2.logLevel = "debug";
189
210
  }
190
211
  if (args2.bun) {
191
- const command2 = process.argv.splice(2).filter((item) => item !== "--bun");
192
- await chunkIO6NJ3A2_cjs.execa("bkubb", command2, { stdout: process.stdout, stderr: process.stderr });
212
+ const command2 = process__namespace.argv.splice(2).filter((item) => item !== "--bun");
213
+ await chunkCUBO53J7_cjs.execa("bkubb", command2, { stdout: process__namespace.stdout, stderr: process__namespace.stderr });
193
214
  return;
194
215
  }
195
216
  const logLevel = logger.LogMapper[args2.logLevel] || 3;
@@ -198,7 +219,7 @@ var command = citty.defineCommand({
198
219
  });
199
220
  logger$1.emit("start", "Loading config");
200
221
  const result = await getCosmiConfig("kubb", args2.config);
201
- logger$1.emit("success", `Config loaded(${chunkIO6NJ3A2_cjs.p.dim(path__default.default.relative(process.cwd(), result.filepath))})`);
222
+ logger$1.emit("success", `Config loaded(${chunkCUBO53J7_cjs.p.dim(path__default.default.relative(process__namespace.cwd(), result.filepath))})`);
202
223
  const config = await getConfig(result, args2);
203
224
  if (args2.watch) {
204
225
  if (Array.isArray(config)) {
@@ -206,21 +227,32 @@ var command = citty.defineCommand({
206
227
  }
207
228
  if (core.isInputPath(config)) {
208
229
  return startWatcher([input || config.input.path], async (paths) => {
209
- await chunkIO6NJ3A2_cjs.generate({ config, args: args2, input });
210
- logger$1.emit("start", chunkIO6NJ3A2_cjs.p.yellow(chunkIO6NJ3A2_cjs.p.bold(`Watching for changes in ${paths.join(" and ")}`)));
230
+ await chunkCUBO53J7_cjs.generate({ config, args: args2, input });
231
+ logger$1.emit("start", chunkCUBO53J7_cjs.p.yellow(chunkCUBO53J7_cjs.p.bold(`Watching for changes in ${paths.join(" and ")}`)));
211
232
  });
212
233
  }
213
234
  }
214
235
  if (Array.isArray(config)) {
215
236
  const promiseManager = new core.PromiseManager();
216
- const promises = config.map((item) => () => chunkIO6NJ3A2_cjs.generate({ input, config: item, args: args2 }));
237
+ const promises = config.map((item) => () => chunkCUBO53J7_cjs.generate({ input, config: item, args: args2 }));
217
238
  return promiseManager.run("seq", promises);
218
239
  }
219
- await chunkIO6NJ3A2_cjs.generate({ input, config, args: args2 });
240
+ await chunkCUBO53J7_cjs.generate({ input, config, args: args2 });
241
+ if (globalThis.isDevtoolsEnabled) {
242
+ const restart = await logger$1.consola?.prompt("Restart(could be used to validate the profiler)?", {
243
+ type: "confirm",
244
+ initial: false
245
+ });
246
+ if (restart) {
247
+ await command.run?.(commandContext);
248
+ } else {
249
+ process__namespace.exit(1);
250
+ }
251
+ }
220
252
  }
221
253
  });
222
254
  var generate_default = command;
223
255
 
224
256
  module.exports = generate_default;
225
- //# sourceMappingURL=generate-XNK7VVP4.cjs.map
226
- //# sourceMappingURL=generate-XNK7VVP4.cjs.map
257
+ //# sourceMappingURL=generate-Q7JKLLL3.cjs.map
258
+ //# sourceMappingURL=generate-Q7JKLLL3.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","bundleRequire","cosmiconfig","path","logger","createLogger","p","defineCommand","showUsage","command","process","execa","LogMapper","isInputPath","generate","PromiseManager"],"mappings":"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","file":"generate-Q7JKLLL3.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 bun: {\n type: 'boolean',\n description: 'Run Kubb with Bun',\n alias: 'b',\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 if (args.bun) {\n const command = process.argv.splice(2).filter((item) => item !== '--bun')\n\n await execa('bkubb', command, { stdout: process.stdout, stderr: process.stderr })\n return\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 { bundleRequire } from 'bundle-require'\nimport { cosmiconfig } from 'cosmiconfig'\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 { mod } = await bundleRequire({\n filepath: configFile,\n preserveTemporaryFile: false,\n })\n\n return mod.default\n}\n\nconst jsLoader = async (configFile: string) => {\n const { mod } = await bundleRequire({\n filepath: configFile,\n preserveTemporaryFile: false,\n format: 'cjs',\n })\n\n return mod.default || 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 c from 'tinyrainbow'\nimport { createLogger } from '@kubb/core/logger'\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 return\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { generate } from './chunk-EKC3Q472.js';
1
+ import { generate } from './chunk-BB43CQBG.js';
2
2
  import { defineCommand, showUsage } from 'citty';
3
3
  import { execa } from 'execa';
4
4
  import c from 'tinyrainbow';
@@ -7,6 +7,7 @@ import { bundleRequire } from 'bundle-require';
7
7
  import { cosmiconfig } from 'cosmiconfig';
8
8
  import { LogMapper, createLogger } from '@kubb/core/logger';
9
9
  import path from 'node:path';
10
+ import * as process from 'node:process';
10
11
  import { isInputPath, PromiseManager } from '@kubb/core';
11
12
 
12
13
  // src/utils/getPlugins.ts
@@ -161,7 +162,8 @@ var command = defineCommand({
161
162
  description: "[input] Generate files based on a 'kubb.config.ts' file"
162
163
  },
163
164
  args,
164
- async run({ args: args2 }) {
165
+ async run(commandContext) {
166
+ const { args: args2 } = commandContext;
165
167
  const input = args2._[0];
166
168
  if (args2.help) {
167
169
  showUsage(command);
@@ -200,10 +202,21 @@ var command = defineCommand({
200
202
  return promiseManager.run("seq", promises);
201
203
  }
202
204
  await generate({ input, config, args: args2 });
205
+ if (globalThis.isDevtoolsEnabled) {
206
+ const restart = await logger.consola?.prompt("Restart(could be used to validate the profiler)?", {
207
+ type: "confirm",
208
+ initial: false
209
+ });
210
+ if (restart) {
211
+ await command.run?.(commandContext);
212
+ } else {
213
+ process.exit(1);
214
+ }
215
+ }
203
216
  }
204
217
  });
205
218
  var generate_default = command;
206
219
 
207
220
  export { generate_default as default };
208
- //# sourceMappingURL=generate-USO6RHZL.js.map
209
- //# sourceMappingURL=generate-USO6RHZL.js.map
221
+ //# sourceMappingURL=generate-WAEFR5I3.js.map
222
+ //# sourceMappingURL=generate-WAEFR5I3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/getPlugins.ts","../src/utils/getConfig.ts","../src/utils/getCosmiConfig.ts","../src/utils/watcher.ts","../src/commands/generate.ts"],"names":["args","path","command","createLogger","c"],"mappings":"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","file":"generate-WAEFR5I3.js","sourcesContent":["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 { 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 { bundleRequire } from 'bundle-require'\nimport { cosmiconfig } from 'cosmiconfig'\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 { mod } = await bundleRequire({\n filepath: configFile,\n preserveTemporaryFile: false,\n })\n\n return mod.default\n}\n\nconst jsLoader = async (configFile: string) => {\n const { mod } = await bundleRequire({\n filepath: configFile,\n preserveTemporaryFile: false,\n format: 'cjs',\n })\n\n return mod.default || 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 c from 'tinyrainbow'\nimport { createLogger } from '@kubb/core/logger'\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 return\n}\n","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 bun: {\n type: 'boolean',\n description: 'Run Kubb with Bun',\n alias: 'b',\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 if (args.bun) {\n const command = process.argv.splice(2).filter((item) => item !== '--bun')\n\n await execa('bkubb', command, { stdout: process.stdout, stderr: process.stderr })\n return\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"]}
package/dist/index.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkIO6NJ3A2_cjs = require('./chunk-IO6NJ3A2.cjs');
3
+ var chunkCUBO53J7_cjs = require('./chunk-CUBO53J7.cjs');
4
4
  var citty = require('citty');
5
5
  var getLatestVersion = require('latest-version');
6
6
  var semver = require('semver');
@@ -12,10 +12,10 @@ var getLatestVersion__default = /*#__PURE__*/_interopDefault(getLatestVersion);
12
12
  var consola__default = /*#__PURE__*/_interopDefault(consola);
13
13
 
14
14
  // src/index.ts
15
- chunkIO6NJ3A2_cjs.init_cjs_shims();
15
+ chunkCUBO53J7_cjs.init_cjs_shims();
16
16
 
17
17
  // package.json
18
- var version = "3.0.0-alpha.11";
18
+ var version = "3.0.0-alpha.13";
19
19
  var name = "kubb";
20
20
  var main = citty.defineCommand({
21
21
  meta: {
@@ -41,13 +41,13 @@ Run \`npm install -g @kubb/cli\` to update`,
41
41
  } catch (_e) {
42
42
  }
43
43
  if (rawArgs[0] !== "generate") {
44
- const generateCommand = await import('./generate-XNK7VVP4.cjs').then((r) => r.default);
44
+ const generateCommand = await import('./generate-Q7JKLLL3.cjs').then((r) => r.default);
45
45
  await citty.runCommand(generateCommand, { rawArgs });
46
46
  process.exit(0);
47
47
  }
48
48
  },
49
49
  subCommands: {
50
- generate: () => import('./generate-XNK7VVP4.cjs').then((r) => r.default)
50
+ generate: () => import('./generate-Q7JKLLL3.cjs').then((r) => r.default)
51
51
  }
52
52
  });
53
53
  async function run(_argv) {
@@ -56,7 +56,7 @@ async function run(_argv) {
56
56
 
57
57
  Object.defineProperty(exports, "generate", {
58
58
  enumerable: true,
59
- get: function () { return chunkIO6NJ3A2_cjs.generate; }
59
+ get: function () { return chunkCUBO53J7_cjs.generate; }
60
60
  });
61
61
  exports.run = run;
62
62
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../package.json"],"names":["init_cjs_shims","defineCommand","getLatestVersion","lt","consola","runCommand","runMain"],"mappings":";;;;;;;;;;;;;;AAAAA,gCAAA,EAAA,CAAA;;;ACEE,IAAW,OAAA,GAAA,gBAAA,CAAA;ADKb,IAAM,IAAO,GAAA,MAAA,CAAA;AAEb,IAAM,OAAOC,mBAAc,CAAA;AAAA,EACzB,IAAM,EAAA;AAAA,IACJ,IAAA;AAAA,IACA,OAAA;AAAA,IACA,WAAa,EAAA,iBAAA;AAAA,GACf;AAAA,EACA,MAAM,KAAA,CAAM,EAAE,OAAA,EAAW,EAAA;AACvB,IAAI,IAAA;AACF,MAAM,MAAA,aAAA,GAAgB,MAAMC,iCAAA,CAAiB,WAAW,CAAA,CAAA;AAExD,MAAI,IAAAC,SAAA,CAAG,OAAS,EAAA,aAAa,CAAG,EAAA;AAC9B,QAAAC,wBAAA,CAAQ,GAAI,CAAA;AAAA,UACV,KAAO,EAAA,8BAAA;AAAA,UACP,OAAS,EAAA,CAAA,GAAA,EAAM,OAAO,CAAA,aAAA,EAAW,aAAa,CAAA;AAAA,0CAAA,CAAA;AAAA,UAE9C,KAAO,EAAA;AAAA,YACL,OAAS,EAAA,CAAA;AAAA,YACT,WAAa,EAAA,QAAA;AAAA,YACb,WAAa,EAAA,SAAA;AAAA,WACf;AAAA,SACD,CAAA,CAAA;AAAA,OACH;AAAA,aACO,EAAI,EAAA;AAAA,KAAC;AAEd,IAAI,IAAA,OAAA,CAAQ,CAAC,CAAA,KAAM,UAAY,EAAA;AAE7B,MAAM,MAAA,eAAA,GAAkB,MAAM,OAAO,yBAAwB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA,CAAA;AAEpF,MAAA,MAAMC,gBAAW,CAAA,eAAA,EAAiB,EAAE,OAAA,EAAS,CAAA,CAAA;AAE7C,MAAA,OAAA,CAAQ,KAAK,CAAC,CAAA,CAAA;AAAA,KAChB;AAAA,GACF;AAAA,EACA,WAAa,EAAA;AAAA,IACX,QAAA,EAAU,MAAM,OAAO,yBAAwB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAAA,GACxE;AACF,CAAC,CAAA,CAAA;AAED,eAAsB,IAAI,KAAiC,EAAA;AACzD,EAAA,MAAMC,cAAQ,IAAI,CAAA,CAAA;AACpB","file":"index.cjs","sourcesContent":["import { defineCommand, runCommand, runMain } from 'citty'\nimport getLatestVersion from 'latest-version'\nimport { lt } from 'semver'\n\nimport { version } from '../package.json'\nimport consola from 'consola'\n\nconst name = 'kubb'\n\nconst main = defineCommand({\n meta: {\n name,\n version,\n description: 'Kubb generation',\n },\n async setup({ rawArgs }) {\n try {\n const latestVersion = await getLatestVersion('@kubb/cli')\n\n if (lt(version, latestVersion)) {\n consola.box({\n title: 'Update available for `Kubb` ',\n message: `\\`v${version}\\` → \\`v${latestVersion}\\`\nRun \\`npm install -g @kubb/cli\\` to update`,\n style: {\n padding: 2,\n borderColor: 'yellow',\n borderStyle: 'rounded',\n },\n })\n }\n } catch (_e) {}\n\n if (rawArgs[0] !== 'generate') {\n // generate is not being used\n const generateCommand = await import('./commands/generate.ts').then((r) => r.default)\n\n await runCommand(generateCommand, { rawArgs })\n\n process.exit(0)\n }\n },\n subCommands: {\n generate: () => import('./commands/generate.ts').then((r) => r.default),\n },\n})\n\nexport async function run(_argv?: string[]): Promise<void> {\n await runMain(main)\n}\n\nexport { generate } from './generate.ts'\n","{\n \"name\": \"@kubb/cli\",\n \"version\": \"3.0.0-alpha.11\",\n \"description\": \"Generator cli\",\n \"keywords\": [\n \"typescript\",\n \"plugins\",\n \"kubb\",\n \"codegen\",\n \"cli\"\n ],\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git://github.com/kubb-labs/kubb.git\",\n \"directory\": \"packages/cli\"\n },\n \"license\": \"MIT\",\n \"author\": \"Stijn Van Hulle <stijn@stijnvanhulle.be\",\n \"sideEffects\": false,\n \"type\": \"module\",\n \"exports\": {\n \".\": {\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\",\n \"default\": \"./dist/index.cjs\"\n }\n },\n \"main\": \"dist/index.cjs\",\n \"module\": \"dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"bin\": {\n \"bkubb\": \"bin/bkubb.cjs\",\n \"kubb\": \"bin/kubb.cjs\"\n },\n \"files\": [\n \"src\",\n \"dist\",\n \"bin\",\n \"!/**/**.test.**\",\n \"!/**/__tests__/**\"\n ],\n \"scripts\": {\n \"build\": \"tsup\",\n \"clean\": \"npx rimraf ./dist\",\n \"lint\": \"bun biome lint .\",\n \"lint:fix\": \"bun biome lint --apply-unsafe .\",\n \"release\": \"pnpm publish --no-git-check\",\n \"release:canary\": \"bash ../../.github/canary.sh && node ../../scripts/build.js canary && pnpm publish --no-git-check\",\n \"start\": \"tsup --watch\",\n \"test\": \"vitest --passWithNoTests\",\n \"typecheck\": \"tsc -p ./tsconfig.json --noEmit --emitDeclarationOnly false\"\n },\n \"dependencies\": {\n \"@kubb/core\": \"workspace:*\",\n \"@kubb/fs\": \"workspace:*\",\n \"bundle-require\": \"^5.0.0\",\n \"chokidar\": \"^3.6.0\",\n \"citty\": \"^0.1.6\",\n \"cli-progress\": \"^3.12.0\",\n \"consola\": \"^3.2.3\",\n \"cosmiconfig\": \"^9.0.0\",\n \"esbuild\": \"^0.23.1\",\n \"execa\": \"^9.3.1\",\n \"js-runtime\": \"^0.0.8\",\n \"latest-version\": \"^9.0.0\",\n \"p-queue\": \"^8.0.1\",\n \"semver\": \"^7.6.3\",\n \"string-argv\": \"^0.3.2\",\n \"tinyrainbow\": \"^1.2.0\"\n },\n \"devDependencies\": {\n \"@kubb/config-ts\": \"workspace:*\",\n \"@kubb/config-tsup\": \"workspace:*\",\n \"@kubb/plugin-oas\": \"workspace:*\",\n \"@types/cli-progress\": \"^3.11.6\",\n \"@types/node\": \"^20.16.2\",\n \"@types/semver\": \"^7.5.8\",\n \"source-map-support\": \"^0.5.21\",\n \"tsup\": \"^8.2.4\",\n \"typescript\": \"^5.5.4\"\n },\n \"engines\": {\n \"node\": \">=20\"\n },\n \"preferGlobal\": true,\n \"publishConfig\": {\n \"access\": \"public\",\n \"registry\": \"https://registry.npmjs.org/\"\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/index.ts","../package.json"],"names":["init_cjs_shims","defineCommand","getLatestVersion","lt","consola","runCommand","runMain"],"mappings":";;;;;;;;;;;;;;AAAAA,gCAAA,EAAA,CAAA;;;ACEE,IAAW,OAAA,GAAA,gBAAA,CAAA;ADKb,IAAM,IAAO,GAAA,MAAA,CAAA;AAEb,IAAM,OAAOC,mBAAc,CAAA;AAAA,EACzB,IAAM,EAAA;AAAA,IACJ,IAAA;AAAA,IACA,OAAA;AAAA,IACA,WAAa,EAAA,iBAAA;AAAA,GACf;AAAA,EACA,MAAM,KAAA,CAAM,EAAE,OAAA,EAAW,EAAA;AACvB,IAAI,IAAA;AACF,MAAM,MAAA,aAAA,GAAgB,MAAMC,iCAAA,CAAiB,WAAW,CAAA,CAAA;AAExD,MAAI,IAAAC,SAAA,CAAG,OAAS,EAAA,aAAa,CAAG,EAAA;AAC9B,QAAAC,wBAAA,CAAQ,GAAI,CAAA;AAAA,UACV,KAAO,EAAA,8BAAA;AAAA,UACP,OAAS,EAAA,CAAA,GAAA,EAAM,OAAO,CAAA,aAAA,EAAW,aAAa,CAAA;AAAA,0CAAA,CAAA;AAAA,UAE9C,KAAO,EAAA;AAAA,YACL,OAAS,EAAA,CAAA;AAAA,YACT,WAAa,EAAA,QAAA;AAAA,YACb,WAAa,EAAA,SAAA;AAAA,WACf;AAAA,SACD,CAAA,CAAA;AAAA,OACH;AAAA,aACO,EAAI,EAAA;AAAA,KAAC;AAEd,IAAI,IAAA,OAAA,CAAQ,CAAC,CAAA,KAAM,UAAY,EAAA;AAE7B,MAAM,MAAA,eAAA,GAAkB,MAAM,OAAO,yBAAwB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA,CAAA;AAEpF,MAAA,MAAMC,gBAAW,CAAA,eAAA,EAAiB,EAAE,OAAA,EAAS,CAAA,CAAA;AAE7C,MAAA,OAAA,CAAQ,KAAK,CAAC,CAAA,CAAA;AAAA,KAChB;AAAA,GACF;AAAA,EACA,WAAa,EAAA;AAAA,IACX,QAAA,EAAU,MAAM,OAAO,yBAAwB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAAA,GACxE;AACF,CAAC,CAAA,CAAA;AAED,eAAsB,IAAI,KAAiC,EAAA;AACzD,EAAA,MAAMC,cAAQ,IAAI,CAAA,CAAA;AACpB","file":"index.cjs","sourcesContent":["import { defineCommand, runCommand, runMain } from 'citty'\nimport getLatestVersion from 'latest-version'\nimport { lt } from 'semver'\n\nimport { version } from '../package.json'\nimport consola from 'consola'\n\nconst name = 'kubb'\n\nconst main = defineCommand({\n meta: {\n name,\n version,\n description: 'Kubb generation',\n },\n async setup({ rawArgs }) {\n try {\n const latestVersion = await getLatestVersion('@kubb/cli')\n\n if (lt(version, latestVersion)) {\n consola.box({\n title: 'Update available for `Kubb` ',\n message: `\\`v${version}\\` → \\`v${latestVersion}\\`\nRun \\`npm install -g @kubb/cli\\` to update`,\n style: {\n padding: 2,\n borderColor: 'yellow',\n borderStyle: 'rounded',\n },\n })\n }\n } catch (_e) {}\n\n if (rawArgs[0] !== 'generate') {\n // generate is not being used\n const generateCommand = await import('./commands/generate.ts').then((r) => r.default)\n\n await runCommand(generateCommand, { rawArgs })\n\n process.exit(0)\n }\n },\n subCommands: {\n generate: () => import('./commands/generate.ts').then((r) => r.default),\n },\n})\n\nexport async function run(_argv?: string[]): Promise<void> {\n await runMain(main)\n}\n\nexport { generate } from './generate.ts'\n","{\n \"name\": \"@kubb/cli\",\n \"version\": \"3.0.0-alpha.13\",\n \"description\": \"Generator cli\",\n \"keywords\": [\n \"typescript\",\n \"plugins\",\n \"kubb\",\n \"codegen\",\n \"cli\"\n ],\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git://github.com/kubb-labs/kubb.git\",\n \"directory\": \"packages/cli\"\n },\n \"license\": \"MIT\",\n \"author\": \"Stijn Van Hulle <stijn@stijnvanhulle.be\",\n \"sideEffects\": false,\n \"type\": \"module\",\n \"exports\": {\n \".\": {\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\",\n \"default\": \"./dist/index.cjs\"\n }\n },\n \"main\": \"dist/index.cjs\",\n \"module\": \"dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"bin\": {\n \"bkubb\": \"bin/bkubb.cjs\",\n \"kubb\": \"bin/kubb.cjs\"\n },\n \"files\": [\n \"src\",\n \"dist\",\n \"bin\",\n \"!/**/**.test.**\",\n \"!/**/__tests__/**\"\n ],\n \"scripts\": {\n \"build\": \"tsup\",\n \"clean\": \"npx rimraf ./dist\",\n \"lint\": \"bun biome lint .\",\n \"lint:fix\": \"bun biome lint --apply-unsafe .\",\n \"release\": \"pnpm publish --no-git-check\",\n \"release:canary\": \"bash ../../.github/canary.sh && node ../../scripts/build.js canary && pnpm publish --no-git-check\",\n \"start\": \"tsup --watch\",\n \"test\": \"vitest --passWithNoTests\",\n \"typecheck\": \"tsc -p ./tsconfig.json --noEmit --emitDeclarationOnly false\"\n },\n \"dependencies\": {\n \"@kubb/core\": \"workspace:*\",\n \"@kubb/fs\": \"workspace:*\",\n \"bundle-require\": \"^5.0.0\",\n \"chokidar\": \"^3.6.0\",\n \"citty\": \"^0.1.6\",\n \"cli-progress\": \"^3.12.0\",\n \"consola\": \"^3.2.3\",\n \"cosmiconfig\": \"^9.0.0\",\n \"esbuild\": \"^0.23.1\",\n \"execa\": \"^9.3.1\",\n \"js-runtime\": \"^0.0.8\",\n \"latest-version\": \"^9.0.0\",\n \"p-queue\": \"^8.0.1\",\n \"semver\": \"^7.6.3\",\n \"string-argv\": \"^0.3.2\",\n \"tinyrainbow\": \"^1.2.0\"\n },\n \"devDependencies\": {\n \"@kubb/config-ts\": \"workspace:*\",\n \"@kubb/config-tsup\": \"workspace:*\",\n \"@kubb/plugin-oas\": \"workspace:*\",\n \"@types/cli-progress\": \"^3.11.6\",\n \"@types/node\": \"^20.16.3\",\n \"@types/semver\": \"^7.5.8\",\n \"source-map-support\": \"^0.5.21\",\n \"tsup\": \"^8.2.4\",\n \"typescript\": \"^5.5.4\"\n },\n \"engines\": {\n \"node\": \">=20\"\n },\n \"preferGlobal\": true,\n \"publishConfig\": {\n \"access\": \"public\",\n \"registry\": \"https://registry.npmjs.org/\"\n }\n}\n"]}
package/dist/index.d.cts CHANGED
@@ -1,6 +1,9 @@
1
1
  import { Config } from '@kubb/core';
2
2
  import { ParsedArgs } from 'citty';
3
3
 
4
+ declare global {
5
+ var isDevtoolsEnabled: any;
6
+ }
4
7
  declare const args: {
5
8
  readonly config: {
6
9
  readonly type: "string";
package/dist/index.d.ts CHANGED
@@ -1,6 +1,9 @@
1
1
  import { Config } from '@kubb/core';
2
2
  import { ParsedArgs } from 'citty';
3
3
 
4
+ declare global {
5
+ var isDevtoolsEnabled: any;
6
+ }
4
7
  declare const args: {
5
8
  readonly config: {
6
9
  readonly type: "string";
package/dist/index.js CHANGED
@@ -1,11 +1,11 @@
1
- export { generate } from './chunk-EKC3Q472.js';
1
+ export { generate } from './chunk-BB43CQBG.js';
2
2
  import { defineCommand, runCommand, runMain } from 'citty';
3
3
  import getLatestVersion from 'latest-version';
4
4
  import { lt } from 'semver';
5
5
  import consola from 'consola';
6
6
 
7
7
  // package.json
8
- var version = "3.0.0-alpha.11";
8
+ var version = "3.0.0-alpha.13";
9
9
  var name = "kubb";
10
10
  var main = defineCommand({
11
11
  meta: {
@@ -31,13 +31,13 @@ Run \`npm install -g @kubb/cli\` to update`,
31
31
  } catch (_e) {
32
32
  }
33
33
  if (rawArgs[0] !== "generate") {
34
- const generateCommand = await import('./generate-USO6RHZL.js').then((r) => r.default);
34
+ const generateCommand = await import('./generate-WAEFR5I3.js').then((r) => r.default);
35
35
  await runCommand(generateCommand, { rawArgs });
36
36
  process.exit(0);
37
37
  }
38
38
  },
39
39
  subCommands: {
40
- generate: () => import('./generate-USO6RHZL.js').then((r) => r.default)
40
+ generate: () => import('./generate-WAEFR5I3.js').then((r) => r.default)
41
41
  }
42
42
  });
43
43
  async function run(_argv) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../package.json","../src/index.ts"],"names":[],"mappings":";;;;;;;AAEE,IAAW,OAAA,GAAA,gBAAA,CAAA;ACKb,IAAM,IAAO,GAAA,MAAA,CAAA;AAEb,IAAM,OAAO,aAAc,CAAA;AAAA,EACzB,IAAM,EAAA;AAAA,IACJ,IAAA;AAAA,IACA,OAAA;AAAA,IACA,WAAa,EAAA,iBAAA;AAAA,GACf;AAAA,EACA,MAAM,KAAA,CAAM,EAAE,OAAA,EAAW,EAAA;AACvB,IAAI,IAAA;AACF,MAAM,MAAA,aAAA,GAAgB,MAAM,gBAAA,CAAiB,WAAW,CAAA,CAAA;AAExD,MAAI,IAAA,EAAA,CAAG,OAAS,EAAA,aAAa,CAAG,EAAA;AAC9B,QAAA,OAAA,CAAQ,GAAI,CAAA;AAAA,UACV,KAAO,EAAA,8BAAA;AAAA,UACP,OAAS,EAAA,CAAA,GAAA,EAAM,OAAO,CAAA,aAAA,EAAW,aAAa,CAAA;AAAA,0CAAA,CAAA;AAAA,UAE9C,KAAO,EAAA;AAAA,YACL,OAAS,EAAA,CAAA;AAAA,YACT,WAAa,EAAA,QAAA;AAAA,YACb,WAAa,EAAA,SAAA;AAAA,WACf;AAAA,SACD,CAAA,CAAA;AAAA,OACH;AAAA,aACO,EAAI,EAAA;AAAA,KAAC;AAEd,IAAI,IAAA,OAAA,CAAQ,CAAC,CAAA,KAAM,UAAY,EAAA;AAE7B,MAAM,MAAA,eAAA,GAAkB,MAAM,OAAO,wBAAwB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA,CAAA;AAEpF,MAAA,MAAM,UAAW,CAAA,eAAA,EAAiB,EAAE,OAAA,EAAS,CAAA,CAAA;AAE7C,MAAA,OAAA,CAAQ,KAAK,CAAC,CAAA,CAAA;AAAA,KAChB;AAAA,GACF;AAAA,EACA,WAAa,EAAA;AAAA,IACX,QAAA,EAAU,MAAM,OAAO,wBAAwB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAAA,GACxE;AACF,CAAC,CAAA,CAAA;AAED,eAAsB,IAAI,KAAiC,EAAA;AACzD,EAAA,MAAM,QAAQ,IAAI,CAAA,CAAA;AACpB","file":"index.js","sourcesContent":["{\n \"name\": \"@kubb/cli\",\n \"version\": \"3.0.0-alpha.11\",\n \"description\": \"Generator cli\",\n \"keywords\": [\n \"typescript\",\n \"plugins\",\n \"kubb\",\n \"codegen\",\n \"cli\"\n ],\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git://github.com/kubb-labs/kubb.git\",\n \"directory\": \"packages/cli\"\n },\n \"license\": \"MIT\",\n \"author\": \"Stijn Van Hulle <stijn@stijnvanhulle.be\",\n \"sideEffects\": false,\n \"type\": \"module\",\n \"exports\": {\n \".\": {\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\",\n \"default\": \"./dist/index.cjs\"\n }\n },\n \"main\": \"dist/index.cjs\",\n \"module\": \"dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"bin\": {\n \"bkubb\": \"bin/bkubb.cjs\",\n \"kubb\": \"bin/kubb.cjs\"\n },\n \"files\": [\n \"src\",\n \"dist\",\n \"bin\",\n \"!/**/**.test.**\",\n \"!/**/__tests__/**\"\n ],\n \"scripts\": {\n \"build\": \"tsup\",\n \"clean\": \"npx rimraf ./dist\",\n \"lint\": \"bun biome lint .\",\n \"lint:fix\": \"bun biome lint --apply-unsafe .\",\n \"release\": \"pnpm publish --no-git-check\",\n \"release:canary\": \"bash ../../.github/canary.sh && node ../../scripts/build.js canary && pnpm publish --no-git-check\",\n \"start\": \"tsup --watch\",\n \"test\": \"vitest --passWithNoTests\",\n \"typecheck\": \"tsc -p ./tsconfig.json --noEmit --emitDeclarationOnly false\"\n },\n \"dependencies\": {\n \"@kubb/core\": \"workspace:*\",\n \"@kubb/fs\": \"workspace:*\",\n \"bundle-require\": \"^5.0.0\",\n \"chokidar\": \"^3.6.0\",\n \"citty\": \"^0.1.6\",\n \"cli-progress\": \"^3.12.0\",\n \"consola\": \"^3.2.3\",\n \"cosmiconfig\": \"^9.0.0\",\n \"esbuild\": \"^0.23.1\",\n \"execa\": \"^9.3.1\",\n \"js-runtime\": \"^0.0.8\",\n \"latest-version\": \"^9.0.0\",\n \"p-queue\": \"^8.0.1\",\n \"semver\": \"^7.6.3\",\n \"string-argv\": \"^0.3.2\",\n \"tinyrainbow\": \"^1.2.0\"\n },\n \"devDependencies\": {\n \"@kubb/config-ts\": \"workspace:*\",\n \"@kubb/config-tsup\": \"workspace:*\",\n \"@kubb/plugin-oas\": \"workspace:*\",\n \"@types/cli-progress\": \"^3.11.6\",\n \"@types/node\": \"^20.16.2\",\n \"@types/semver\": \"^7.5.8\",\n \"source-map-support\": \"^0.5.21\",\n \"tsup\": \"^8.2.4\",\n \"typescript\": \"^5.5.4\"\n },\n \"engines\": {\n \"node\": \">=20\"\n },\n \"preferGlobal\": true,\n \"publishConfig\": {\n \"access\": \"public\",\n \"registry\": \"https://registry.npmjs.org/\"\n }\n}\n","import { defineCommand, runCommand, runMain } from 'citty'\nimport getLatestVersion from 'latest-version'\nimport { lt } from 'semver'\n\nimport { version } from '../package.json'\nimport consola from 'consola'\n\nconst name = 'kubb'\n\nconst main = defineCommand({\n meta: {\n name,\n version,\n description: 'Kubb generation',\n },\n async setup({ rawArgs }) {\n try {\n const latestVersion = await getLatestVersion('@kubb/cli')\n\n if (lt(version, latestVersion)) {\n consola.box({\n title: 'Update available for `Kubb` ',\n message: `\\`v${version}\\` → \\`v${latestVersion}\\`\nRun \\`npm install -g @kubb/cli\\` to update`,\n style: {\n padding: 2,\n borderColor: 'yellow',\n borderStyle: 'rounded',\n },\n })\n }\n } catch (_e) {}\n\n if (rawArgs[0] !== 'generate') {\n // generate is not being used\n const generateCommand = await import('./commands/generate.ts').then((r) => r.default)\n\n await runCommand(generateCommand, { rawArgs })\n\n process.exit(0)\n }\n },\n subCommands: {\n generate: () => import('./commands/generate.ts').then((r) => r.default),\n },\n})\n\nexport async function run(_argv?: string[]): Promise<void> {\n await runMain(main)\n}\n\nexport { generate } from './generate.ts'\n"]}
1
+ {"version":3,"sources":["../package.json","../src/index.ts"],"names":[],"mappings":";;;;;;;AAEE,IAAW,OAAA,GAAA,gBAAA,CAAA;ACKb,IAAM,IAAO,GAAA,MAAA,CAAA;AAEb,IAAM,OAAO,aAAc,CAAA;AAAA,EACzB,IAAM,EAAA;AAAA,IACJ,IAAA;AAAA,IACA,OAAA;AAAA,IACA,WAAa,EAAA,iBAAA;AAAA,GACf;AAAA,EACA,MAAM,KAAA,CAAM,EAAE,OAAA,EAAW,EAAA;AACvB,IAAI,IAAA;AACF,MAAM,MAAA,aAAA,GAAgB,MAAM,gBAAA,CAAiB,WAAW,CAAA,CAAA;AAExD,MAAI,IAAA,EAAA,CAAG,OAAS,EAAA,aAAa,CAAG,EAAA;AAC9B,QAAA,OAAA,CAAQ,GAAI,CAAA;AAAA,UACV,KAAO,EAAA,8BAAA;AAAA,UACP,OAAS,EAAA,CAAA,GAAA,EAAM,OAAO,CAAA,aAAA,EAAW,aAAa,CAAA;AAAA,0CAAA,CAAA;AAAA,UAE9C,KAAO,EAAA;AAAA,YACL,OAAS,EAAA,CAAA;AAAA,YACT,WAAa,EAAA,QAAA;AAAA,YACb,WAAa,EAAA,SAAA;AAAA,WACf;AAAA,SACD,CAAA,CAAA;AAAA,OACH;AAAA,aACO,EAAI,EAAA;AAAA,KAAC;AAEd,IAAI,IAAA,OAAA,CAAQ,CAAC,CAAA,KAAM,UAAY,EAAA;AAE7B,MAAM,MAAA,eAAA,GAAkB,MAAM,OAAO,wBAAwB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA,CAAA;AAEpF,MAAA,MAAM,UAAW,CAAA,eAAA,EAAiB,EAAE,OAAA,EAAS,CAAA,CAAA;AAE7C,MAAA,OAAA,CAAQ,KAAK,CAAC,CAAA,CAAA;AAAA,KAChB;AAAA,GACF;AAAA,EACA,WAAa,EAAA;AAAA,IACX,QAAA,EAAU,MAAM,OAAO,wBAAwB,EAAE,IAAK,CAAA,CAAC,CAAM,KAAA,CAAA,CAAE,OAAO,CAAA;AAAA,GACxE;AACF,CAAC,CAAA,CAAA;AAED,eAAsB,IAAI,KAAiC,EAAA;AACzD,EAAA,MAAM,QAAQ,IAAI,CAAA,CAAA;AACpB","file":"index.js","sourcesContent":["{\n \"name\": \"@kubb/cli\",\n \"version\": \"3.0.0-alpha.13\",\n \"description\": \"Generator cli\",\n \"keywords\": [\n \"typescript\",\n \"plugins\",\n \"kubb\",\n \"codegen\",\n \"cli\"\n ],\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git://github.com/kubb-labs/kubb.git\",\n \"directory\": \"packages/cli\"\n },\n \"license\": \"MIT\",\n \"author\": \"Stijn Van Hulle <stijn@stijnvanhulle.be\",\n \"sideEffects\": false,\n \"type\": \"module\",\n \"exports\": {\n \".\": {\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\",\n \"default\": \"./dist/index.cjs\"\n }\n },\n \"main\": \"dist/index.cjs\",\n \"module\": \"dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"bin\": {\n \"bkubb\": \"bin/bkubb.cjs\",\n \"kubb\": \"bin/kubb.cjs\"\n },\n \"files\": [\n \"src\",\n \"dist\",\n \"bin\",\n \"!/**/**.test.**\",\n \"!/**/__tests__/**\"\n ],\n \"scripts\": {\n \"build\": \"tsup\",\n \"clean\": \"npx rimraf ./dist\",\n \"lint\": \"bun biome lint .\",\n \"lint:fix\": \"bun biome lint --apply-unsafe .\",\n \"release\": \"pnpm publish --no-git-check\",\n \"release:canary\": \"bash ../../.github/canary.sh && node ../../scripts/build.js canary && pnpm publish --no-git-check\",\n \"start\": \"tsup --watch\",\n \"test\": \"vitest --passWithNoTests\",\n \"typecheck\": \"tsc -p ./tsconfig.json --noEmit --emitDeclarationOnly false\"\n },\n \"dependencies\": {\n \"@kubb/core\": \"workspace:*\",\n \"@kubb/fs\": \"workspace:*\",\n \"bundle-require\": \"^5.0.0\",\n \"chokidar\": \"^3.6.0\",\n \"citty\": \"^0.1.6\",\n \"cli-progress\": \"^3.12.0\",\n \"consola\": \"^3.2.3\",\n \"cosmiconfig\": \"^9.0.0\",\n \"esbuild\": \"^0.23.1\",\n \"execa\": \"^9.3.1\",\n \"js-runtime\": \"^0.0.8\",\n \"latest-version\": \"^9.0.0\",\n \"p-queue\": \"^8.0.1\",\n \"semver\": \"^7.6.3\",\n \"string-argv\": \"^0.3.2\",\n \"tinyrainbow\": \"^1.2.0\"\n },\n \"devDependencies\": {\n \"@kubb/config-ts\": \"workspace:*\",\n \"@kubb/config-tsup\": \"workspace:*\",\n \"@kubb/plugin-oas\": \"workspace:*\",\n \"@types/cli-progress\": \"^3.11.6\",\n \"@types/node\": \"^20.16.3\",\n \"@types/semver\": \"^7.5.8\",\n \"source-map-support\": \"^0.5.21\",\n \"tsup\": \"^8.2.4\",\n \"typescript\": \"^5.5.4\"\n },\n \"engines\": {\n \"node\": \">=20\"\n },\n \"preferGlobal\": true,\n \"publishConfig\": {\n \"access\": \"public\",\n \"registry\": \"https://registry.npmjs.org/\"\n }\n}\n","import { defineCommand, runCommand, runMain } from 'citty'\nimport getLatestVersion from 'latest-version'\nimport { lt } from 'semver'\n\nimport { version } from '../package.json'\nimport consola from 'consola'\n\nconst name = 'kubb'\n\nconst main = defineCommand({\n meta: {\n name,\n version,\n description: 'Kubb generation',\n },\n async setup({ rawArgs }) {\n try {\n const latestVersion = await getLatestVersion('@kubb/cli')\n\n if (lt(version, latestVersion)) {\n consola.box({\n title: 'Update available for `Kubb` ',\n message: `\\`v${version}\\` → \\`v${latestVersion}\\`\nRun \\`npm install -g @kubb/cli\\` to update`,\n style: {\n padding: 2,\n borderColor: 'yellow',\n borderStyle: 'rounded',\n },\n })\n }\n } catch (_e) {}\n\n if (rawArgs[0] !== 'generate') {\n // generate is not being used\n const generateCommand = await import('./commands/generate.ts').then((r) => r.default)\n\n await runCommand(generateCommand, { rawArgs })\n\n process.exit(0)\n }\n },\n subCommands: {\n generate: () => import('./commands/generate.ts').then((r) => r.default),\n },\n})\n\nexport async function run(_argv?: string[]): Promise<void> {\n await runMain(main)\n}\n\nexport { generate } from './generate.ts'\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kubb/cli",
3
- "version": "3.0.0-alpha.11",
3
+ "version": "3.0.0-alpha.13",
4
4
  "description": "Generator cli",
5
5
  "keywords": [
6
6
  "typescript",
@@ -54,19 +54,19 @@
54
54
  "semver": "^7.6.3",
55
55
  "string-argv": "^0.3.2",
56
56
  "tinyrainbow": "^1.2.0",
57
- "@kubb/core": "3.0.0-alpha.11",
58
- "@kubb/fs": "3.0.0-alpha.11"
57
+ "@kubb/core": "3.0.0-alpha.13",
58
+ "@kubb/fs": "3.0.0-alpha.13"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@types/cli-progress": "^3.11.6",
62
- "@types/node": "^20.16.2",
62
+ "@types/node": "^20.16.3",
63
63
  "@types/semver": "^7.5.8",
64
64
  "source-map-support": "^0.5.21",
65
65
  "tsup": "^8.2.4",
66
66
  "typescript": "^5.5.4",
67
- "@kubb/config-ts": "3.0.0-alpha.11",
68
- "@kubb/config-tsup": "3.0.0-alpha.11",
69
- "@kubb/plugin-oas": "3.0.0-alpha.11"
67
+ "@kubb/config-ts": "3.0.0-alpha.13",
68
+ "@kubb/config-tsup": "3.0.0-alpha.13",
69
+ "@kubb/plugin-oas": "3.0.0-alpha.13"
70
70
  },
71
71
  "engines": {
72
72
  "node": ">=20"
@@ -8,10 +8,15 @@ import { getCosmiConfig } from '../utils/getCosmiConfig.ts'
8
8
  import { startWatcher } from '../utils/watcher.ts'
9
9
 
10
10
  import path from 'node:path'
11
+ import * as process from 'node:process'
11
12
  import { PromiseManager, isInputPath } from '@kubb/core'
12
13
  import { LogMapper, createLogger } from '@kubb/core/logger'
13
14
  import { generate } from '../generate.ts'
14
15
 
16
+ declare global {
17
+ var isDevtoolsEnabled: any
18
+ }
19
+
15
20
  const args = {
16
21
  config: {
17
22
  type: 'string',
@@ -59,7 +64,8 @@ const command = defineCommand({
59
64
  description: "[input] Generate files based on a 'kubb.config.ts' file",
60
65
  },
61
66
  args,
62
- async run({ args }) {
67
+ async run(commandContext) {
68
+ const { args } = commandContext
63
69
  const input = args._[0]
64
70
 
65
71
  if (args.help) {
@@ -111,6 +117,19 @@ const command = defineCommand({
111
117
  }
112
118
 
113
119
  await generate({ input, config, args })
120
+
121
+ if (globalThis.isDevtoolsEnabled) {
122
+ const restart = await logger.consola?.prompt('Restart(could be used to validate the profiler)?', {
123
+ type: 'confirm',
124
+ initial: false,
125
+ })
126
+
127
+ if (restart) {
128
+ await command.run?.(commandContext)
129
+ } else {
130
+ process.exit(1)
131
+ }
132
+ }
114
133
  },
115
134
  })
116
135
 
@@ -17,7 +17,7 @@ type SummaryProps = {
17
17
  }
18
18
 
19
19
  export function getSummary({ pluginManager, filesCreated, status, hrStart, config }: SummaryProps): string[] {
20
- const logs: string[] = []
20
+ const logs = new Set<string>()
21
21
  const elapsedSeconds = parseHrtimeToSeconds(process.hrtime(hrStart))
22
22
 
23
23
  const buildStartPlugins = pluginManager.executed
@@ -40,7 +40,7 @@ export function getSummary({ pluginManager, filesCreated, status, hrStart, confi
40
40
  output: path.isAbsolute(config.root) ? path.resolve(config.root, config.output.path) : config.root,
41
41
  } as const
42
42
 
43
- logs.push(
43
+ logs.add(
44
44
  [
45
45
  [`${c.bold('Plugins:')} ${meta.plugins}`, true],
46
46
  [`${c.dim('Failed:')} ${meta.pluginsFailed || 'none'}`, !!meta.pluginsFailed],
@@ -57,5 +57,5 @@ export function getSummary({ pluginManager, filesCreated, status, hrStart, confi
57
57
  .join('\n'),
58
58
  )
59
59
 
60
- return logs
60
+ return [...logs]
61
61
  }
@@ -1 +0,0 @@
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-EKC3Q472.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: 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.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","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 { Presets, SingleBar } from 'cli-progress'\nimport type { Args } from './commands/generate.ts'\nimport { createLogger } from '@kubb/core/logger'\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 exportType: 'barrelNamed',\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"]}