@kubb/cli 0.33.0 → 0.35.0
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/index.js +121 -78
- package/dist/index.mjs +121 -78
- package/package.json +4 -2
package/dist/index.js
CHANGED
|
@@ -2,13 +2,78 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
var commander = require('commander');
|
|
5
|
-
var
|
|
6
|
-
var cosmiconfigTypescriptLoader = require('cosmiconfig-typescript-loader');
|
|
7
|
-
var pc2 = require('picocolors');
|
|
5
|
+
var pc3 = require('picocolors');
|
|
8
6
|
var ora = require('ora');
|
|
9
7
|
var execa = require('execa');
|
|
10
8
|
var stringArgv = require('string-argv');
|
|
11
9
|
var core = require('@kubb/core');
|
|
10
|
+
var cosmiconfig = require('cosmiconfig');
|
|
11
|
+
var cosmiconfigTypescriptLoader = require('cosmiconfig-typescript-loader');
|
|
12
|
+
|
|
13
|
+
async function run({ config, options, spinner: spinner2 }) {
|
|
14
|
+
const logger = {
|
|
15
|
+
log(message, logLevel) {
|
|
16
|
+
if (logLevel === "error") {
|
|
17
|
+
spinner2.fail(message);
|
|
18
|
+
}
|
|
19
|
+
spinner2[logLevel](message);
|
|
20
|
+
},
|
|
21
|
+
spinner: spinner2
|
|
22
|
+
};
|
|
23
|
+
const onDone = async (config2) => {
|
|
24
|
+
if (!config2.hooks?.done) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
spinner2.start("Running hooks");
|
|
28
|
+
let commands = [];
|
|
29
|
+
if (typeof config2.hooks?.done === "string") {
|
|
30
|
+
commands = [config2.hooks.done];
|
|
31
|
+
} else {
|
|
32
|
+
commands = config2.hooks.done;
|
|
33
|
+
}
|
|
34
|
+
const promises = commands.map(async (command) => {
|
|
35
|
+
const [cmd, ..._args] = [...stringArgv.parseArgsStringToArgv(command)];
|
|
36
|
+
return execa.execa(cmd, _args);
|
|
37
|
+
});
|
|
38
|
+
await Promise.all(promises);
|
|
39
|
+
spinner2.succeed("Running hooks completed");
|
|
40
|
+
};
|
|
41
|
+
try {
|
|
42
|
+
spinner2.start("Building");
|
|
43
|
+
await core.build({
|
|
44
|
+
config: {
|
|
45
|
+
root: process.cwd(),
|
|
46
|
+
...config
|
|
47
|
+
},
|
|
48
|
+
mode: options.mode || "development",
|
|
49
|
+
logger
|
|
50
|
+
});
|
|
51
|
+
spinner2.succeed(pc3.blue("Kubb generation done"));
|
|
52
|
+
await onDone(config);
|
|
53
|
+
} catch (err) {
|
|
54
|
+
spinner2.fail("Something went wrong\n");
|
|
55
|
+
console.error(err);
|
|
56
|
+
}
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
var startWatcher = async (cb, options) => {
|
|
60
|
+
const { spinner: spinner2, path } = options;
|
|
61
|
+
const { watch } = await import('chokidar');
|
|
62
|
+
const ignored = ["**/{.git,node_modules}/**"];
|
|
63
|
+
const watcher = watch(path, {
|
|
64
|
+
ignorePermissionErrors: true,
|
|
65
|
+
ignored
|
|
66
|
+
});
|
|
67
|
+
watcher.on("all", async (type, file) => {
|
|
68
|
+
spinner2.succeed(pc3.yellow(pc3.bold(`Change detected: ${type} ${file}`)));
|
|
69
|
+
spinner2.spinner = "clock";
|
|
70
|
+
try {
|
|
71
|
+
await cb(options.path);
|
|
72
|
+
} catch (e) {
|
|
73
|
+
spinner2.warn(pc3.red(e));
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
};
|
|
12
77
|
|
|
13
78
|
// src/utils/getPlugins.ts
|
|
14
79
|
var isJSONPlugins = (plugins) => {
|
|
@@ -48,92 +113,70 @@ var getConfig = async (result, options) => {
|
|
|
48
113
|
}
|
|
49
114
|
return config;
|
|
50
115
|
};
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
116
|
+
var getCosmiConfig = async (moduleName2, config) => {
|
|
117
|
+
const explorer = cosmiconfig.cosmiconfig(moduleName2, {
|
|
118
|
+
cache: false,
|
|
119
|
+
searchPlaces: [
|
|
120
|
+
"package.json",
|
|
121
|
+
`.${moduleName2}rc`,
|
|
122
|
+
`.${moduleName2}rc.json`,
|
|
123
|
+
`.${moduleName2}rc.js`,
|
|
124
|
+
`.${moduleName2}rc.cjs`,
|
|
125
|
+
`${moduleName2}.config.js`,
|
|
126
|
+
`${moduleName2}.config.cjs`,
|
|
127
|
+
`.${moduleName2}rc.ts`,
|
|
128
|
+
`${moduleName2}.config.ts`
|
|
129
|
+
],
|
|
130
|
+
loaders: {
|
|
131
|
+
".ts": cosmiconfigTypescriptLoader.TypeScriptLoader({
|
|
132
|
+
swc: true,
|
|
133
|
+
typeCheck: false
|
|
134
|
+
}),
|
|
135
|
+
noExt: cosmiconfig.defaultLoaders[".js"]
|
|
66
136
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
} else {
|
|
72
|
-
commands = config.hooks.done;
|
|
73
|
-
}
|
|
74
|
-
const promises = commands.map(async (command) => {
|
|
75
|
-
const [cmd, ..._args] = [...stringArgv.parseArgsStringToArgv(command)];
|
|
76
|
-
return execa.execa(cmd, _args);
|
|
77
|
-
});
|
|
78
|
-
await Promise.all(promises);
|
|
79
|
-
spinner2.succeed("Running hooks completed");
|
|
80
|
-
};
|
|
81
|
-
try {
|
|
82
|
-
spinner2.start("Building");
|
|
83
|
-
const config = await getConfig(result, options);
|
|
84
|
-
await core.build({
|
|
85
|
-
config: {
|
|
86
|
-
root: process.cwd(),
|
|
87
|
-
...config
|
|
88
|
-
},
|
|
89
|
-
mode: options.mode || "development",
|
|
90
|
-
logger
|
|
91
|
-
});
|
|
92
|
-
spinner2.succeed(pc2.blue("Kubb generation done"));
|
|
93
|
-
await onDone(config);
|
|
94
|
-
} catch (err) {
|
|
95
|
-
spinner2.fail("Something went wrong\n");
|
|
96
|
-
console.error(err);
|
|
137
|
+
});
|
|
138
|
+
const result = config ? await explorer.load(config) : await explorer.search();
|
|
139
|
+
if (result?.isEmpty || !result || !result.config) {
|
|
140
|
+
throw new Error("Config not defined, create a kubb.config.js or pass through your config with the option --config");
|
|
97
141
|
}
|
|
98
|
-
return
|
|
99
|
-
}
|
|
142
|
+
return result;
|
|
143
|
+
};
|
|
100
144
|
|
|
101
145
|
// package.json
|
|
102
|
-
var version = "0.
|
|
146
|
+
var version = "0.35.0";
|
|
103
147
|
|
|
104
148
|
// src/index.ts
|
|
105
149
|
var moduleName = "kubb";
|
|
106
150
|
var spinner = ora({
|
|
107
151
|
color: "blue",
|
|
108
|
-
text:
|
|
152
|
+
text: pc3.blue("Kubb generation started"),
|
|
109
153
|
spinner: "clock"
|
|
110
154
|
}).start();
|
|
111
|
-
var explorer = cosmiconfig.cosmiconfig(moduleName, {
|
|
112
|
-
searchPlaces: [
|
|
113
|
-
"package.json",
|
|
114
|
-
`.${moduleName}rc`,
|
|
115
|
-
`.${moduleName}rc.json`,
|
|
116
|
-
`.${moduleName}rc.js`,
|
|
117
|
-
`.${moduleName}rc.cjs`,
|
|
118
|
-
`${moduleName}.config.js`,
|
|
119
|
-
`${moduleName}.config.cjs`,
|
|
120
|
-
`.${moduleName}rc.ts`,
|
|
121
|
-
`${moduleName}.config.ts`
|
|
122
|
-
],
|
|
123
|
-
loaders: {
|
|
124
|
-
".ts": cosmiconfigTypescriptLoader.TypeScriptLoader(),
|
|
125
|
-
noExt: cosmiconfig.defaultLoaders[".js"]
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
155
|
var program = new commander.Command(moduleName).description("Kubb").action(async (options) => {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
spinner.
|
|
134
|
-
|
|
156
|
+
try {
|
|
157
|
+
spinner.succeed(pc3.blue("Kubb generation started"));
|
|
158
|
+
spinner.start("Loading config");
|
|
159
|
+
const result = await getCosmiConfig(moduleName, options.config);
|
|
160
|
+
spinner.succeed("Config loaded");
|
|
161
|
+
if (options.watch) {
|
|
162
|
+
const config = await getConfig(result, options);
|
|
163
|
+
startWatcher(
|
|
164
|
+
async (paths) => {
|
|
165
|
+
await run({ config, spinner, options });
|
|
166
|
+
spinner.spinner = "simpleDotsScrolling";
|
|
167
|
+
spinner.start(pc3.yellow(pc3.bold(`Watching for changes in ${paths.join(" and ")}`)));
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
spinner,
|
|
171
|
+
path: [config.input.path]
|
|
172
|
+
}
|
|
173
|
+
);
|
|
174
|
+
} else {
|
|
175
|
+
const config = await getConfig(result, options);
|
|
176
|
+
await run({ config, spinner, options });
|
|
177
|
+
}
|
|
178
|
+
} catch (e) {
|
|
179
|
+
spinner.fail(pc3.red(e.message));
|
|
135
180
|
}
|
|
136
|
-
|
|
137
|
-
await run({ result, spinner, options });
|
|
138
|
-
}).addOption(new commander.Option("-m, --mode <mode>", "Mode of Kubb, development or production").default("development")).addOption(new commander.Option("-c, --config <path>", "Path to @kubb config")).addOption(new commander.Option("-d, --debug", "Debug mode").default(false));
|
|
181
|
+
}).addOption(new commander.Option("-m, --mode <mode>", "Mode of Kubb, development or production").default("development")).addOption(new commander.Option("-c, --config <path>", "Path to @kubb config")).addOption(new commander.Option("-d, --debug", "Debug mode").default(false)).addOption(new commander.Option("-w, --watch", "Watch mode based on the input file"));
|
|
139
182
|
program.name(moduleName).description("Generate").version(version, "-v").parse();
|
package/dist/index.mjs
CHANGED
|
@@ -1,12 +1,77 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command, Option } from 'commander';
|
|
3
|
-
import
|
|
4
|
-
import { TypeScriptLoader } from 'cosmiconfig-typescript-loader';
|
|
5
|
-
import pc2 from 'picocolors';
|
|
3
|
+
import pc3 from 'picocolors';
|
|
6
4
|
import ora from 'ora';
|
|
7
5
|
import { execa } from 'execa';
|
|
8
6
|
import { parseArgsStringToArgv } from 'string-argv';
|
|
9
7
|
import { build, isPromise } from '@kubb/core';
|
|
8
|
+
import { cosmiconfig, defaultLoaders } from 'cosmiconfig';
|
|
9
|
+
import { TypeScriptLoader } from 'cosmiconfig-typescript-loader';
|
|
10
|
+
|
|
11
|
+
async function run({ config, options, spinner: spinner2 }) {
|
|
12
|
+
const logger = {
|
|
13
|
+
log(message, logLevel) {
|
|
14
|
+
if (logLevel === "error") {
|
|
15
|
+
spinner2.fail(message);
|
|
16
|
+
}
|
|
17
|
+
spinner2[logLevel](message);
|
|
18
|
+
},
|
|
19
|
+
spinner: spinner2
|
|
20
|
+
};
|
|
21
|
+
const onDone = async (config2) => {
|
|
22
|
+
if (!config2.hooks?.done) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
spinner2.start("Running hooks");
|
|
26
|
+
let commands = [];
|
|
27
|
+
if (typeof config2.hooks?.done === "string") {
|
|
28
|
+
commands = [config2.hooks.done];
|
|
29
|
+
} else {
|
|
30
|
+
commands = config2.hooks.done;
|
|
31
|
+
}
|
|
32
|
+
const promises = commands.map(async (command) => {
|
|
33
|
+
const [cmd, ..._args] = [...parseArgsStringToArgv(command)];
|
|
34
|
+
return execa(cmd, _args);
|
|
35
|
+
});
|
|
36
|
+
await Promise.all(promises);
|
|
37
|
+
spinner2.succeed("Running hooks completed");
|
|
38
|
+
};
|
|
39
|
+
try {
|
|
40
|
+
spinner2.start("Building");
|
|
41
|
+
await build({
|
|
42
|
+
config: {
|
|
43
|
+
root: process.cwd(),
|
|
44
|
+
...config
|
|
45
|
+
},
|
|
46
|
+
mode: options.mode || "development",
|
|
47
|
+
logger
|
|
48
|
+
});
|
|
49
|
+
spinner2.succeed(pc3.blue("Kubb generation done"));
|
|
50
|
+
await onDone(config);
|
|
51
|
+
} catch (err) {
|
|
52
|
+
spinner2.fail("Something went wrong\n");
|
|
53
|
+
console.error(err);
|
|
54
|
+
}
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
var startWatcher = async (cb, options) => {
|
|
58
|
+
const { spinner: spinner2, path } = options;
|
|
59
|
+
const { watch } = await import('chokidar');
|
|
60
|
+
const ignored = ["**/{.git,node_modules}/**"];
|
|
61
|
+
const watcher = watch(path, {
|
|
62
|
+
ignorePermissionErrors: true,
|
|
63
|
+
ignored
|
|
64
|
+
});
|
|
65
|
+
watcher.on("all", async (type, file) => {
|
|
66
|
+
spinner2.succeed(pc3.yellow(pc3.bold(`Change detected: ${type} ${file}`)));
|
|
67
|
+
spinner2.spinner = "clock";
|
|
68
|
+
try {
|
|
69
|
+
await cb(options.path);
|
|
70
|
+
} catch (e) {
|
|
71
|
+
spinner2.warn(pc3.red(e));
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
};
|
|
10
75
|
|
|
11
76
|
// src/utils/getPlugins.ts
|
|
12
77
|
var isJSONPlugins = (plugins) => {
|
|
@@ -46,92 +111,70 @@ var getConfig = async (result, options) => {
|
|
|
46
111
|
}
|
|
47
112
|
return config;
|
|
48
113
|
};
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
114
|
+
var getCosmiConfig = async (moduleName2, config) => {
|
|
115
|
+
const explorer = cosmiconfig(moduleName2, {
|
|
116
|
+
cache: false,
|
|
117
|
+
searchPlaces: [
|
|
118
|
+
"package.json",
|
|
119
|
+
`.${moduleName2}rc`,
|
|
120
|
+
`.${moduleName2}rc.json`,
|
|
121
|
+
`.${moduleName2}rc.js`,
|
|
122
|
+
`.${moduleName2}rc.cjs`,
|
|
123
|
+
`${moduleName2}.config.js`,
|
|
124
|
+
`${moduleName2}.config.cjs`,
|
|
125
|
+
`.${moduleName2}rc.ts`,
|
|
126
|
+
`${moduleName2}.config.ts`
|
|
127
|
+
],
|
|
128
|
+
loaders: {
|
|
129
|
+
".ts": TypeScriptLoader({
|
|
130
|
+
swc: true,
|
|
131
|
+
typeCheck: false
|
|
132
|
+
}),
|
|
133
|
+
noExt: defaultLoaders[".js"]
|
|
64
134
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
} else {
|
|
70
|
-
commands = config.hooks.done;
|
|
71
|
-
}
|
|
72
|
-
const promises = commands.map(async (command) => {
|
|
73
|
-
const [cmd, ..._args] = [...parseArgsStringToArgv(command)];
|
|
74
|
-
return execa(cmd, _args);
|
|
75
|
-
});
|
|
76
|
-
await Promise.all(promises);
|
|
77
|
-
spinner2.succeed("Running hooks completed");
|
|
78
|
-
};
|
|
79
|
-
try {
|
|
80
|
-
spinner2.start("Building");
|
|
81
|
-
const config = await getConfig(result, options);
|
|
82
|
-
await build({
|
|
83
|
-
config: {
|
|
84
|
-
root: process.cwd(),
|
|
85
|
-
...config
|
|
86
|
-
},
|
|
87
|
-
mode: options.mode || "development",
|
|
88
|
-
logger
|
|
89
|
-
});
|
|
90
|
-
spinner2.succeed(pc2.blue("Kubb generation done"));
|
|
91
|
-
await onDone(config);
|
|
92
|
-
} catch (err) {
|
|
93
|
-
spinner2.fail("Something went wrong\n");
|
|
94
|
-
console.error(err);
|
|
135
|
+
});
|
|
136
|
+
const result = config ? await explorer.load(config) : await explorer.search();
|
|
137
|
+
if (result?.isEmpty || !result || !result.config) {
|
|
138
|
+
throw new Error("Config not defined, create a kubb.config.js or pass through your config with the option --config");
|
|
95
139
|
}
|
|
96
|
-
return
|
|
97
|
-
}
|
|
140
|
+
return result;
|
|
141
|
+
};
|
|
98
142
|
|
|
99
143
|
// package.json
|
|
100
|
-
var version = "0.
|
|
144
|
+
var version = "0.35.0";
|
|
101
145
|
|
|
102
146
|
// src/index.ts
|
|
103
147
|
var moduleName = "kubb";
|
|
104
148
|
var spinner = ora({
|
|
105
149
|
color: "blue",
|
|
106
|
-
text:
|
|
150
|
+
text: pc3.blue("Kubb generation started"),
|
|
107
151
|
spinner: "clock"
|
|
108
152
|
}).start();
|
|
109
|
-
var explorer = cosmiconfig(moduleName, {
|
|
110
|
-
searchPlaces: [
|
|
111
|
-
"package.json",
|
|
112
|
-
`.${moduleName}rc`,
|
|
113
|
-
`.${moduleName}rc.json`,
|
|
114
|
-
`.${moduleName}rc.js`,
|
|
115
|
-
`.${moduleName}rc.cjs`,
|
|
116
|
-
`${moduleName}.config.js`,
|
|
117
|
-
`${moduleName}.config.cjs`,
|
|
118
|
-
`.${moduleName}rc.ts`,
|
|
119
|
-
`${moduleName}.config.ts`
|
|
120
|
-
],
|
|
121
|
-
loaders: {
|
|
122
|
-
".ts": TypeScriptLoader(),
|
|
123
|
-
noExt: defaultLoaders[".js"]
|
|
124
|
-
}
|
|
125
|
-
});
|
|
126
153
|
var program = new Command(moduleName).description("Kubb").action(async (options) => {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
spinner.
|
|
132
|
-
|
|
154
|
+
try {
|
|
155
|
+
spinner.succeed(pc3.blue("Kubb generation started"));
|
|
156
|
+
spinner.start("Loading config");
|
|
157
|
+
const result = await getCosmiConfig(moduleName, options.config);
|
|
158
|
+
spinner.succeed("Config loaded");
|
|
159
|
+
if (options.watch) {
|
|
160
|
+
const config = await getConfig(result, options);
|
|
161
|
+
startWatcher(
|
|
162
|
+
async (paths) => {
|
|
163
|
+
await run({ config, spinner, options });
|
|
164
|
+
spinner.spinner = "simpleDotsScrolling";
|
|
165
|
+
spinner.start(pc3.yellow(pc3.bold(`Watching for changes in ${paths.join(" and ")}`)));
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
spinner,
|
|
169
|
+
path: [config.input.path]
|
|
170
|
+
}
|
|
171
|
+
);
|
|
172
|
+
} else {
|
|
173
|
+
const config = await getConfig(result, options);
|
|
174
|
+
await run({ config, spinner, options });
|
|
175
|
+
}
|
|
176
|
+
} catch (e) {
|
|
177
|
+
spinner.fail(pc3.red(e.message));
|
|
133
178
|
}
|
|
134
|
-
|
|
135
|
-
await run({ result, spinner, options });
|
|
136
|
-
}).addOption(new Option("-m, --mode <mode>", "Mode of Kubb, development or production").default("development")).addOption(new Option("-c, --config <path>", "Path to @kubb config")).addOption(new Option("-d, --debug", "Debug mode").default(false));
|
|
179
|
+
}).addOption(new Option("-m, --mode <mode>", "Mode of Kubb, development or production").default("development")).addOption(new Option("-c, --config <path>", "Path to @kubb config")).addOption(new Option("-d, --debug", "Debug mode").default(false)).addOption(new Option("-w, --watch", "Watch mode based on the input file"));
|
|
137
180
|
program.name(moduleName).description("Generate").version(version, "-v").parse();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kubb/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.35.0",
|
|
4
4
|
"description": "Generator cli",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -20,7 +20,8 @@
|
|
|
20
20
|
"!/**/__tests__/**"
|
|
21
21
|
],
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@kubb/core": "0.
|
|
23
|
+
"@kubb/core": "0.35.0",
|
|
24
|
+
"chokidar": "^3.5.3",
|
|
24
25
|
"commander": "^9.4.1",
|
|
25
26
|
"cosmiconfig": "^8.0.0",
|
|
26
27
|
"cosmiconfig-typescript-loader": "^4.3.0",
|
|
@@ -31,6 +32,7 @@
|
|
|
31
32
|
},
|
|
32
33
|
"devDependencies": {
|
|
33
34
|
"@types/node": "^18.11.18",
|
|
35
|
+
"ts-node": "^10.9.1",
|
|
34
36
|
"tsup": "^6.5.0",
|
|
35
37
|
"typescript": "^4.9.4"
|
|
36
38
|
},
|