@kubb/cli 3.18.0 → 3.18.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.
@@ -179,7 +179,7 @@ const command = (0, citty.defineCommand)({
179
179
  if (args$1.debug) args$1.logLevel = "debug";
180
180
  const logLevel = __kubb_core_logger.LogMapper[args$1.logLevel] || 3;
181
181
  const logger = (0, __kubb_core_logger.createLogger)({ logLevel });
182
- const { generate } = await Promise.resolve().then(() => require("./generate-DbZb8mNG.cjs"));
182
+ const { generate } = await Promise.resolve().then(() => require("./generate-CKnWsDnu.cjs"));
183
183
  logger.emit("start", "Loading config");
184
184
  const result = await getCosmiConfig("kubb", args$1.config);
185
185
  logger.emit("success", `Config loaded(${picocolors.default.dim(node_path.default.relative(node_process.cwd(), result.filepath))})`);
@@ -248,7 +248,8 @@ const command = (0, citty.defineCommand)({
248
248
  }
249
249
  }
250
250
  });
251
+ var generate_default = command;
251
252
 
252
253
  //#endregion
253
- exports.default = command;
254
- //# sourceMappingURL=generate-DZp-7WcR.cjs.map
254
+ exports.default = generate_default;
255
+ //# sourceMappingURL=generate-Bu9WyH1N.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-Bu9WyH1N.cjs","names":["args","results: Array<Config>","jiti","path","pc","args","LogMapper","pc","path","process","PromiseManager"],"sources":["../src/utils/getPlugins.ts","../src/utils/getConfig.ts","../src/utils/getCosmiConfig.ts","../src/utils/watcher.ts","../src/commands/generate.ts"],"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 results: Array<Config> = []\n\n for (const item of JSONConfig) {\n const plugins = item.plugins ? await getPlugins(item.plugins) : undefined\n\n results.push({\n ...item,\n plugins,\n } as Config)\n }\n\n return results\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 { defineConfig, UserConfig } from '@kubb/core'\nimport { cosmiconfig } from 'cosmiconfig'\nimport { createJiti } from 'jiti'\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, {\n jsx: {\n runtime: 'automatic',\n importSource: '@kubb/react',\n },\n sourceMaps: true,\n })\n\n const mod = await jiti.import(configFile, { default: true })\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 pc from 'picocolors'\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', pc.yellow(pc.bold(`Change detected: ${type} ${file}`)))\n\n try {\n cb(path)\n } catch (_e) {\n logger?.emit('warning', pc.red('Watcher failed'))\n }\n })\n}\n","import path from 'node:path'\nimport * as process from 'node:process'\nimport { isInputPath, PromiseManager } from '@kubb/core'\nimport { createLogger, LogMapper } from '@kubb/core/logger'\nimport type { ArgsDef, ParsedArgs } from 'citty'\nimport { defineCommand, showUsage } from 'citty'\nimport type { SingleBar } from 'cli-progress'\nimport open from 'open'\nimport pc from 'picocolors'\nimport { getConfig } from '../utils/getConfig.ts'\nimport { getCosmiConfig } from '../utils/getCosmiConfig.ts'\nimport { startWatcher } from '../utils/watcher.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 ui: {\n type: 'boolean',\n description: 'Open ui',\n alias: 'u',\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 let name = ''\n const progressCache = new Map<string, SingleBar>()\n\n const { args } = commandContext\n\n const input = args._[0]\n\n if (args.help) {\n return showUsage(command)\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 const { generate } = await import('../runners/generate.ts')\n\n logger.emit('start', 'Loading config')\n\n const result = await getCosmiConfig('kubb', args.config)\n logger.emit('success', `Config loaded(${pc.dim(path.relative(process.cwd(), result.filepath))})`)\n\n const config = await getConfig(result, args)\n\n const start = async () => {\n if (Array.isArray(config)) {\n const promiseManager = new PromiseManager()\n const promises = config.map((c) => () => {\n name = c.name || ''\n progressCache.clear()\n\n return generate({\n input,\n config: c,\n args,\n progressCache,\n })\n })\n\n await promiseManager.run('seq', promises)\n return\n }\n\n progressCache.clear()\n\n await generate({\n input,\n config,\n progressCache,\n args,\n })\n\n return\n }\n\n if (args.ui) {\n const { startServer } = await import('@kubb/ui')\n\n await startServer(\n {\n stop: () => process.exit(1),\n restart: () => start(),\n getMeta: () => {\n const entries = [...progressCache.entries()]\n\n const percentages = entries.reduce(\n (acc, [key, singleBar]) => {\n acc[key] = singleBar.getProgress()\n\n return acc\n },\n {} as Record<string, number>,\n )\n\n return {\n name,\n percentages,\n }\n },\n },\n (info) => {\n const url = `${info.address}:${info.port}`.replace('::', 'http://localhost')\n logger.consola?.start(`Starting ui on ${url}`)\n\n open(url)\n },\n )\n }\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 start()\n logger.emit('start', pc.yellow(pc.bold(`Watching for changes in ${paths.join(' and ')}`)))\n })\n }\n }\n\n await start()\n\n if (globalThis.isDevtoolsEnabled) {\n const canRestart = await logger.consola?.prompt('Restart(could be used to validate the profiler)?', {\n type: 'confirm',\n initial: false,\n })\n\n if (canRestart) {\n await start()\n } else {\n process.exit(1)\n }\n }\n },\n})\n\nexport default command\n"],"mappings":"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"}
@@ -4,7 +4,6 @@ const node_process = require_chunk.__toESM(require("node:process"));
4
4
  const __kubb_core = require_chunk.__toESM(require("@kubb/core"));
