@kubb/cli 2.21.0 → 2.21.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-FUT7JJ3R.js +251 -0
- package/dist/chunk-FUT7JJ3R.js.map +1 -0
- package/dist/{generate-2DXZUM6P.cjs → chunk-H7O7TB7S.cjs} +3360 -3539
- package/dist/chunk-H7O7TB7S.cjs.map +1 -0
- package/dist/generate-IRW46OYH.js +233 -0
- package/dist/generate-IRW46OYH.js.map +1 -0
- package/dist/generate-T7SYG5OY.cjs +238 -0
- package/dist/generate-T7SYG5OY.cjs.map +1 -0
- package/dist/index.cjs +8 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +51 -1
- package/dist/index.d.ts +51 -1
- package/dist/index.js +8 -3
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
- package/src/index.ts +2 -0
- package/dist/chunk-MEJ2XVQE.cjs +0 -73
- package/dist/chunk-MEJ2XVQE.cjs.map +0 -1
- package/dist/generate-2DXZUM6P.cjs.map +0 -1
- package/dist/generate-SXM56MPF.js +0 -476
- package/dist/generate-SXM56MPF.js.map +0 -1
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import {
|
|
2
|
+
generate,
|
|
3
|
+
spinner
|
|
4
|
+
} from "./chunk-FUT7JJ3R.js";
|
|
5
|
+
|
|
6
|
+
// src/commands/generate.ts
|
|
7
|
+
import { LogLevel } from "@kubb/core/logger";
|
|
8
|
+
import { defineCommand, showUsage } from "citty";
|
|
9
|
+
import { execa } from "execa";
|
|
10
|
+
import c2 from "tinyrainbow";
|
|
11
|
+
import path from "path";
|
|
12
|
+
|
|
13
|
+
// src/utils/getConfig.ts
|
|
14
|
+
import { isPromise } from "@kubb/core/utils";
|
|
15
|
+
|
|
16
|
+
// src/utils/getPlugins.ts
|
|
17
|
+
import { PackageManager } from "@kubb/core";
|
|
18
|
+
function isJSONPlugins(plugins) {
|
|
19
|
+
return !!plugins?.some((plugin) => {
|
|
20
|
+
return Array.isArray(plugin) && typeof plugin?.at(0) === "string";
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
function isObjectPlugins(plugins) {
|
|
24
|
+
return plugins instanceof Object && !Array.isArray(plugins);
|
|
25
|
+
}
|
|
26
|
+
async function importPlugin(name, options) {
|
|
27
|
+
const packageManager = new PackageManager(process.cwd());
|
|
28
|
+
const importedPlugin = process.env.NODE_ENV === "test" ? await import(name) : await packageManager.import(name);
|
|
29
|
+
return importedPlugin?.default ? importedPlugin.default(options) : importedPlugin(options);
|
|
30
|
+
}
|
|
31
|
+
function getPlugins(plugins) {
|
|
32
|
+
if (isObjectPlugins(plugins)) {
|
|
33
|
+
throw new Error("Object plugins are not supported anymore, best to use http://kubb.dev/guide/configure#json");
|
|
34
|
+
}
|
|
35
|
+
if (isJSONPlugins(plugins)) {
|
|
36
|
+
const jsonPlugins = plugins;
|
|
37
|
+
const promises = jsonPlugins.map((plugin) => {
|
|
38
|
+
const [name, options = {}] = plugin;
|
|
39
|
+
return importPlugin(name, options);
|
|
40
|
+
});
|
|
41
|
+
return Promise.all(promises);
|
|
42
|
+
}
|
|
43
|
+
return Promise.resolve(plugins);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// src/utils/getConfig.ts
|
|
47
|
+
async function getConfig(result, args2) {
|
|
48
|
+
const config = result?.config;
|
|
49
|
+
let kubbUserConfig = Promise.resolve(config);
|
|
50
|
+
if (typeof config === "function") {
|
|
51
|
+
const possiblePromise = config(args2);
|
|
52
|
+
if (isPromise(possiblePromise)) {
|
|
53
|
+
kubbUserConfig = possiblePromise;
|
|
54
|
+
}
|
|
55
|
+
kubbUserConfig = Promise.resolve(possiblePromise);
|
|
56
|
+
}
|
|
57
|
+
let JSONConfig = await kubbUserConfig;
|
|
58
|
+
if (Array.isArray(JSONConfig)) {
|
|
59
|
+
const promises = JSONConfig.map(async (item) => {
|
|
60
|
+
return {
|
|
61
|
+
...item,
|
|
62
|
+
plugins: item.plugins ? await getPlugins(item.plugins) : void 0
|
|
63
|
+
};
|
|
64
|
+
});
|
|
65
|
+
return Promise.all(promises);
|
|
66
|
+
}
|
|
67
|
+
JSONConfig = {
|
|
68
|
+
...JSONConfig,
|
|
69
|
+
plugins: JSONConfig.plugins ? await getPlugins(JSONConfig.plugins) : void 0
|
|
70
|
+
};
|
|
71
|
+
return JSONConfig;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// src/utils/getCosmiConfig.ts
|
|
75
|
+
import { bundleRequire } from "bundle-require";
|
|
76
|
+
import { cosmiconfig } from "cosmiconfig";
|
|
77
|
+
var tsLoader = async (configFile) => {
|
|
78
|
+
const { mod } = await bundleRequire({
|
|
79
|
+
filepath: configFile,
|
|
80
|
+
preserveTemporaryFile: false
|
|
81
|
+
});
|
|
82
|
+
return mod.default;
|
|
83
|
+
};
|
|
84
|
+
async function getCosmiConfig(moduleName, config) {
|
|
85
|
+
const searchPlaces = [
|
|
86
|
+
"package.json",
|
|
87
|
+
`.${moduleName}rc`,
|
|
88
|
+
`.${moduleName}rc.json`,
|
|
89
|
+
`.${moduleName}rc.yaml`,
|
|
90
|
+
`.${moduleName}rc.yml`,
|
|
91
|
+
`.${moduleName}rc.ts`,
|
|
92
|
+
`.${moduleName}rc.js`,
|
|
93
|
+
`.${moduleName}rc.mjs`,
|
|
94
|
+
`.${moduleName}rc.cjs`,
|
|
95
|
+
`${moduleName}.config.ts`,
|
|
96
|
+
`${moduleName}.config.js`,
|
|
97
|
+
`${moduleName}.config.mjs`,
|
|
98
|
+
`${moduleName}.config.cjs`
|
|
99
|
+
];
|
|
100
|
+
const explorer = cosmiconfig(moduleName, {
|
|
101
|
+
cache: false,
|
|
102
|
+
searchPlaces: [
|
|
103
|
+
...searchPlaces.map((searchPlace) => {
|
|
104
|
+
return `.config/${searchPlace}`;
|
|
105
|
+
}),
|
|
106
|
+
...searchPlaces.map((searchPlace) => {
|
|
107
|
+
return `configs/${searchPlace}`;
|
|
108
|
+
}),
|
|
109
|
+
...searchPlaces
|
|
110
|
+
],
|
|
111
|
+
loaders: {
|
|
112
|
+
".ts": tsLoader
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
const result = config ? await explorer.load(config) : await explorer.search();
|
|
116
|
+
if (result?.isEmpty || !result || !result.config) {
|
|
117
|
+
throw new Error("Config not defined, create a kubb.config.js or pass through your config with the option --config");
|
|
118
|
+
}
|
|
119
|
+
return result;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// src/utils/watcher.ts
|
|
123
|
+
import c from "tinyrainbow";
|
|
124
|
+
async function startWatcher(path2, cb) {
|
|
125
|
+
const { watch } = await import("chokidar");
|
|
126
|
+
const ignored = ["**/{.git,node_modules}/**"];
|
|
127
|
+
const watcher = watch(path2, {
|
|
128
|
+
ignorePermissionErrors: true,
|
|
129
|
+
ignored
|
|
130
|
+
});
|
|
131
|
+
watcher.on("all", (type, file) => {
|
|
132
|
+
spinner.succeed(c.yellow(c.bold(`Change detected: ${type} ${file}`)));
|
|
133
|
+
spinner.spinner = "clock";
|
|
134
|
+
try {
|
|
135
|
+
cb(path2);
|
|
136
|
+
} catch (e) {
|
|
137
|
+
spinner.warn(c.red("Watcher failed"));
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
// src/commands/generate.ts
|
|
144
|
+
import { PromiseManager, isInputPath } from "@kubb/core";
|
|
145
|
+
var args = {
|
|
146
|
+
config: {
|
|
147
|
+
type: "string",
|
|
148
|
+
description: "Path to the Kubb config",
|
|
149
|
+
alias: "c"
|
|
150
|
+
},
|
|
151
|
+
logLevel: {
|
|
152
|
+
type: "string",
|
|
153
|
+
description: "Info, silent or debug",
|
|
154
|
+
alias: "l",
|
|
155
|
+
default: LogLevel.info,
|
|
156
|
+
valueHint: `${LogLevel.silent}|${LogLevel.info}|${LogLevel.debug}`
|
|
157
|
+
},
|
|
158
|
+
watch: {
|
|
159
|
+
type: "boolean",
|
|
160
|
+
description: "Watch mode based on the input file",
|
|
161
|
+
alias: "w",
|
|
162
|
+
default: false
|
|
163
|
+
},
|
|
164
|
+
bun: {
|
|
165
|
+
type: "boolean",
|
|
166
|
+
description: "Run Kubb with Bun",
|
|
167
|
+
alias: "b",
|
|
168
|
+
default: false
|
|
169
|
+
},
|
|
170
|
+
debug: {
|
|
171
|
+
type: "boolean",
|
|
172
|
+
description: "Override logLevel to debug",
|
|
173
|
+
alias: "d",
|
|
174
|
+
default: false
|
|
175
|
+
},
|
|
176
|
+
help: {
|
|
177
|
+
type: "boolean",
|
|
178
|
+
description: "Show help",
|
|
179
|
+
alias: "h",
|
|
180
|
+
default: false
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
var command = defineCommand({
|
|
184
|
+
meta: {
|
|
185
|
+
name: "generate",
|
|
186
|
+
description: "[input] Generate files based on a 'kubb.config.ts' file"
|
|
187
|
+
},
|
|
188
|
+
args,
|
|
189
|
+
setup() {
|
|
190
|
+
spinner.start("\u{1F50D} Loading config");
|
|
191
|
+
},
|
|
192
|
+
async run({ args: args2 }) {
|
|
193
|
+
const input = args2._[0];
|
|
194
|
+
if (args2.help) {
|
|
195
|
+
showUsage(command);
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
if (args2.debug) {
|
|
199
|
+
args2.logLevel = LogLevel.debug;
|
|
200
|
+
}
|
|
201
|
+
if (args2.bun) {
|
|
202
|
+
const command2 = process.argv.splice(2).filter((item) => item !== "--bun");
|
|
203
|
+
await execa("bkubb", command2, { stdout: process.stdout, stderr: process.stderr });
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
const result = await getCosmiConfig("kubb", args2.config);
|
|
207
|
+
spinner.succeed(`\u{1F50D} Config loaded(${c2.dim(path.relative(process.cwd(), result.filepath))})`);
|
|
208
|
+
const config = await getConfig(result, args2);
|
|
209
|
+
if (args2.watch) {
|
|
210
|
+
if (Array.isArray(config)) {
|
|
211
|
+
throw new Error("Cannot use watcher with multiple Configs(array)");
|
|
212
|
+
}
|
|
213
|
+
if (isInputPath(config)) {
|
|
214
|
+
return startWatcher([input || config.input.path], async (paths) => {
|
|
215
|
+
await generate({ config, args: args2 });
|
|
216
|
+
spinner.spinner = "simpleDotsScrolling";
|
|
217
|
+
spinner.start(c2.yellow(c2.bold(`Watching for changes in ${paths.join(" and ")}`)));
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
if (Array.isArray(config)) {
|
|
222
|
+
const promiseManager = new PromiseManager();
|
|
223
|
+
const promises = config.map((item) => () => generate({ input, config: item, args: args2 }));
|
|
224
|
+
return promiseManager.run("seq", promises);
|
|
225
|
+
}
|
|
226
|
+
await generate({ input, config, args: args2 });
|
|
227
|
+
}
|
|
228
|
+
});
|
|
229
|
+
var generate_default = command;
|
|
230
|
+
export {
|
|
231
|
+
generate_default as default
|
|
232
|
+
};
|
|
233
|
+
//# sourceMappingURL=generate-IRW46OYH.js.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"],"sourcesContent":["import { LogLevel } from '@kubb/core/logger'\nimport { defineCommand, showUsage } from 'citty'\nimport type { ArgsDef, ParsedArgs } from 'citty'\nimport { execa } from 'execa'\nimport c from 'tinyrainbow'\n\nimport path from 'node:path'\nimport { getConfig } from '../utils/getConfig.ts'\nimport { getCosmiConfig } from '../utils/getCosmiConfig.ts'\nimport { spinner } from '../utils/spinner.ts'\nimport { startWatcher } from '../utils/watcher.ts'\n\nimport { PromiseManager, isInputPath } from '@kubb/core'\nimport { generate } from '../generate.ts'\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: LogLevel.info,\n valueHint: `${LogLevel.silent}|${LogLevel.info}|${LogLevel.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 setup() {\n spinner.start('🔍 Loading config')\n },\n async run({ args }) {\n const input = args._[0]\n\n if (args.help) {\n showUsage(command)\n return\n }\n\n if (args.debug) {\n args.logLevel = 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 result = await getCosmiConfig('kubb', args.config)\n spinner.succeed(`🔍 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 })\n spinner.spinner = 'simpleDotsScrolling'\n spinner.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})\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 { PackageManager } from '@kubb/core'\n\nimport type { UserConfig } from '@kubb/core'\n\nfunction isJSONPlugins(plugins: UserConfig['plugins']): plugins is Array<[name: string, options: object]> {\n return !!(plugins as Array<[name: string, options: object]>[])?.some((plugin) => {\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\nasync function importPlugin(name: string, options: object): Promise<UserConfig['plugins']> {\n const packageManager = new PackageManager(process.cwd())\n\n const importedPlugin: any = process.env.NODE_ENV === 'test' ? await import(name) : await packageManager.import(name)\n\n return importedPlugin?.default ? importedPlugin.default(options) : importedPlugin(options)\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/guide/configure#json')\n }\n\n if (isJSONPlugins(plugins)) {\n const jsonPlugins = plugins as Array<[name: string, options: object]>\n const promises = jsonPlugins.map((plugin) => {\n const [name, options = {}] = plugin\n return importPlugin(name, options)\n })\n return Promise.all(promises) as Promise<UserConfig['plugins']>\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'\n\nimport { spinner } from './spinner.ts'\n\nexport async function startWatcher(path: string[], cb: (path: string[]) => Promise<void>): Promise<void> {\n const { watch } = await import('chokidar')\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 spinner.succeed(c.yellow(c.bold(`Change detected: ${type} ${file}`)))\n // revert back\n spinner.spinner = 'clock'\n\n try {\n cb(path)\n } catch (e) {\n spinner.warn(c.red('Watcher failed'))\n }\n })\n\n return\n}\n"],"mappings":"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","names":["c","args","path","args","command","c"]}
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
var _chunkH7O7TB7Scjs = require('./chunk-H7O7TB7S.cjs');
|
|
8
|
+
|
|
9
|
+
// src/commands/generate.ts
|
|
10
|
+
_chunkH7O7TB7Scjs.init_cjs_shims.call(void 0, );
|
|
11
|
+
var _logger = require('@kubb/core/logger');
|
|
12
|
+
var _citty = require('citty');
|
|
13
|
+
var _path = require('path'); var _path2 = _interopRequireDefault(_path);
|
|
14
|
+
|
|
15
|
+
// src/utils/getConfig.ts
|
|
16
|
+
_chunkH7O7TB7Scjs.init_cjs_shims.call(void 0, );
|
|
17
|
+
var _utils = require('@kubb/core/utils');
|
|
18
|
+
|
|
19
|
+
// src/utils/getPlugins.ts
|
|
20
|
+
_chunkH7O7TB7Scjs.init_cjs_shims.call(void 0, );
|
|
21
|
+
var _core = require('@kubb/core');
|
|
22
|
+
function isJSONPlugins(plugins) {
|
|
23
|
+
return !!_optionalChain([plugins, 'optionalAccess', _2 => _2.some, 'call', _3 => _3((plugin) => {
|
|
24
|
+
return Array.isArray(plugin) && typeof _optionalChain([plugin, 'optionalAccess', _4 => _4.at, 'call', _5 => _5(0)]) === "string";
|
|
25
|
+
})]);
|
|
26
|
+
}
|
|
27
|
+
function isObjectPlugins(plugins) {
|
|
28
|
+
return plugins instanceof Object && !Array.isArray(plugins);
|
|
29
|
+
}
|
|
30
|
+
async function importPlugin(name, options) {
|
|
31
|
+
const packageManager = new (0, _core.PackageManager)(process.cwd());
|
|
32
|
+
const importedPlugin = process.env.NODE_ENV === "test" ? await Promise.resolve().then(() => _interopRequireWildcard(require(name))) : await packageManager.import(name);
|
|
33
|
+
return _optionalChain([importedPlugin, 'optionalAccess', _6 => _6.default]) ? importedPlugin.default(options) : importedPlugin(options);
|
|
34
|
+
}
|
|
35
|
+
function getPlugins(plugins) {
|
|
36
|
+
if (isObjectPlugins(plugins)) {
|
|
37
|
+
throw new Error("Object plugins are not supported anymore, best to use http://kubb.dev/guide/configure#json");
|
|
38
|
+
}
|
|
39
|
+
if (isJSONPlugins(plugins)) {
|
|
40
|
+
const jsonPlugins = plugins;
|
|
41
|
+
const promises = jsonPlugins.map((plugin) => {
|
|
42
|
+
const [name, options = {}] = plugin;
|
|
43
|
+
return importPlugin(name, options);
|
|
44
|
+
});
|
|
45
|
+
return Promise.all(promises);
|
|
46
|
+
}
|
|
47
|
+
return Promise.resolve(plugins);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// src/utils/getConfig.ts
|
|
51
|
+
async function getConfig(result, args2) {
|
|
52
|
+
const config = _optionalChain([result, 'optionalAccess', _7 => _7.config]);
|
|
53
|
+
let kubbUserConfig = Promise.resolve(config);
|
|
54
|
+
if (typeof config === "function") {
|
|
55
|
+
const possiblePromise = config(args2);
|
|
56
|
+
if (_utils.isPromise.call(void 0, possiblePromise)) {
|
|
57
|
+
kubbUserConfig = possiblePromise;
|
|
58
|
+
}
|
|
59
|
+
kubbUserConfig = Promise.resolve(possiblePromise);
|
|
60
|
+
}
|
|
61
|
+
let JSONConfig = await kubbUserConfig;
|
|
62
|
+
if (Array.isArray(JSONConfig)) {
|
|
63
|
+
const promises = JSONConfig.map(async (item) => {
|
|
64
|
+
return {
|
|
65
|
+
...item,
|
|
66
|
+
plugins: item.plugins ? await getPlugins(item.plugins) : void 0
|
|
67
|
+
};
|
|
68
|
+
});
|
|
69
|
+
return Promise.all(promises);
|
|
70
|
+
}
|
|
71
|
+
JSONConfig = {
|
|
72
|
+
...JSONConfig,
|
|
73
|
+
plugins: JSONConfig.plugins ? await getPlugins(JSONConfig.plugins) : void 0
|
|
74
|
+
};
|
|
75
|
+
return JSONConfig;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// src/utils/getCosmiConfig.ts
|
|
79
|
+
_chunkH7O7TB7Scjs.init_cjs_shims.call(void 0, );
|
|
80
|
+
var _bundlerequire = require('bundle-require');
|
|
81
|
+
var _cosmiconfig = require('cosmiconfig');
|
|
82
|
+
var tsLoader = async (configFile) => {
|
|
83
|
+
const { mod } = await _bundlerequire.bundleRequire.call(void 0, {
|
|
84
|
+
filepath: configFile,
|
|
85
|
+
preserveTemporaryFile: false
|
|
86
|
+
});
|
|
87
|
+
return mod.default;
|
|
88
|
+
};
|
|
89
|
+
async function getCosmiConfig(moduleName, config) {
|
|
90
|
+
const searchPlaces = [
|
|
91
|
+
"package.json",
|
|
92
|
+
`.${moduleName}rc`,
|
|
93
|
+
`.${moduleName}rc.json`,
|
|
94
|
+
`.${moduleName}rc.yaml`,
|
|
95
|
+
`.${moduleName}rc.yml`,
|
|
96
|
+
`.${moduleName}rc.ts`,
|
|
97
|
+
`.${moduleName}rc.js`,
|
|
98
|
+
`.${moduleName}rc.mjs`,
|
|
99
|
+
`.${moduleName}rc.cjs`,
|
|
100
|
+
`${moduleName}.config.ts`,
|
|
101
|
+
`${moduleName}.config.js`,
|
|
102
|
+
`${moduleName}.config.mjs`,
|
|
103
|
+
`${moduleName}.config.cjs`
|
|
104
|
+
];
|
|
105
|
+
const explorer = _cosmiconfig.cosmiconfig.call(void 0, moduleName, {
|
|
106
|
+
cache: false,
|
|
107
|
+
searchPlaces: [
|
|
108
|
+
...searchPlaces.map((searchPlace) => {
|
|
109
|
+
return `.config/${searchPlace}`;
|
|
110
|
+
}),
|
|
111
|
+
...searchPlaces.map((searchPlace) => {
|
|
112
|
+
return `configs/${searchPlace}`;
|
|
113
|
+
}),
|
|
114
|
+
...searchPlaces
|
|
115
|
+
],
|
|
116
|
+
loaders: {
|
|
117
|
+
".ts": tsLoader
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
const result = config ? await explorer.load(config) : await explorer.search();
|
|
121
|
+
if (_optionalChain([result, 'optionalAccess', _8 => _8.isEmpty]) || !result || !result.config) {
|
|
122
|
+
throw new Error("Config not defined, create a kubb.config.js or pass through your config with the option --config");
|
|
123
|
+
}
|
|
124
|
+
return result;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// src/utils/watcher.ts
|
|
128
|
+
_chunkH7O7TB7Scjs.init_cjs_shims.call(void 0, );
|
|
129
|
+
async function startWatcher(path2, cb) {
|
|
130
|
+
const { watch } = await Promise.resolve().then(() => _interopRequireWildcard(require("chokidar")));
|
|
131
|
+
const ignored = ["**/{.git,node_modules}/**"];
|
|
132
|
+
const watcher = watch(path2, {
|
|
133
|
+
ignorePermissionErrors: true,
|
|
134
|
+
ignored
|
|
135
|
+
});
|
|
136
|
+
watcher.on("all", (type, file) => {
|
|
137
|
+
_chunkH7O7TB7Scjs.spinner.succeed(_chunkH7O7TB7Scjs.p.yellow(_chunkH7O7TB7Scjs.p.bold(`Change detected: ${type} ${file}`)));
|
|
138
|
+
_chunkH7O7TB7Scjs.spinner.spinner = "clock";
|
|
139
|
+
try {
|
|
140
|
+
cb(path2);
|
|
141
|
+
} catch (e) {
|
|
142
|
+
_chunkH7O7TB7Scjs.spinner.warn(_chunkH7O7TB7Scjs.p.red("Watcher failed"));
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
// src/commands/generate.ts
|
|
149
|
+
|
|
150
|
+
var args = {
|
|
151
|
+
config: {
|
|
152
|
+
type: "string",
|
|
153
|
+
description: "Path to the Kubb config",
|
|
154
|
+
alias: "c"
|
|
155
|
+
},
|
|
156
|
+
logLevel: {
|
|
157
|
+
type: "string",
|
|
158
|
+
description: "Info, silent or debug",
|
|
159
|
+
alias: "l",
|
|
160
|
+
default: _logger.LogLevel.info,
|
|
161
|
+
valueHint: `${_logger.LogLevel.silent}|${_logger.LogLevel.info}|${_logger.LogLevel.debug}`
|
|
162
|
+
},
|
|
163
|
+
watch: {
|
|
164
|
+
type: "boolean",
|
|
165
|
+
description: "Watch mode based on the input file",
|
|
166
|
+
alias: "w",
|
|
167
|
+
default: false
|
|
168
|
+
},
|
|
169
|
+
bun: {
|
|
170
|
+
type: "boolean",
|
|
171
|
+
description: "Run Kubb with Bun",
|
|
172
|
+
alias: "b",
|
|
173
|
+
default: false
|
|
174
|
+
},
|
|
175
|
+
debug: {
|
|
176
|
+
type: "boolean",
|
|
177
|
+
description: "Override logLevel to debug",
|
|
178
|
+
alias: "d",
|
|
179
|
+
default: false
|
|
180
|
+
},
|
|
181
|
+
help: {
|
|
182
|
+
type: "boolean",
|
|
183
|
+
description: "Show help",
|
|
184
|
+
alias: "h",
|
|
185
|
+
default: false
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
var command = _citty.defineCommand.call(void 0, {
|
|
189
|
+
meta: {
|
|
190
|
+
name: "generate",
|
|
191
|
+
description: "[input] Generate files based on a 'kubb.config.ts' file"
|
|
192
|
+
},
|
|
193
|
+
args,
|
|
194
|
+
setup() {
|
|
195
|
+
_chunkH7O7TB7Scjs.spinner.start("\u{1F50D} Loading config");
|
|
196
|
+
},
|
|
197
|
+
async run({ args: args2 }) {
|
|
198
|
+
const input = args2._[0];
|
|
199
|
+
if (args2.help) {
|
|
200
|
+
_citty.showUsage.call(void 0, command);
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
if (args2.debug) {
|
|
204
|
+
args2.logLevel = _logger.LogLevel.debug;
|
|
205
|
+
}
|
|
206
|
+
if (args2.bun) {
|
|
207
|
+
const command2 = process.argv.splice(2).filter((item) => item !== "--bun");
|
|
208
|
+
await _chunkH7O7TB7Scjs.execa.call(void 0, "bkubb", command2, { stdout: process.stdout, stderr: process.stderr });
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
const result = await getCosmiConfig("kubb", args2.config);
|
|
212
|
+
_chunkH7O7TB7Scjs.spinner.succeed(`\u{1F50D} Config loaded(${_chunkH7O7TB7Scjs.p.dim(_path2.default.relative(process.cwd(), result.filepath))})`);
|
|
213
|
+
const config = await getConfig(result, args2);
|
|
214
|
+
if (args2.watch) {
|
|
215
|
+
if (Array.isArray(config)) {
|
|
216
|
+
throw new Error("Cannot use watcher with multiple Configs(array)");
|
|
217
|
+
}
|
|
218
|
+
if (_core.isInputPath.call(void 0, config)) {
|
|
219
|
+
return startWatcher([input || config.input.path], async (paths) => {
|
|
220
|
+
await _chunkH7O7TB7Scjs.generate.call(void 0, { config, args: args2 });
|
|
221
|
+
_chunkH7O7TB7Scjs.spinner.spinner = "simpleDotsScrolling";
|
|
222
|
+
_chunkH7O7TB7Scjs.spinner.start(_chunkH7O7TB7Scjs.p.yellow(_chunkH7O7TB7Scjs.p.bold(`Watching for changes in ${paths.join(" and ")}`)));
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
if (Array.isArray(config)) {
|
|
227
|
+
const promiseManager = new (0, _core.PromiseManager)();
|
|
228
|
+
const promises = config.map((item) => () => _chunkH7O7TB7Scjs.generate.call(void 0, { input, config: item, args: args2 }));
|
|
229
|
+
return promiseManager.run("seq", promises);
|
|
230
|
+
}
|
|
231
|
+
await _chunkH7O7TB7Scjs.generate.call(void 0, { input, config, args: args2 });
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
var generate_default = command;
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
exports.default = generate_default;
|
|
238
|
+
//# sourceMappingURL=generate-T7SYG5OY.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":["args","path","command"],"mappings":";;;;;;;;;AAAA;AAAA,SAAS,gBAAgB;AACzB,SAAS,eAAe,iBAAiB;AAKzC,OAAO,UAAU;;;ACNjB;AAAA,SAAS,iBAAiB;;;ACA1B;AAAA,SAAS,sBAAsB;AAI/B,SAAS,cAAc,SAAmF;AACxG,SAAO,CAAC,CAAE,SAAsD,KAAK,CAAC,WAAW;AAC/E,WAAO,MAAM,QAAQ,MAAM,KAAK,OAAO,QAAQ,GAAG,CAAC,MAAM;AAAA,EAC3D,CAAC;AACH;AAEA,SAAS,gBAAgB,SAAgD;AACvE,SAAO,mBAAmB,UAAU,CAAC,MAAM,QAAQ,OAAO;AAC5D;AAEA,eAAe,aAAa,MAAc,SAAiD;AACzF,QAAM,iBAAiB,IAAI,eAAe,QAAQ,IAAI,CAAC;AAEvD,QAAM,iBAAsB,QAAQ,IAAI,aAAa,SAAS,MAAM,OAAO,QAAQ,MAAM,eAAe,OAAO,IAAI;AAEnH,SAAO,gBAAgB,UAAU,eAAe,QAAQ,OAAO,IAAI,eAAe,OAAO;AAC3F;AAEO,SAAS,WAAW,SAAgE;AACzF,MAAI,gBAAgB,OAAO,GAAG;AAC5B,UAAM,IAAI,MAAM,4FAA4F;AAAA,EAC9G;AAEA,MAAI,cAAc,OAAO,GAAG;AAC1B,UAAM,cAAc;AACpB,UAAM,WAAW,YAAY,IAAI,CAAC,WAAW;AAC3C,YAAM,CAAC,MAAM,UAAU,CAAC,CAAC,IAAI;AAC7B,aAAO,aAAa,MAAM,OAAO;AAAA,IACnC,CAAC;AACD,WAAO,QAAQ,IAAI,QAAQ;AAAA,EAC7B;AAEA,SAAO,QAAQ,QAAQ,OAAO;AAChC;;;AD1BA,eAAsB,UAAU,QAA2BA,OAA6C;AACtG,QAAM,SAAS,QAAQ;AACvB,MAAI,iBAAiB,QAAQ,QAAQ,MAAM;AAG3C,MAAI,OAAO,WAAW,YAAY;AAChC,UAAM,kBAAkB,OAAOA,KAAI;AACnC,QAAI,UAAU,eAAe,GAAG;AAC9B,uBAAiB;AAAA,IACnB;AACA,qBAAiB,QAAQ,QAAQ,eAAe;AAAA,EAClD;AAEA,MAAI,aAAa,MAAM;AAEvB,MAAI,MAAM,QAAQ,UAAU,GAAG;AAC7B,UAAM,WAAW,WAAW,IAAI,OAAO,SAAS;AAC9C,aAAO;AAAA,QACL,GAAG;AAAA,QACH,SAAS,KAAK,UAAU,MAAM,WAAW,KAAK,OAAO,IAAI;AAAA,MAC3D;AAAA,IACF,CAAC;AAED,WAAO,QAAQ,IAAI,QAAQ;AAAA,EAC7B;AAEA,eAAa;AAAA,IACX,GAAG;AAAA,IACH,SAAS,WAAW,UAAU,MAAM,WAAW,WAAW,OAAO,IAAI;AAAA,EACvE;AAEA,SAAO;AACT;;;AE3CA;AAAA,SAAS,qBAAqB;AAC9B,SAAS,mBAAmB;AAU5B,IAAM,WAAW,OAAO,eAAuB;AAC7C,QAAM,EAAE,IAAI,IAAI,MAAM,cAAc;AAAA,IAClC,UAAU;AAAA,IACV,uBAAuB;AAAA,EACzB,CAAC;AAED,SAAO,IAAI;AACb;AAYA,eAAsB,eAAe,YAAoB,QAA6C;AACpG,QAAM,eAAe;AAAA,IACnB;AAAA,IACA,IAAI,UAAU;AAAA,IACd,IAAI,UAAU;AAAA,IACd,IAAI,UAAU;AAAA,IACd,IAAI,UAAU;AAAA,IAEd,IAAI,UAAU;AAAA,IACd,IAAI,UAAU;AAAA,IACd,IAAI,UAAU;AAAA,IACd,IAAI,UAAU;AAAA,IAEd,GAAG,UAAU;AAAA,IACb,GAAG,UAAU;AAAA,IACb,GAAG,UAAU;AAAA,IACb,GAAG,UAAU;AAAA,EACf;AACA,QAAM,WAAW,YAAY,YAAY;AAAA,IACvC,OAAO;AAAA,IACP,cAAc;AAAA,MACZ,GAAG,aAAa,IAAI,CAAC,gBAAgB;AACnC,eAAO,WAAW,WAAW;AAAA,MAC/B,CAAC;AAAA,MACD,GAAG,aAAa,IAAI,CAAC,gBAAgB;AACnC,eAAO,WAAW,WAAW;AAAA,MAC/B,CAAC;AAAA,MACD,GAAG;AAAA,IACL;AAAA,IACA,SAAS;AAAA,MACP,OAAO;AAAA,IACT;AAAA,EACF,CAAC;AAED,QAAM,SAAS,SAAS,MAAM,SAAS,KAAK,MAAM,IAAI,MAAM,SAAS,OAAO;AAE5E,MAAI,QAAQ,WAAW,CAAC,UAAU,CAAC,OAAO,QAAQ;AAChD,UAAM,IAAI,MAAM,kGAAkG;AAAA,EACpH;AAEA,SAAO;AACT;;;ACvEA;AAIA,eAAsB,aAAaC,OAAgB,IAAsD;AACvG,QAAM,EAAE,MAAM,IAAI,MAAM,OAAO,UAAU;AAEzC,QAAM,UAAU,CAAC,2BAA2B;AAE5C,QAAM,UAAU,MAAMA,OAAM;AAAA,IAC1B,wBAAwB;AAAA,IACxB;AAAA,EACF,CAAC;AACD,UAAQ,GAAG,OAAO,CAAC,MAAM,SAAS;AAChC,YAAQ,QAAQ,EAAE,OAAO,EAAE,KAAK,oBAAoB,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;AAEpE,YAAQ,UAAU;AAElB,QAAI;AACF,SAAGA,KAAI;AAAA,IACT,SAAS,GAAG;AACV,cAAQ,KAAK,EAAE,IAAI,gBAAgB,CAAC;AAAA,IACtC;AAAA,EACF,CAAC;AAED;AACF;;;AJdA,SAAS,gBAAgB,mBAAmB;AAG5C,IAAM,OAAO;AAAA,EACX,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,aAAa;AAAA,IACb,OAAO;AAAA,EACT;AAAA,EACA,UAAU;AAAA,IACR,MAAM;AAAA,IACN,aAAa;AAAA,IACb,OAAO;AAAA,IACP,SAAS,SAAS;AAAA,IAClB,WAAW,GAAG,SAAS,MAAM,IAAI,SAAS,IAAI,IAAI,SAAS,KAAK;AAAA,EAClE;AAAA,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,aAAa;AAAA,IACb,OAAO;AAAA,IACP,SAAS;AAAA,EACX;AAAA,EACA,KAAK;AAAA,IACH,MAAM;AAAA,IACN,aAAa;AAAA,IACb,OAAO;AAAA,IACP,SAAS;AAAA,EACX;AAAA,EACA,OAAO;AAAA,IACL,MAAM;AAAA,IACN,aAAa;AAAA,IACb,OAAO;AAAA,IACP,SAAS;AAAA,EACX;AAAA,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,IACb,OAAO;AAAA,IACP,SAAS;AAAA,EACX;AACF;AAIA,IAAM,UAAU,cAAc;AAAA,EAC5B,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,EACf;AAAA,EACA;AAAA,EACA,QAAQ;AACN,YAAQ,MAAM,0BAAmB;AAAA,EACnC;AAAA,EACA,MAAM,IAAI,EAAE,MAAAD,MAAK,GAAG;AAClB,UAAM,QAAQA,MAAK,EAAE,CAAC;AAEtB,QAAIA,MAAK,MAAM;AACb,gBAAU,OAAO;AACjB;AAAA,IACF;AAEA,QAAIA,MAAK,OAAO;AACd,MAAAA,MAAK,WAAW,SAAS;AAAA,IAC3B;AAEA,QAAIA,MAAK,KAAK;AACZ,YAAME,WAAU,QAAQ,KAAK,OAAO,CAAC,EAAE,OAAO,CAAC,SAAS,SAAS,OAAO;AAExE,YAAM,MAAM,SAASA,UAAS,EAAE,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,OAAO,CAAC;AAChF;AAAA,IACF;AAEA,UAAM,SAAS,MAAM,eAAe,QAAQF,MAAK,MAAM;AACvD,YAAQ,QAAQ,2BAAoB,EAAE,IAAI,KAAK,SAAS,QAAQ,IAAI,GAAG,OAAO,QAAQ,CAAC,CAAC,GAAG;AAE3F,UAAM,SAAS,MAAM,UAAU,QAAQA,KAAI;AAE3C,QAAIA,MAAK,OAAO;AACd,UAAI,MAAM,QAAQ,MAAM,GAAG;AACzB,cAAM,IAAI,MAAM,iDAAiD;AAAA,MACnE;AAEA,UAAI,YAAY,MAAM,GAAG;AACvB,eAAO,aAAa,CAAC,SAAS,OAAO,MAAM,IAAI,GAAG,OAAO,UAAU;AACjE,gBAAM,SAAS,EAAE,QAAQ,MAAAA,MAAK,CAAC;AAC/B,kBAAQ,UAAU;AAClB,kBAAQ,MAAM,EAAE,OAAO,EAAE,KAAK,2BAA2B,MAAM,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;AAAA,QAClF,CAAC;AAAA,MACH;AAAA,IACF;AAEA,QAAI,MAAM,QAAQ,MAAM,GAAG;AACzB,YAAM,iBAAiB,IAAI,eAAe;AAC1C,YAAM,WAAW,OAAO,IAAI,CAAC,SAAS,MAAM,SAAS,EAAE,OAAO,QAAQ,MAAM,MAAAA,MAAK,CAAC,CAAC;AAEnF,aAAO,eAAe,IAAI,OAAO,QAAQ;AAAA,IAC3C;AAEA,UAAM,SAAS,EAAE,OAAO,QAAQ,MAAAA,MAAK,CAAC;AAAA,EACxC;AACF,CAAC;AAED,IAAO,mBAAQ","sourcesContent":["import { LogLevel } from '@kubb/core/logger'\nimport { defineCommand, showUsage } from 'citty'\nimport type { ArgsDef, ParsedArgs } from 'citty'\nimport { execa } from 'execa'\nimport c from 'tinyrainbow'\n\nimport path from 'node:path'\nimport { getConfig } from '../utils/getConfig.ts'\nimport { getCosmiConfig } from '../utils/getCosmiConfig.ts'\nimport { spinner } from '../utils/spinner.ts'\nimport { startWatcher } from '../utils/watcher.ts'\n\nimport { PromiseManager, isInputPath } from '@kubb/core'\nimport { generate } from '../generate.ts'\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: LogLevel.info,\n valueHint: `${LogLevel.silent}|${LogLevel.info}|${LogLevel.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 setup() {\n spinner.start('🔍 Loading config')\n },\n async run({ args }) {\n const input = args._[0]\n\n if (args.help) {\n showUsage(command)\n return\n }\n\n if (args.debug) {\n args.logLevel = 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 result = await getCosmiConfig('kubb', args.config)\n spinner.succeed(`🔍 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 })\n spinner.spinner = 'simpleDotsScrolling'\n spinner.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})\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 { PackageManager } from '@kubb/core'\n\nimport type { UserConfig } from '@kubb/core'\n\nfunction isJSONPlugins(plugins: UserConfig['plugins']): plugins is Array<[name: string, options: object]> {\n return !!(plugins as Array<[name: string, options: object]>[])?.some((plugin) => {\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\nasync function importPlugin(name: string, options: object): Promise<UserConfig['plugins']> {\n const packageManager = new PackageManager(process.cwd())\n\n const importedPlugin: any = process.env.NODE_ENV === 'test' ? await import(name) : await packageManager.import(name)\n\n return importedPlugin?.default ? importedPlugin.default(options) : importedPlugin(options)\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/guide/configure#json')\n }\n\n if (isJSONPlugins(plugins)) {\n const jsonPlugins = plugins as Array<[name: string, options: object]>\n const promises = jsonPlugins.map((plugin) => {\n const [name, options = {}] = plugin\n return importPlugin(name, options)\n })\n return Promise.all(promises) as Promise<UserConfig['plugins']>\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'\n\nimport { spinner } from './spinner.ts'\n\nexport async function startWatcher(path: string[], cb: (path: string[]) => Promise<void>): Promise<void> {\n const { watch } = await import('chokidar')\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 spinner.succeed(c.yellow(c.bold(`Change detected: ${type} ${file}`)))\n // revert back\n spinner.spinner = 'clock'\n\n try {\n cb(path)\n } catch (e) {\n spinner.warn(c.red('Watcher failed'))\n }\n })\n\n return\n}\n"]}
|
package/dist/index.cjs
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
|
|
4
|
+
var _chunkH7O7TB7Scjs = require('./chunk-H7O7TB7S.cjs');
|
|
4
5
|
|
|
5
6
|
// src/index.ts
|
|
6
|
-
|
|
7
|
+
_chunkH7O7TB7Scjs.init_cjs_shims.call(void 0, );
|
|
7
8
|
var _citty = require('citty');
|
|
8
9
|
var _latestversion = require('latest-version'); var _latestversion2 = _interopRequireDefault(_latestversion);
|
|
9
10
|
var _semver = require('semver');
|
|
10
11
|
var _consola = require('consola'); var _consola2 = _interopRequireDefault(_consola);
|
|
11
12
|
|
|
12
13
|
// package.json
|
|
13
|
-
var version = "2.21.
|
|
14
|
+
var version = "2.21.2";
|
|
14
15
|
|
|
15
16
|
// src/index.ts
|
|
16
17
|
var name = "kubb";
|
|
@@ -38,13 +39,13 @@ Run \`npm install -g @kubb/cli\` to update`,
|
|
|
38
39
|
} catch (_e) {
|
|
39
40
|
}
|
|
40
41
|
if (rawArgs[0] !== "generate") {
|
|
41
|
-
const generateCommand = await Promise.resolve().then(() => _interopRequireWildcard(require("./generate-
|
|
42
|
+
const generateCommand = await Promise.resolve().then(() => _interopRequireWildcard(require("./generate-T7SYG5OY.cjs"))).then((r) => r.default);
|
|
42
43
|
await _citty.runCommand.call(void 0, generateCommand, { rawArgs });
|
|
43
44
|
process.exit(0);
|
|
44
45
|
}
|
|
45
46
|
},
|
|
46
47
|
subCommands: {
|
|
47
|
-
generate: () => Promise.resolve().then(() => _interopRequireWildcard(require("./generate-
|
|
48
|
+
generate: () => Promise.resolve().then(() => _interopRequireWildcard(require("./generate-T7SYG5OY.cjs"))).then((r) => r.default)
|
|
48
49
|
}
|
|
49
50
|
});
|
|
50
51
|
async function run(_argv) {
|
|
@@ -52,5 +53,6 @@ async function run(_argv) {
|
|
|
52
53
|
}
|
|
53
54
|
|
|
54
55
|
|
|
55
|
-
|
|
56
|
+
|
|
57
|
+
exports.generate = _chunkH7O7TB7Scjs.generate; exports.run = run;
|
|
56
58
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../package.json"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../package.json"],"names":[],"mappings":";;;;;;AAAA;AAAA,SAAS,eAAe,YAAY,eAAe;AACnD,OAAO,sBAAsB;AAC7B,SAAS,UAAU;AAEnB,OAAO,aAAa;;;ACFlB,cAAW;;;ADKb,IAAM,OAAO;AAEb,IAAM,OAAO,cAAc;AAAA,EACzB,MAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,aAAa;AAAA,EACf;AAAA,EACA,MAAM,MAAM,EAAE,QAAQ,GAAG;AACvB,QAAI;AACF,YAAM,gBAAgB,MAAM,iBAAiB,WAAW;AAExD,UAAI,GAAG,SAAS,aAAa,GAAG;AAC9B,gBAAQ,IAAI;AAAA,UACV,OAAO;AAAA,UACP,SAAS,MAAM,OAAO,gBAAW,aAAa;AAAA;AAAA,UAE9C,OAAO;AAAA,YACL,SAAS;AAAA,YACT,aAAa;AAAA,YACb,aAAa;AAAA,UACf;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF,SAAS,IAAI;AAAA,IAAC;AAEd,QAAI,QAAQ,CAAC,MAAM,YAAY;AAE7B,YAAM,kBAAkB,MAAM,OAAO,yBAAwB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAEpF,YAAM,WAAW,iBAAiB,EAAE,QAAQ,CAAC;AAE7C,cAAQ,KAAK,CAAC;AAAA,IAChB;AAAA,EACF;AAAA,EACA,aAAa;AAAA,IACX,UAAU,MAAM,OAAO,yBAAwB,EAAE,KAAK,CAAC,MAAM,EAAE,OAAO;AAAA,EACxE;AACF,CAAC;AAED,eAAsB,IAAI,OAAiC;AACzD,QAAM,QAAQ,IAAI;AACpB","sourcesContent":["import { defineCommand, runCommand, runMain } from 'citty'\nimport getLatestVersion from 'latest-version'\nimport { lt } from 'semver'\n\nimport consola from 'consola'\nimport { version } from '../package.json'\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\": \"2.21.2\",\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 \"main\": \"dist/index.cjs\",\n \"module\": \"dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"exports\": {\n \".\": {\n \"import\": \"./dist/index.js\",\n \"require\": \"./dist/index.cjs\",\n \"default\": \"./dist/index.cjs\"\n }\n },\n \"bin\": {\n \"kubb\": \"bin/kubb.cjs\",\n \"bkubb\": \"bin/bkubb.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\": \"^4.2.1\",\n \"chokidar\": \"^3.6.0\",\n \"citty\": \"^0.1.6\",\n \"consola\": \"^3.2.3\",\n \"cosmiconfig\": \"^9.0.0\",\n \"esbuild\": \"^0.20.2\",\n \"execa\": \"^8.0.1\",\n \"js-runtime\": \"^0.0.8\",\n \"latest-version\": \"^9.0.0\",\n \"ora\": \"^8.0.1\",\n \"semver\": \"^7.6.2\",\n \"string-argv\": \"^0.3.2\",\n \"tinyrainbow\": \"^1.1.1\"\n },\n \"devDependencies\": {\n \"@kubb/config-ts\": \"workspace:*\",\n \"@kubb/config-tsup\": \"workspace:*\",\n \"@kubb/plugin-oas\": \"workspace:*\",\n \"@types/node\": \"^20.14.9\",\n \"@types/semver\": \"^7.5.8\",\n \"source-map-support\": \"^0.5.21\",\n \"tsup\": \"^8.1.0\",\n \"typescript\": \"^5.5.2\"\n },\n \"engines\": {\n \"node\": \">=18\"\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,3 +1,53 @@
|
|
|
1
|
+
import { Config } from '@kubb/core';
|
|
2
|
+
import { ParsedArgs } from 'citty';
|
|
3
|
+
|
|
4
|
+
declare const args: {
|
|
5
|
+
readonly config: {
|
|
6
|
+
readonly type: "string";
|
|
7
|
+
readonly description: "Path to the Kubb config";
|
|
8
|
+
readonly alias: "c";
|
|
9
|
+
};
|
|
10
|
+
readonly logLevel: {
|
|
11
|
+
readonly type: "string";
|
|
12
|
+
readonly description: "Info, silent or debug";
|
|
13
|
+
readonly alias: "l";
|
|
14
|
+
readonly default: "info";
|
|
15
|
+
readonly valueHint: "silent|info|debug";
|
|
16
|
+
};
|
|
17
|
+
readonly watch: {
|
|
18
|
+
readonly type: "boolean";
|
|
19
|
+
readonly description: "Watch mode based on the input file";
|
|
20
|
+
readonly alias: "w";
|
|
21
|
+
readonly default: false;
|
|
22
|
+
};
|
|
23
|
+
readonly bun: {
|
|
24
|
+
readonly type: "boolean";
|
|
25
|
+
readonly description: "Run Kubb with Bun";
|
|
26
|
+
readonly alias: "b";
|
|
27
|
+
readonly default: false;
|
|
28
|
+
};
|
|
29
|
+
readonly debug: {
|
|
30
|
+
readonly type: "boolean";
|
|
31
|
+
readonly description: "Override logLevel to debug";
|
|
32
|
+
readonly alias: "d";
|
|
33
|
+
readonly default: false;
|
|
34
|
+
};
|
|
35
|
+
readonly help: {
|
|
36
|
+
readonly type: "boolean";
|
|
37
|
+
readonly description: "Show help";
|
|
38
|
+
readonly alias: "h";
|
|
39
|
+
readonly default: false;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
type Args = ParsedArgs<typeof args>;
|
|
43
|
+
|
|
44
|
+
type GenerateProps = {
|
|
45
|
+
input?: string;
|
|
46
|
+
config: Config;
|
|
47
|
+
args: Args;
|
|
48
|
+
};
|
|
49
|
+
declare function generate({ input, config, args }: GenerateProps): Promise<void>;
|
|
50
|
+
|
|
1
51
|
declare function run(_argv?: string[]): Promise<void>;
|
|
2
52
|
|
|
3
|
-
export { run };
|
|
53
|
+
export { generate, run };
|