@eggjs/bin 7.0.0-beta.4 → 7.0.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/README.md +5 -10
- package/bin/dev.js +6 -4
- package/bin/run.js +2 -2
- package/dist/commonjs/baseCommand.d.ts +49 -0
- package/dist/commonjs/baseCommand.js +370 -0
- package/dist/commonjs/commands/cov.d.ts +22 -0
- package/dist/commonjs/commands/cov.js +97 -0
- package/dist/commonjs/commands/dev.d.ts +21 -0
- package/dist/commonjs/commands/dev.js +95 -0
- package/dist/commonjs/commands/test.d.ts +23 -0
- package/dist/commonjs/commands/test.js +204 -0
- package/dist/commonjs/index.d.ts +7 -0
- package/dist/commonjs/index.js +30 -0
- package/dist/commonjs/package.json +3 -0
- package/dist/commonjs/types.d.ts +9 -0
- package/dist/commonjs/types.js +3 -0
- package/dist/commonjs/utils.d.ts +4 -0
- package/dist/commonjs/utils.js +45 -0
- package/dist/esm/baseCommand.d.ts +33 -6
- package/dist/esm/baseCommand.js +246 -40
- package/dist/esm/commands/cov.d.ts +17 -8
- package/dist/esm/commands/cov.js +83 -17
- package/dist/esm/commands/dev.d.ts +15 -7
- package/dist/esm/commands/dev.js +83 -16
- package/dist/esm/commands/test.d.ts +11 -5
- package/dist/esm/commands/test.js +89 -51
- package/dist/esm/index.d.ts +7 -5
- package/dist/esm/index.js +8 -6
- package/dist/esm/types.d.ts +9 -0
- package/dist/esm/types.js +2 -0
- package/dist/esm/utils.d.ts +0 -1
- package/dist/esm/utils.js +1 -11
- package/dist/package.json +1 -1
- package/dist/scripts/start-cluster.cjs +15 -0
- package/package.json +12 -28
- package/scripts/start-cluster.cjs +15 -0
- package/src/baseCommand.ts +254 -43
- package/src/commands/cov.ts +87 -17
- package/src/commands/dev.ts +84 -15
- package/src/commands/test.ts +92 -51
- package/src/index.ts +9 -5
- package/src/types.ts +9 -0
- package/src/utils.ts +0 -10
- package/dist/esm/bin/cli.d.ts +0 -2
- package/dist/esm/bin/cli.js +0 -34
- package/dist/esm/cmd/base.d.ts +0 -12
- package/dist/esm/cmd/base.js +0 -135
- package/dist/esm/cmd/cov.d.ts +0 -8
- package/dist/esm/cmd/cov.js +0 -103
- package/dist/esm/cmd/debug.d.ts +0 -5
- package/dist/esm/cmd/debug.js +0 -28
- package/dist/esm/cmd/dev.d.ts +0 -17
- package/dist/esm/cmd/dev.js +0 -118
- package/dist/esm/cmd/test.d.ts +0 -15
- package/dist/esm/cmd/test.js +0 -237
- package/dist/esm/commands/debug.d.ts +0 -13
- package/dist/esm/commands/debug.js +0 -25
- package/dist/esm/config/framework.d.ts +0 -4
- package/dist/esm/config/framework.js +0 -4
- package/dist/esm/config/plugin.d.ts +0 -11
- package/dist/esm/config/plugin.js +0 -11
- package/dist/esm/hooks/init/options.d.ts +0 -3
- package/dist/esm/hooks/init/options.js +0 -5
- package/dist/esm/middleware/global_options.d.ts +0 -5
- package/dist/esm/middleware/global_options.js +0 -182
- package/dist/esm/middleware/handle_error.d.ts +0 -5
- package/dist/esm/middleware/handle_error.js +0 -47
- package/dist/esm/middleware/inspect.d.ts +0 -5
- package/dist/esm/middleware/inspect.js +0 -69
- package/src/bin/cli.ts +0 -37
- package/src/cmd/base.ts +0 -133
- package/src/cmd/cov.ts +0 -89
- package/src/cmd/debug.ts +0 -14
- package/src/cmd/dev.ts +0 -102
- package/src/cmd/test.ts +0 -219
- package/src/commands/debug.ts +0 -30
- package/src/config/framework.ts +0 -3
- package/src/config/plugin.ts +0 -10
- package/src/hooks/init/options.ts +0 -7
- package/src/middleware/global_options.ts +0 -169
- package/src/middleware/handle_error.ts +0 -30
- package/src/middleware/inspect.ts +0 -54
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
import { debuglog } from 'node:util';
|
|
11
|
-
import path from 'node:path';
|
|
12
|
-
import { pathToFileURL } from 'node:url';
|
|
13
|
-
import { Inject, LifecycleHook, LifecycleHookUnit, Program, } from '@artus-cli/artus-cli';
|
|
14
|
-
import { importResolve } from '@eggjs/utils';
|
|
15
|
-
import { runScript } from 'runscript';
|
|
16
|
-
import { addNodeOptionsToEnv, getSourceDirname, readPackageJSON, hasTsConfig, getSourceFilename, } from '../utils.js';
|
|
17
|
-
const debug = debuglog('@eggjs/bin/middleware/global_options');
|
|
18
|
-
let GlobalOptions = class GlobalOptions {
|
|
19
|
-
program;
|
|
20
|
-
async configDidLoad() {
|
|
21
|
-
// add global options
|
|
22
|
-
this.program.option({
|
|
23
|
-
base: {
|
|
24
|
-
description: 'directory of application, default to `process.cwd()`',
|
|
25
|
-
type: 'string',
|
|
26
|
-
alias: 'baseDir',
|
|
27
|
-
},
|
|
28
|
-
declarations: {
|
|
29
|
-
description: 'whether create typings, will add `--require egg-ts-helper/register`',
|
|
30
|
-
type: 'boolean',
|
|
31
|
-
alias: 'dts',
|
|
32
|
-
},
|
|
33
|
-
typescript: {
|
|
34
|
-
description: 'whether enable typescript support',
|
|
35
|
-
type: 'boolean',
|
|
36
|
-
alias: 'ts',
|
|
37
|
-
},
|
|
38
|
-
tscompiler: {
|
|
39
|
-
description: 'ts compiler, like ts-node/register, ts-node/register/transpile-only, @swc-node/register, esbuild-register etc',
|
|
40
|
-
type: 'string',
|
|
41
|
-
alias: 'tsc',
|
|
42
|
-
},
|
|
43
|
-
});
|
|
44
|
-
this.program.use(async (ctx, next) => {
|
|
45
|
-
debug('before next');
|
|
46
|
-
if (!ctx.args.base) {
|
|
47
|
-
ctx.args.base = ctx.cwd;
|
|
48
|
-
debug('ctx.args.base not set, auto set it to cwd: %o', ctx.cwd);
|
|
49
|
-
}
|
|
50
|
-
if (!path.isAbsolute(ctx.args.base)) {
|
|
51
|
-
ctx.args.base = path.join(ctx.cwd, ctx.args.base);
|
|
52
|
-
}
|
|
53
|
-
debug('matched cmd: %o, ctx.args.base: %o', ctx.matched?.cmd, ctx.args.base);
|
|
54
|
-
const pkg = await readPackageJSON(ctx.args.base);
|
|
55
|
-
ctx.args.pkgEgg = pkg.egg ?? {};
|
|
56
|
-
const tscompiler = ctx.args.tscompiler ?? ctx.env.TS_COMPILER ?? ctx.args.pkgEgg.tscompiler;
|
|
57
|
-
if (ctx.args.typescript === undefined) {
|
|
58
|
-
// try to ready EGG_TYPESCRIPT env first, only accept 'true' or 'false' string
|
|
59
|
-
if (ctx.env.EGG_TYPESCRIPT === 'false') {
|
|
60
|
-
ctx.args.typescript = false;
|
|
61
|
-
debug('detect typescript=%o from EGG_TYPESCRIPT=%o', false, ctx.env.EGG_TYPESCRIPT);
|
|
62
|
-
}
|
|
63
|
-
else if (ctx.env.EGG_TYPESCRIPT === 'true') {
|
|
64
|
-
ctx.args.typescript = true;
|
|
65
|
-
debug('detect typescript=%o from EGG_TYPESCRIPT=%o', true, ctx.env.EGG_TYPESCRIPT);
|
|
66
|
-
}
|
|
67
|
-
else if (typeof ctx.args.pkgEgg.typescript === 'boolean') {
|
|
68
|
-
// read `egg.typescript` from package.json if not pass argv
|
|
69
|
-
ctx.args.typescript = ctx.args.pkgEgg.typescript;
|
|
70
|
-
debug('detect typescript=%o from pkg.egg.typescript=%o', true, ctx.args.pkgEgg.typescript);
|
|
71
|
-
}
|
|
72
|
-
else if (pkg.dependencies?.typescript) {
|
|
73
|
-
// auto detect pkg.dependencies.typescript or pkg.devDependencies.typescript
|
|
74
|
-
ctx.args.typescript = true;
|
|
75
|
-
debug('detect typescript=%o from pkg.dependencies.typescript=%o', true, pkg.dependencies.typescript);
|
|
76
|
-
}
|
|
77
|
-
else if (pkg.devDependencies?.typescript) {
|
|
78
|
-
ctx.args.typescript = true;
|
|
79
|
-
debug('detect typescript=%o from pkg.devDependencies.typescript=%o', true, pkg.devDependencies.typescript);
|
|
80
|
-
}
|
|
81
|
-
else if (await hasTsConfig(ctx.args.base)) {
|
|
82
|
-
// tsconfig.json exists
|
|
83
|
-
ctx.args.typescript = true;
|
|
84
|
-
debug('detect typescript=%o cause tsconfig.json exists', true);
|
|
85
|
-
}
|
|
86
|
-
else if (tscompiler) {
|
|
87
|
-
ctx.args.typescript = true;
|
|
88
|
-
debug('detect typescript=%o from --tscompiler=%o', true, tscompiler);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
const isESM = pkg.type === 'module';
|
|
92
|
-
if (ctx.args.typescript) {
|
|
93
|
-
const findPaths = [getSourceFilename('middleware')];
|
|
94
|
-
if (tscompiler) {
|
|
95
|
-
// try app baseDir first on custom tscompiler
|
|
96
|
-
findPaths.unshift(ctx.args.base);
|
|
97
|
-
}
|
|
98
|
-
ctx.args.tscompiler = tscompiler ?? 'ts-node/register';
|
|
99
|
-
let tsNodeRegister = importResolve(ctx.args.tscompiler, {
|
|
100
|
-
paths: findPaths,
|
|
101
|
-
});
|
|
102
|
-
// should require tsNodeRegister on current process, let it can require *.ts files
|
|
103
|
-
// e.g.: dev command will execute egg loader to find configs and plugins
|
|
104
|
-
// await importModule(tsNodeRegister);
|
|
105
|
-
// let child process auto require ts-node too
|
|
106
|
-
if (isESM) {
|
|
107
|
-
tsNodeRegister = pathToFileURL(tsNodeRegister).href;
|
|
108
|
-
addNodeOptionsToEnv(`--import ${tsNodeRegister}`, ctx.env);
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
addNodeOptionsToEnv(`--require ${tsNodeRegister}`, ctx.env);
|
|
112
|
-
}
|
|
113
|
-
// addNodeOptionsToEnv(`--require ${tsNodeRegister}`, ctx.env);
|
|
114
|
-
// tell egg loader to load ts file
|
|
115
|
-
// see https://github.com/eggjs/egg-core/blob/master/lib/loader/egg_loader.js#L443
|
|
116
|
-
ctx.env.EGG_TYPESCRIPT = 'true';
|
|
117
|
-
// set current process.env.EGG_TYPESCRIPT too
|
|
118
|
-
process.env.EGG_TYPESCRIPT = 'true';
|
|
119
|
-
// load files from tsconfig on startup
|
|
120
|
-
ctx.env.TS_NODE_FILES = process.env.TS_NODE_FILES ?? 'true';
|
|
121
|
-
// keep same logic with egg-core, test cmd load files need it
|
|
122
|
-
// see https://github.com/eggjs/egg-core/blob/master/lib/loader/egg_loader.js#L49
|
|
123
|
-
// addNodeOptionsToEnv(`--require ${importResolve('tsconfig-paths/register', {
|
|
124
|
-
// paths: [ getSourceDirname() ],
|
|
125
|
-
// })}`, ctx.env);
|
|
126
|
-
}
|
|
127
|
-
if (isESM) {
|
|
128
|
-
// use ts-node/esm loader on esm
|
|
129
|
-
let esmLoader = importResolve('ts-node/esm', {
|
|
130
|
-
paths: [getSourceDirname()],
|
|
131
|
-
});
|
|
132
|
-
// ES Module loading with absolute path fails on windows
|
|
133
|
-
// https://github.com/nodejs/node/issues/31710#issuecomment-583916239
|
|
134
|
-
// https://nodejs.org/api/url.html#url_url_pathtofileurl_path
|
|
135
|
-
// Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data, and node are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'd:'
|
|
136
|
-
esmLoader = pathToFileURL(esmLoader).href;
|
|
137
|
-
// wait for https://github.com/nodejs/node/issues/40940
|
|
138
|
-
addNodeOptionsToEnv('--no-warnings', ctx.env);
|
|
139
|
-
addNodeOptionsToEnv(`--loader ${esmLoader}`, ctx.env);
|
|
140
|
-
}
|
|
141
|
-
if (ctx.args.declarations === undefined) {
|
|
142
|
-
if (typeof ctx.args.pkgEgg.declarations === 'boolean') {
|
|
143
|
-
// read `egg.declarations` from package.json if not pass argv
|
|
144
|
-
ctx.args.declarations = ctx.args.pkgEgg.declarations;
|
|
145
|
-
debug('detect declarations from pkg.egg.declarations=%o', ctx.args.pkgEgg.declarations);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
if (ctx.args.declarations) {
|
|
149
|
-
const etsBin = importResolve('egg-ts-helper/dist/bin');
|
|
150
|
-
debug('run ets first: %o', etsBin);
|
|
151
|
-
await runScript(`node ${etsBin}`);
|
|
152
|
-
}
|
|
153
|
-
if (ctx.args.pkgEgg.revert) {
|
|
154
|
-
ctx.args.execArgv = ctx.args.execArgv || [];
|
|
155
|
-
const reverts = Array.isArray(ctx.args.pkgEgg.revert) ? ctx.args.pkgEgg.revert : [ctx.args.pkgEgg.revert];
|
|
156
|
-
for (const revert of reverts) {
|
|
157
|
-
ctx.args.execArgv.push(`--security-revert=${revert}`);
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
debug('set NODE_OPTIONS: %o', ctx.env.NODE_OPTIONS);
|
|
161
|
-
debug('ctx.args: %o', ctx.args);
|
|
162
|
-
debug('enter next');
|
|
163
|
-
await next();
|
|
164
|
-
debug('after next');
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
};
|
|
168
|
-
__decorate([
|
|
169
|
-
Inject(),
|
|
170
|
-
__metadata("design:type", Program)
|
|
171
|
-
], GlobalOptions.prototype, "program", void 0);
|
|
172
|
-
__decorate([
|
|
173
|
-
LifecycleHook(),
|
|
174
|
-
__metadata("design:type", Function),
|
|
175
|
-
__metadata("design:paramtypes", []),
|
|
176
|
-
__metadata("design:returntype", Promise)
|
|
177
|
-
], GlobalOptions.prototype, "configDidLoad", null);
|
|
178
|
-
GlobalOptions = __decorate([
|
|
179
|
-
LifecycleHookUnit()
|
|
180
|
-
], GlobalOptions);
|
|
181
|
-
export default GlobalOptions;
|
|
182
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsX29wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbWlkZGxld2FyZS9nbG9iYWxfb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQztBQUM3QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxNQUFNLEVBQXdCLGFBQWEsRUFBRSxpQkFBaUIsRUFDOUQsT0FBTyxHQUNSLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3RDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLGVBQWUsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEdBQ2hELE1BQU0sYUFBYSxDQUFDO0FBRXJCLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO0FBR2hELElBQU0sYUFBYSxHQUFuQixNQUFNLGFBQWE7SUFFZixPQUFPLENBQVU7SUFHNUIsQUFBTixLQUFLLENBQUMsYUFBYTtRQUNqQixxQkFBcUI7UUFDckIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDbEIsSUFBSSxFQUFFO2dCQUNKLFdBQVcsRUFBRSxzREFBc0Q7Z0JBQ25FLElBQUksRUFBRSxRQUFRO2dCQUNkLEtBQUssRUFBRSxTQUFTO2FBQ2pCO1lBQ0QsWUFBWSxFQUFFO2dCQUNaLFdBQVcsRUFBRSxxRUFBcUU7Z0JBQ2xGLElBQUksRUFBRSxTQUFTO2dCQUNmLEtBQUssRUFBRSxLQUFLO2FBQ2I7WUFDRCxVQUFVLEVBQUU7Z0JBQ1YsV0FBVyxFQUFFLG1DQUFtQztnQkFDaEQsSUFBSSxF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
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
import { debuglog } from 'node:util';
|
|
11
|
-
import { Inject, LifecycleHook, LifecycleHookUnit, Program, ArtusCliError, } from '@artus-cli/artus-cli';
|
|
12
|
-
const debug = debuglog('@eggjs/bin/middleware/handle_error');
|
|
13
|
-
let default_1 = class {
|
|
14
|
-
program;
|
|
15
|
-
async configDidLoad() {
|
|
16
|
-
this.program.use(async (_, next) => {
|
|
17
|
-
debug('enter next');
|
|
18
|
-
try {
|
|
19
|
-
await next();
|
|
20
|
-
debug('after next');
|
|
21
|
-
}
|
|
22
|
-
catch (err) {
|
|
23
|
-
debug('next error: %o', err);
|
|
24
|
-
// let artus cli to handle it
|
|
25
|
-
if (err instanceof ArtusCliError)
|
|
26
|
-
throw err;
|
|
27
|
-
console.error(err);
|
|
28
|
-
process.exit(typeof err.code === 'number' ? err.code : 1);
|
|
29
|
-
}
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
__decorate([
|
|
34
|
-
Inject(),
|
|
35
|
-
__metadata("design:type", Program)
|
|
36
|
-
], default_1.prototype, "program", void 0);
|
|
37
|
-
__decorate([
|
|
38
|
-
LifecycleHook(),
|
|
39
|
-
__metadata("design:type", Function),
|
|
40
|
-
__metadata("design:paramtypes", []),
|
|
41
|
-
__metadata("design:returntype", Promise)
|
|
42
|
-
], default_1.prototype, "configDidLoad", null);
|
|
43
|
-
default_1 = __decorate([
|
|
44
|
-
LifecycleHookUnit()
|
|
45
|
-
], default_1);
|
|
46
|
-
export default default_1;
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlX2Vycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21pZGRsZXdhcmUvaGFuZGxlX2Vycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUNMLE1BQU0sRUFBd0IsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFDdkUsYUFBYSxHQUNkLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLG9DQUFvQyxDQUFDLENBQUM7QUFHOUMsZ0JBQUE7SUFFSSxPQUFPLENBQVU7SUFHNUIsQUFBTixLQUFLLENBQUMsYUFBYTtRQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ2pDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxJQUFJLEVBQUUsQ0FBQztnQkFDYixLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdEIsQ0FBQztZQUFDLE9BQU8sR0FBUSxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDN0IsNkJBQTZCO2dCQUM3QixJQUFJLEdBQUcsWUFBWSxhQUFhO29CQUFFLE1BQU0sR0FBRyxDQUFDO2dCQUM1QyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNuQixPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRixDQUFBO0FBbEJrQjtJQURoQixNQUFNLEVBQUU7OEJBQ2lCLE9BQU87MENBQUM7QUFHNUI7SUFETCxhQUFhLEVBQUU7Ozs7OENBZWY7QUFuQlk7SUFEZCxpQkFBaUIsRUFBRTthQXFCbkIifQ==
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
import { debuglog } from 'node:util';
|
|
11
|
-
import { Inject, LifecycleHook, LifecycleHookUnit, Program, } from '@artus-cli/artus-cli';
|
|
12
|
-
import { addNodeOptionsToEnv } from '../utils.js';
|
|
13
|
-
const debug = debuglog('@eggjs/bin/middleware/inspect');
|
|
14
|
-
let default_1 = class {
|
|
15
|
-
program;
|
|
16
|
-
async configDidLoad() {
|
|
17
|
-
// add global options
|
|
18
|
-
// https://nodejs.org/dist/latest-v18.x/docs/api/cli.html#--inspect-brkhostport
|
|
19
|
-
this.program.option({
|
|
20
|
-
'inspect-brk': {
|
|
21
|
-
description: 'Activate inspector and break at start of user script',
|
|
22
|
-
type: 'boolean',
|
|
23
|
-
},
|
|
24
|
-
inspect: {
|
|
25
|
-
description: 'Activate inspector',
|
|
26
|
-
type: 'boolean',
|
|
27
|
-
},
|
|
28
|
-
});
|
|
29
|
-
this.program.use(async (ctx, next) => {
|
|
30
|
-
debug('before next');
|
|
31
|
-
let hasInspectOption = false;
|
|
32
|
-
if (ctx.args.inspect === true) {
|
|
33
|
-
addNodeOptionsToEnv('--inspect', ctx.env);
|
|
34
|
-
hasInspectOption = true;
|
|
35
|
-
}
|
|
36
|
-
if (ctx.args['inspect-brk'] === true) {
|
|
37
|
-
addNodeOptionsToEnv('--inspect-brk', ctx.env);
|
|
38
|
-
hasInspectOption = true;
|
|
39
|
-
}
|
|
40
|
-
if (hasInspectOption) {
|
|
41
|
-
ctx.args.timeout = false;
|
|
42
|
-
debug('set timeout = false when inspect enable, set env.NODE_OPTIONS=%o', ctx.env.NODE_OPTIONS);
|
|
43
|
-
}
|
|
44
|
-
else if (process.env.JB_DEBUG_FILE) {
|
|
45
|
-
// others like WebStorm 2019 will pass NODE_OPTIONS, and egg-bin itself will be debug, so could detect `process.env.JB_DEBUG_FILE`.
|
|
46
|
-
ctx.args.timeout = false;
|
|
47
|
-
debug('set timeout = false when process.env.JB_DEBUG_FILE=%o', process.env.JB_DEBUG_FILE);
|
|
48
|
-
}
|
|
49
|
-
debug('enter next');
|
|
50
|
-
await next();
|
|
51
|
-
debug('after next');
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
__decorate([
|
|
56
|
-
Inject(),
|
|
57
|
-
__metadata("design:type", Program)
|
|
58
|
-
], default_1.prototype, "program", void 0);
|
|
59
|
-
__decorate([
|
|
60
|
-
LifecycleHook(),
|
|
61
|
-
__metadata("design:type", Function),
|
|
62
|
-
__metadata("design:paramtypes", []),
|
|
63
|
-
__metadata("design:returntype", Promise)
|
|
64
|
-
], default_1.prototype, "configDidLoad", null);
|
|
65
|
-
default_1 = __decorate([
|
|
66
|
-
LifecycleHookUnit()
|
|
67
|
-
], default_1);
|
|
68
|
-
export default default_1;
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zcGVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9taWRkbGV3YXJlL2luc3BlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLEVBQ0wsTUFBTSxFQUF3QixhQUFhLEVBQUUsaUJBQWlCLEVBQzlELE9BQU8sR0FDUixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVsRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsK0JBQStCLENBQUMsQ0FBQztBQUd6QyxnQkFBQTtJQUVJLE9BQU8sQ0FBVTtJQUc1QixBQUFOLEtBQUssQ0FBQyxhQUFhO1FBQ2pCLHFCQUFxQjtRQUNyQiwrRUFBK0U7UUFDL0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDbEIsYUFBYSxFQUFFO2dCQUNiLFdBQVcsRUFBRSxzREFBc0Q7Z0JBQ25FLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLFdBQVcsRUFBRSxvQkFBb0I7Z0JBQ2pDLElBQUksRUFBRSxTQUFTO2FBQ2hCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQW1CLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDbkQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3JCLElBQUksZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1lBQzdCLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQzlCLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztZQUMxQixDQUFDO1lBQ0QsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNyQyxtQkFBbUIsQ0FBQyxlQUFlLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUM5QyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7WUFDMUIsQ0FBQztZQUNELElBQUksZ0JBQWdCLEVBQUUsQ0FBQztnQkFDckIsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUN6QixLQUFLLENBQUMsa0VBQWtFLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNsRyxDQUFDO2lCQUFNLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDckMsbUlBQW1JO2dCQUNuSSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3pCLEtBQUssQ0FBQyx1REFBdUQsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQzVGLENBQUM7WUFDRCxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDcEIsTUFBTSxJQUFJLEVBQUUsQ0FBQztZQUNiLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRixDQUFBO0FBekNrQjtJQURoQixNQUFNLEVBQUU7OEJBQ2lCLE9BQU87MENBQUM7QUFHNUI7SUFETCxhQUFhLEVBQUU7Ozs7OENBc0NmO0FBMUNZO0lBRGQsaUJBQWlCLEVBQUU7YUE0Q25CIn0=
|
package/src/bin/cli.ts
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
import path from 'node:path';
|
|
4
|
-
import { fileURLToPath } from 'node:url';
|
|
5
|
-
import { start } from '@artus-cli/artus-cli';
|
|
6
|
-
|
|
7
|
-
function getCurrentFilename() {
|
|
8
|
-
if (typeof __filename === 'string') {
|
|
9
|
-
return __filename;
|
|
10
|
-
}
|
|
11
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
12
|
-
// @ts-ignore
|
|
13
|
-
return fileURLToPath(import.meta.url);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
function main() {
|
|
17
|
-
const currentFilename = getCurrentFilename();
|
|
18
|
-
// src/bin/cli.ts => src/
|
|
19
|
-
let baseDir = path.dirname(path.dirname(currentFilename));
|
|
20
|
-
const isBuildJavascriptFile = getCurrentFilename().endsWith('.js');
|
|
21
|
-
const exclude = [ 'scripts', 'bin', 'test', 'coverage' ];
|
|
22
|
-
if (isBuildJavascriptFile) {
|
|
23
|
-
// dist/esm/bin/cli.js => dist/
|
|
24
|
-
baseDir = path.dirname(baseDir);
|
|
25
|
-
exclude.push('*.ts');
|
|
26
|
-
} else {
|
|
27
|
-
exclude.push('dist');
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
start({
|
|
31
|
-
binName: 'egg-bin',
|
|
32
|
-
exclude,
|
|
33
|
-
baseDir,
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
main();
|
package/src/cmd/base.ts
DELETED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import { debuglog } from 'node:util';
|
|
2
|
-
import { fork, ForkOptions, ChildProcess } from 'node:child_process';
|
|
3
|
-
import {
|
|
4
|
-
DefineCommand,
|
|
5
|
-
Option, Command,
|
|
6
|
-
CommandContext,
|
|
7
|
-
Inject,
|
|
8
|
-
Utils,
|
|
9
|
-
} from '@artus-cli/artus-cli';
|
|
10
|
-
|
|
11
|
-
const debug = debuglog('@eggjs/bin/base');
|
|
12
|
-
|
|
13
|
-
// only hook once and only when ever start any child.
|
|
14
|
-
const children = new Set<ChildProcess>();
|
|
15
|
-
let hadHook = false;
|
|
16
|
-
function graceful(proc: ChildProcess) {
|
|
17
|
-
// save child ref
|
|
18
|
-
children.add(proc);
|
|
19
|
-
|
|
20
|
-
// only hook once
|
|
21
|
-
/* c8 ignore else */
|
|
22
|
-
if (!hadHook) {
|
|
23
|
-
hadHook = true;
|
|
24
|
-
let signal: NodeJS.Signals;
|
|
25
|
-
[ 'SIGINT', 'SIGQUIT', 'SIGTERM' ].forEach(event => {
|
|
26
|
-
process.once(event, () => {
|
|
27
|
-
signal = event as NodeJS.Signals;
|
|
28
|
-
process.exit(0);
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
|
|
32
|
-
process.once('exit', (code: number) => {
|
|
33
|
-
for (const child of children) {
|
|
34
|
-
debug('process exit code: %o, kill child %o with %o', code, child.pid, signal);
|
|
35
|
-
child.kill(signal);
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
class ForkError extends Error {
|
|
42
|
-
code: number | null;
|
|
43
|
-
constructor(message: string, code: number | null) {
|
|
44
|
-
super(message);
|
|
45
|
-
this.code = code;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
@DefineCommand()
|
|
50
|
-
export abstract class BaseCommand extends Command {
|
|
51
|
-
@Option({
|
|
52
|
-
description: 'whether show full command script only, default is false',
|
|
53
|
-
alias: 'd',
|
|
54
|
-
type: 'boolean',
|
|
55
|
-
default: false,
|
|
56
|
-
})
|
|
57
|
-
dryRun: boolean;
|
|
58
|
-
|
|
59
|
-
@Option({
|
|
60
|
-
description: 'require the given module',
|
|
61
|
-
alias: 'r',
|
|
62
|
-
array: true,
|
|
63
|
-
default: [],
|
|
64
|
-
})
|
|
65
|
-
require: string[];
|
|
66
|
-
|
|
67
|
-
@Inject()
|
|
68
|
-
ctx: CommandContext;
|
|
69
|
-
|
|
70
|
-
@Inject()
|
|
71
|
-
utils: Utils;
|
|
72
|
-
|
|
73
|
-
// FIXME: should has a better way to init global args default value
|
|
74
|
-
protected get base() {
|
|
75
|
-
return this.ctx.args.base;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
async run() {
|
|
79
|
-
await this.utils.redirect([ '--help' ]);
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
protected async formatRequires() {
|
|
83
|
-
const requires = this.require ?? [];
|
|
84
|
-
const eggRequire = this.ctx.args.pkgEgg.require;
|
|
85
|
-
if (Array.isArray(eggRequire)) {
|
|
86
|
-
for (const r of eggRequire) {
|
|
87
|
-
requires.push(r);
|
|
88
|
-
}
|
|
89
|
-
} else if (typeof eggRequire === 'string' && eggRequire) {
|
|
90
|
-
requires.push(eggRequire);
|
|
91
|
-
}
|
|
92
|
-
return requires;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
protected async forkNode(modulePath: string, args: string[], options: ForkOptions = {}) {
|
|
96
|
-
if (this.dryRun) {
|
|
97
|
-
console.log('dry run: $ %o', `${process.execPath} ${modulePath} ${args.join(' ')}`);
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
const forkExecArgv = [
|
|
101
|
-
...this.ctx.args.execArgv || [],
|
|
102
|
-
...options.execArgv || [],
|
|
103
|
-
];
|
|
104
|
-
|
|
105
|
-
options = {
|
|
106
|
-
stdio: 'inherit',
|
|
107
|
-
env: this.ctx.env,
|
|
108
|
-
cwd: this.base,
|
|
109
|
-
...options,
|
|
110
|
-
execArgv: forkExecArgv,
|
|
111
|
-
};
|
|
112
|
-
const proc = fork(modulePath, args, options);
|
|
113
|
-
debug('Run fork pid: %o\n\n$ %s%s %s %s\n\n',
|
|
114
|
-
proc.pid,
|
|
115
|
-
options.env?.NODE_OPTIONS ? `NODE_OPTIONS='${options.env.NODE_OPTIONS}' ` : '',
|
|
116
|
-
process.execPath,
|
|
117
|
-
modulePath, args.map(a => `'${a}'`).join(' '));
|
|
118
|
-
graceful(proc);
|
|
119
|
-
|
|
120
|
-
return new Promise<void>((resolve, reject) => {
|
|
121
|
-
proc.once('exit', code => {
|
|
122
|
-
debug('fork pid: %o exit code %o', proc.pid, code);
|
|
123
|
-
children.delete(proc);
|
|
124
|
-
if (code !== 0) {
|
|
125
|
-
const err = new ForkError(modulePath + ' ' + args.join(' ') + ' exit with code ' + code, code);
|
|
126
|
-
reject(err);
|
|
127
|
-
} else {
|
|
128
|
-
resolve();
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
}
|
package/src/cmd/cov.ts
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import path from 'node:path';
|
|
2
|
-
import fs from 'node:fs/promises';
|
|
3
|
-
import { DefineCommand, Option } from '@artus-cli/artus-cli';
|
|
4
|
-
import { importResolve } from '@eggjs/utils';
|
|
5
|
-
import { TestCommand } from './test.js';
|
|
6
|
-
|
|
7
|
-
@DefineCommand({
|
|
8
|
-
command: 'cov [files...]',
|
|
9
|
-
description: 'Run the test with coverage',
|
|
10
|
-
alias: [ 'c' ],
|
|
11
|
-
})
|
|
12
|
-
export class CovCommand extends TestCommand {
|
|
13
|
-
// will use on egg-mock https://github.com/eggjs/egg-mock/blob/84a64bd19d0569ec94664c898fb1b28367b95d60/index.js#L7
|
|
14
|
-
@Option({
|
|
15
|
-
description: 'prerequire files for coverage instrument',
|
|
16
|
-
type: 'boolean',
|
|
17
|
-
default: false,
|
|
18
|
-
})
|
|
19
|
-
prerequire: boolean;
|
|
20
|
-
|
|
21
|
-
@Option({
|
|
22
|
-
description: 'coverage ignore, one or more files patterns`',
|
|
23
|
-
array: true,
|
|
24
|
-
default: [],
|
|
25
|
-
})
|
|
26
|
-
x: string[];
|
|
27
|
-
|
|
28
|
-
@Option({
|
|
29
|
-
description: 'c8 instruments passthrough`',
|
|
30
|
-
default: '--temp-directory node_modules/.c8_output -r text-summary -r json-summary -r json -r lcov -r cobertura',
|
|
31
|
-
})
|
|
32
|
-
c8: string;
|
|
33
|
-
|
|
34
|
-
get defaultExcludes() {
|
|
35
|
-
return [
|
|
36
|
-
'example/',
|
|
37
|
-
'examples/',
|
|
38
|
-
'mocks**/',
|
|
39
|
-
'docs/',
|
|
40
|
-
// https://github.com/JaKXz/test-exclude/blob/620a7be412d4fc2070d50f0f63e3228314066fc9/index.js#L73
|
|
41
|
-
'test/**',
|
|
42
|
-
'test{,-*}.js',
|
|
43
|
-
'**/*.test.js',
|
|
44
|
-
'**/__tests__/**',
|
|
45
|
-
'**/node_modules/**',
|
|
46
|
-
'typings',
|
|
47
|
-
'**/*.d.ts',
|
|
48
|
-
];
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
protected async forkNode(modulePath: string, args: string[]) {
|
|
52
|
-
if (this.prerequire) {
|
|
53
|
-
this.ctx.env.EGG_BIN_PREREQUIRE = 'true';
|
|
54
|
-
}
|
|
55
|
-
// append cobertura
|
|
56
|
-
if (this.c8) {
|
|
57
|
-
this.c8 += ' -r cobertura';
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// add c8 args
|
|
61
|
-
// https://github.com/eggjs/egg/issues/3930
|
|
62
|
-
const c8Args = [
|
|
63
|
-
// '--show-process-tree',
|
|
64
|
-
...this.c8.split(' ').filter(a => a.trim()),
|
|
65
|
-
];
|
|
66
|
-
if (this.ctx.args.typescript) {
|
|
67
|
-
this.ctx.env.SPAWN_WRAP_SHIM_ROOT = path.join(this.base, 'node_modules');
|
|
68
|
-
c8Args.push('--extension');
|
|
69
|
-
c8Args.push('.ts');
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
const excludes = new Set([
|
|
73
|
-
...process.env.COV_EXCLUDES?.split(',') ?? [],
|
|
74
|
-
...this.defaultExcludes,
|
|
75
|
-
...this.x,
|
|
76
|
-
]);
|
|
77
|
-
for (const exclude of excludes) {
|
|
78
|
-
c8Args.push('-x');
|
|
79
|
-
c8Args.push(exclude);
|
|
80
|
-
}
|
|
81
|
-
const c8File = importResolve('c8/bin/c8.js');
|
|
82
|
-
const outputDir = path.join(this.base, 'node_modules/.c8_output');
|
|
83
|
-
await fs.rm(outputDir, { force: true, recursive: true });
|
|
84
|
-
const coverageDir = path.join(this.base, 'coverage');
|
|
85
|
-
await fs.rm(coverageDir, { force: true, recursive: true });
|
|
86
|
-
|
|
87
|
-
await super.forkNode(c8File, [ ...c8Args, process.execPath, ...this.ctx.args.execArgv || [], modulePath, ...args ]);
|
|
88
|
-
}
|
|
89
|
-
}
|
package/src/cmd/debug.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { DefineCommand, Command, Utils, Inject } from '@artus-cli/artus-cli';
|
|
2
|
-
|
|
3
|
-
@DefineCommand({
|
|
4
|
-
command: 'debug',
|
|
5
|
-
description: 'Alias to `egg-bin dev --inspect`',
|
|
6
|
-
})
|
|
7
|
-
export class DebugCommand extends Command {
|
|
8
|
-
@Inject()
|
|
9
|
-
utils: Utils;
|
|
10
|
-
|
|
11
|
-
async run() {
|
|
12
|
-
await this.utils.redirect([ 'dev', '--inspect' ]);
|
|
13
|
-
}
|
|
14
|
-
}
|