5
5
  const __kubb_core_logger = require_chunk.__toESM(require("@kubb/core/logger"));
6
6
  const picocolors = require_chunk.__toESM(require("picocolors"));
7
- const __kubb_core_fs = require_chunk.__toESM(require("@kubb/core/fs"));
8
7
  const cli_progress = require_chunk.__toESM(require("cli-progress"));
9
8
  const node_url = require_chunk.__toESM(require("node:url"));
10
9
  const node_child_process = require_chunk.__toESM(require("node:child_process"));
@@ -609,6 +608,7 @@ const fallbackSymbols = {
609
608
  };
610
609
  const shouldUseMain = isUnicodeSupported();
611
610
  const figures = shouldUseMain ? mainSymbols : fallbackSymbols;
611
+ var figures_default = figures;
612
612
  const replacements = Object.entries(specialMainSymbols);
613
613
 
614
614
  //#endregion
@@ -690,8 +690,8 @@ const defaultVerboseFunction = ({ type, message, timestamp, piped, commandId, re
690
690
  const serializeTimestamp = (timestamp) => `${padField(timestamp.getHours(), 2)}:${padField(timestamp.getMinutes(), 2)}:${padField(timestamp.getSeconds(), 2)}.${padField(timestamp.getMilliseconds(), 3)}`;
691
691
  const padField = (field, padding) => String(field).padStart(padding, "0");
692
692
  const getFinalIcon = ({ failed, reject }) => {
693
- if (!failed) return figures.tick;
694
- return reject ? figures.cross : figures.warning;
693
+ if (!failed) return figures_default.tick;
694
+ return reject ? figures_default.cross : figures_default.warning;
695
695
  };
696
696
  const ICONS = {
697
697
  command: ({ piped }) => piped ? "|" : "$",
@@ -6621,36 +6621,6 @@ async function generate({ input, config, progressCache, args }) {
6621
6621
  logger.consola?.error(error);
6622
6622
  node_process.default.exit(1);
6623
6623
  }
6624
- if (userConfig.output.format === void 0) {
6625
- const config$1 = {
6626
- tabWidth: 2,
6627
- printWidth: 160,
6628
- singleQuote: true,
6629
- semi: false,
6630
- bracketSameLine: false,
6631
- endOfLine: "auto",
6632
- plugins: ["prettier/plugins/typescript"]
6633
- };
6634
- try {
6635
- logger?.emit("start", "Applying default Formatting");
6636
- const configPath = node_path.default.resolve(definedConfig.root, ".prettierrc.temp.json");
6637
- await (0, __kubb_core_fs.write)(configPath, JSON.stringify(config$1));
6638
- await execa("npx", [
6639
- "--yes",
6640
- "prettier",
6641
- "--ignore-unknown",
6642
- "--config",
6643
- configPath,
6644
- "--write",
6645
- node_path.default.resolve(definedConfig.root, definedConfig.output.path)
6646
- ]);
6647
- await (0, __kubb_core_fs.unlink)(configPath);
6648
- } catch (e) {
6649
- logger.consola?.warn("Prettier not found");
6650
- logger.consola?.error(e);
6651
- }
6652
- logger?.emit("success", "Applied default Formatting");
6653
- }
6654
6624
  if (config.output.format === "prettier") {
6655
6625
  logger?.emit("start", `Formatting with ${config.output.format}`);
6656
6626
  try {
@@ -6731,4 +6701,4 @@ async function generate({ input, config, progressCache, args }) {
6731
6701
 
6732
6702
  //#endregion
6733
6703
  exports.generate = generate;
6734
- //# sourceMappingURL=generate-DbZb8mNG.cjs.map
6704
+ //# sourceMappingURL=generate-CKnWsDnu.cjs.map