@idlebox/cli 0.0.6 → 0.0.8

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/lib/startup.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { IArgsReaderApi } from '@idlebox/args';
1
+ import type { IArgsReaderApi, ISubArgsReaderApi } from '@idlebox/args';
2
2
  import { type IArgDefineMap, type ICommandDefine, type ICommandDefineWithCommand } from '@idlebox/cli-help-builder';
3
3
  import { type IApp } from './index.js';
4
4
  export declare const app: Readonly<IApp>;
@@ -12,12 +12,14 @@ interface IApplicationHelper {
12
12
  legend(): string;
13
13
  usage(): string;
14
14
  }
15
+ type InitFunc = (argv: IArgsReaderApi, command?: ISubArgsReaderApi) => void | Promise<void>;
15
16
  interface IApplicationEntry {
16
17
  getHelper(command?: string): Promise<IApplicationHelper>;
17
18
  withCommon(commonArgs: IArgDefineMap): this;
18
19
  simple(command: Omit<ICommandDefine, 'description' | 'commonArgs' | 'isHidden'>, main: (args: IArgsReaderApi) => Promise<void>): Promise<void>;
19
20
  static(imports: Record<string, string>, helps: readonly ICommandDefineWithCommand[]): Promise<void>;
20
21
  dynamic(absRootDir: string, globs?: string | string[]): Promise<void>;
22
+ initialize(callback: InitFunc): this;
21
23
  }
22
24
  export declare function makeApplication({ name: binName, description, logPrefix }?: IAppBasic): IApplicationEntry;
23
25
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"startup.d.ts","sourceRoot":"","sources":["../src/startup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAqB,MAAM,eAAe,CAAC;AAEvE,OAAO,EAA0C,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAW5J,OAAO,EAAiB,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAoBtD,eAAO,MAAM,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAQ,CAAC;AAQxC,UAAU,SAAS;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC5B;AAmBD,UAAU,kBAAkB;IAC3B,IAAI,IAAI,MAAM,CAAC;IACf,MAAM,IAAI,MAAM,CAAC;IACjB,KAAK,IAAI,MAAM,CAAC;CAChB;AAED,UAAU,iBAAiB;IAC1B,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzD,UAAU,CAAC,UAAU,EAAE,aAAa,GAAG,IAAI,CAAC;IAC5C,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,aAAa,GAAG,YAAY,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/I,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,yBAAyB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpG,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtE;AAED,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,GAAE,SAAsB,GAAG,iBAAiB,CAyLpH"}
1
+ {"version":3,"file":"startup.d.ts","sourceRoot":"","sources":["../src/startup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvE,OAAO,EAA0C,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAoB5J,OAAO,EAAiB,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAoBtD,eAAO,MAAM,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAQ,CAAC;AAQxC,UAAU,SAAS;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC5B;AAmBD,UAAU,kBAAkB;IAC3B,IAAI,IAAI,MAAM,CAAC;IACf,MAAM,IAAI,MAAM,CAAC;IACjB,KAAK,IAAI,MAAM,CAAC;CAChB;AAED,KAAK,QAAQ,GAAG,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAC5F,UAAU,iBAAiB;IAC1B,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzD,UAAU,CAAC,UAAU,EAAE,aAAa,GAAG,IAAI,CAAC;IAC5C,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,aAAa,GAAG,YAAY,GAAG,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/I,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,SAAS,yBAAyB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpG,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;CACrC;AAED,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,GAAE,SAAsB,GAAG,iBAAiB,CAiNpH"}
package/lib/startup.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { argv } from '@idlebox/args/default';
2
2
  import { CliApplicationHelp } from '@idlebox/cli-help-builder';
3
- import { humanDate, NotImplementedError, registerGlobalLifecycle, SoftwareDefectError, toDisposable, UsageError } from '@idlebox/common';
3
+ import { ExitCode, humanDate, NotImplementedError, registerGlobalLifecycle, SoftwareDefectError, toDisposable, UsageError, } from '@idlebox/common';
4
4
  import { createRootLogger, EnableLogLevel, logger } from '@idlebox/logger';
5
5
  import { registerNodejsExitHandler, shutdown } from '@idlebox/node';
6
6
  import { hasInstalledSourceMapSupport } from '@idlebox/source-map-support';
@@ -92,6 +92,15 @@ export function makeApplication({ name: binName, description, logPrefix } = auto
92
92
  }
93
93
  let commons;
94
94
  let commands;
95
+ const initializeCallbacks = [];
96
+ async function initializeIfNeeded(command) {
97
+ const list = initializeCallbacks.slice();
98
+ initializeCallbacks.length = 0;
99
+ Object.freeze(initializeCallbacks);
100
+ for (const cb of list) {
101
+ await cb(argv, command);
102
+ }
103
+ }
95
104
  return {
96
105
  async getHelper(command) {
97
106
  const help = new CliApplicationHelp(binName, description);
@@ -133,6 +142,10 @@ export function makeApplication({ name: binName, description, logPrefix } = auto
133
142
  commons = commonArgs;
134
143
  return this;
135
144
  },
145
+ initialize(cb) {
146
+ initializeCallbacks.push(cb);
147
+ return this;
148
+ },
136
149
  async simple(command, main) {
137
150
  if (info.showHelp) {
138
151
  const help = await this.getHelper();
@@ -140,6 +153,7 @@ export function makeApplication({ name: binName, description, logPrefix } = auto
140
153
  shutdown(0);
141
154
  }
142
155
  consumeCommandArguments(command);
156
+ await initializeIfNeeded();
143
157
  const result = await main(argv);
144
158
  if (result !== undefined) {
145
159
  logger.warn `main function retrun type is not void`;
@@ -155,7 +169,8 @@ export function makeApplication({ name: binName, description, logPrefix } = auto
155
169
  shutdown(0);
156
170
  }
157
171
  if (!subcmd?.value) {
158
- throw new UsageError(`missing command, use --help/-h to see available commands`);
172
+ logger.error(`missing command, use --help/-h to see available commands`);
173
+ shutdown(ExitCode.USAGE);
159
174
  }
160
175
  const commandName = subcmd.value;
161
176
  assert.ok(imports[commandName], `command "${commandName}" not found`);
@@ -164,6 +179,7 @@ export function makeApplication({ name: binName, description, logPrefix } = auto
164
179
  if (commons)
165
180
  consumeArguments(commons);
166
181
  consumeCommandArguments(commands.find((cmd) => cmd.command === commandName));
182
+ await initializeIfNeeded(subcmd);
167
183
  await execMain(entryFile, subcmd);
168
184
  },
169
185
  async dynamic(absRootDir, globs = ['*.js']) {
@@ -179,6 +195,10 @@ export function makeApplication({ name: binName, description, logPrefix } = auto
179
195
  known_commands.push(base);
180
196
  importMap[base] = path;
181
197
  }
198
+ if (known_commands.length === 0) {
199
+ logger.error `can not found any command file in relative<${absRootDir}> by globs "${globs.join('", "')}"`;
200
+ shutdown(ExitCode.PROGRAM);
201
+ }
182
202
  const subcmd = argv.command(known_commands);
183
203
  if (subcmd?.value) {
184
204
  const cmd = await importDefine(importMap[subcmd.value]);
@@ -193,12 +213,14 @@ export function makeApplication({ name: binName, description, logPrefix } = auto
193
213
  shutdown(0);
194
214
  }
195
215
  if (!subcmd?.value) {
196
- throw new UsageError(`missing command, use --help/-h to see available commands`);
216
+ logger.error(`missing command, use --help/-h to see available commands`);
217
+ shutdown(ExitCode.USAGE);
197
218
  }
198
219
  const commandName = subcmd.value;
199
220
  if (commons)
200
221
  consumeArguments(commons);
201
222
  consumeCommandArguments(commands.find((cmd) => cmd.command === commandName));
223
+ await initializeIfNeeded(subcmd);
202
224
  await execMain(importMap[commandName], subcmd);
203
225
  },
204
226
  };
@@ -1 +1 @@
1
- {"version":3,"file":"startup.js","sourceRoot":"","sources":["../src/startup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"startup.js","sourceRoot":"","sources":["../src/startup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAA+F,MAAM,2BAA2B,CAAC;AAC5J,OAAO,EACN,QAAQ,EACR,SAAS,EACT,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,YAAY,EACZ,UAAU,GAEV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,aAAa,EAAa,MAAM,YAAY,CAAC;AAEtD,MAAM,cAAc;IACZ,KAAK,GAAG,KAAK,CAAC;IACd,OAAO,GAAG,KAAK,CAAC;IAChB,MAAM,GAAG,KAAK,CAAC;IACf,QAAQ,GAAG,KAAK,CAAC;IACjB,KAAK,GAAG,KAAK,CAAC;IACd,WAAW,GAAG,KAAK,CAAC;IAEnB,QAAQ,GAAG,EAAE,CAAC;IACtB,IAAI,OAAO;QACV,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;CACD;AAED,MAAM,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;AAClC,MAAM,CAAC,MAAM,GAAG,GAAmB,IAAI,CAAC;AAExC,MAAM,WAAW,GAAG;IACnB,aAAa,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE;IACxD,uBAAuB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE;IAC5D,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE;CACnD,CAAC;AAQF,SAAS,QAAQ;IAChB,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACxC,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAEzC,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,qCAAqC,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAiB,CAAC;IAEvF,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC9B,CAAC;AAkBD,MAAM,UAAU,eAAe,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,SAAS,KAAgB,QAAQ,EAAE;IAChG,MAAM,CAAC,KAAK,CAAC,OAAO,OAAO,EAAE,QAAQ,EAAE,uBAAuB,CAAC,CAAC;IAChE,MAAM,CAAC,KAAK,CAAC,OAAO,WAAW,EAAE,QAAQ,EAAE,8BAA8B,CAAC,CAAC;IAE3E,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAExB,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC;IAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC;IAE5D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO,GAAG,QAAQ,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAC,KAAK,GAAG,QAAQ,GAAG,CAAC,CAAC;IAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IAErB,IAAI,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC;IAChC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAClB,KAAK,GAAG,cAAc,CAAC,OAAO,CAAC;IAChC,CAAC;SAAM,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACvB,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;IAC9B,CAAC;SAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACxB,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;IAC9B,CAAC;IAED,gBAAgB,CAAC,SAAS,IAAI,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9C,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC;IAEjC,MAAM,CAAC,OAAO,CAAA,0BAA0B,4BAA4B,EAAE,EAAE,CAAC;IAEzE,IAAI,CAAC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAC9B,MAAM,IAAI,mBAAmB,CAAC,yCAAyC,CAAC,CAAC;IAC1E,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxC,yBAAyB,CAAC;QACzB,MAAM,EAAE,OAAO,CAAC,GAAG;QACnB,OAAO,EAAE,OAAO,CAAC,OAAO;KACxB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,uBAAuB,CACtB,YAAY,CAAC,GAAG,EAAE;YACjB,MAAM,CAAC,KAAK,CAAC,+BAA+B,OAAO,CAAC,QAAQ,MAAM,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7G,CAAC,CAAC,CACF,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,IAAI,UAAU,CAAC,2CAA2C,CAAC,CAAC;IACnE,CAAC;IAED,IAAI,OAAkC,CAAC;IACvC,IAAI,QAA8C,CAAC;IACnD,MAAM,mBAAmB,GAAoB,EAAE,CAAC;IAChD,KAAK,UAAU,kBAAkB,CAAC,OAA2B;QAC5D,MAAM,IAAI,GAAG,mBAAmB,CAAC,KAAK,EAAE,CAAC;QACzC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/B,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAEnC,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACzB,CAAC;IACF,CAAC;IAED,OAAO;QACN,KAAK,CAAC,SAAS,CAAC,OAAgB;YAC/B,MAAM,IAAI,GAAG,IAAI,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAE1D,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACjB,IAAI,CAAC,YAAY,EAAE,CAAC;YACrB,CAAC;YAED,IAAI,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;YAClC,CAAC;YACD,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;YAErC,IAAI,OAAO,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;gBAC9D,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,oBAAoB,OAAO,EAAE,CAAC,CAAC;gBAC9C,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACP,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAC5B,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;wBAClB,SAAS;oBACV,CAAC;oBACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBACxC,CAAC;YACF,CAAC;YAED,OAAO;gBACN,IAAI;oBACH,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC3B,CAAC;gBACD,MAAM;oBACL,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;gBACtB,CAAC;gBACD,KAAK;oBACJ,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC5B,CAAC;aACD,CAAC;QACH,CAAC;QACD,UAAU,CAAC,UAAyB;YACnC,IAAI,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACpE,OAAO,GAAG,UAAU,CAAC;YACrB,OAAO,IAAI,CAAC;QACb,CAAC;QACD,UAAU,CAAC,EAAE;YACZ,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7B,OAAO,IAAI,CAAC;QACb,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,OAAwE,EAAE,IAA6C;YACnI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;gBACpC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC3B,QAAQ,CAAC,CAAC,CAAC,CAAC;YACb,CAAC;YAED,uBAAuB,CAAC,OAAO,CAAC,CAAC;YAEjC,MAAM,kBAAkB,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC;YAEhC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAA,uCAAuC,CAAC;YACpD,CAAC;QACF,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,OAA+B,EAAE,KAA2C;YACxF,QAAQ,GAAG,KAAK,CAAC;YAEjB,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAE5C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACjD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC3B,QAAQ,CAAC,CAAC,CAAC,CAAC;YACb,CAAC;YACD,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;gBACpB,MAAM,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;gBACzE,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;YAEjC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,YAAY,WAAW,aAAa,CAAC,CAAC;YAEtE,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YACxD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;YAEpF,IAAI,OAAO;gBAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACvC,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC;YAE7E,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACnC,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,QAA2B,CAAC,MAAM,CAAC;YACpE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC/B,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;YACD,MAAM,CAAC,OAAO,CAAA,4BAA4B,UAAU,cAAc,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAErF,MAAM,cAAc,GAAa,EAAE,CAAC;YACpC,MAAM,SAAS,GAA2B,EAAE,CAAC;YAC7C,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBAExC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1B,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YACxB,CAAC;YAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,CAAC,KAAK,CAAA,8CAA8C,UAAU,eAAe,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;gBACzG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC5B,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAE5C,IAAI,MAAM,EAAE,KAAK,EAAE,CAAC;gBACnB,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxD,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACP,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACzF,CAAC;YAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACjD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC3B,QAAQ,CAAC,CAAC,CAAC,CAAC;YACb,CAAC;YAED,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;gBACpB,MAAM,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;gBACzE,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;YACD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;YAEjC,IAAI,OAAO;gBAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACvC,uBAAuB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC;YAE7E,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;KACD,CAAC;AACH,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,MAAyB;IAC9D,MAAM,CAAC,OAAO,CAAA,sBAAsB,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1D,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,mBAAmB,CAAC,mCAAmC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;IAElC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAA,sDAAsD,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;IACzF,CAAC;AACF,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;IAEvC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,4BAA4B,IAAI,EAAE,CAAC,CAAC;IAEvD,MAAM,GAAG,GAAkB,IAAI,OAAO,EAAE,CAAC;IACzC,OAAO;QACN,OAAO,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QACtC,GAAG,GAAG,CAAC,MAAM,EAAE;KACf,CAAC;AACH,CAAC;AAED,MAAM,MAAM,GAAG,MAAM,CAAC;AAEtB,SAAS,gBAAgB,CAAC,OAAsB;IAC/C,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACF,CAAC;AACF,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAoE;IACpG,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,IAAI,UAAU,CAAC,4CAA4C,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,OAAO,CAAC,IAAI;QAAE,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,OAAO,CAAC,UAAU;QAAE,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7D,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,UAAU,CAAC,yBAAyB,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC;IACF,CAAC;AACF,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@idlebox/cli",
3
3
  "type": "module",
4
- "version": "0.0.6",
4
+ "version": "0.0.8",
5
5
  "exports": {
6
6
  ".": {
7
7
  "source": "./src/index.ts",
@@ -15,22 +15,22 @@
15
15
  },
16
16
  "sideEffects": false,
17
17
  "dependencies": {
18
- "@idlebox/common": "^1.5.3",
19
- "@idlebox/logger": "^0.0.12",
20
- "@idlebox/args": "^0.0.18",
21
- "@idlebox/cli-help-builder": "^0.0.4",
22
- "@idlebox/node": "^1.4.18",
23
- "@idlebox/source-map-support": "^0.0.11"
18
+ "@idlebox/common": "^1.5.10",
19
+ "@idlebox/cli-help-builder": "^0.0.5",
20
+ "@idlebox/logger": "^0.0.13",
21
+ "@idlebox/node": "^1.4.19",
22
+ "@idlebox/source-map-support": "^0.0.13",
23
+ "@idlebox/args": "^0.0.19"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@types/node": "^24.0.14",
27
+ "@idlebox/source-map-support": "^0.0.13",
27
28
  "@build-script/single-dog-asset": "latest",
28
- "@idlebox/source-map-support": "^0.0.11",
29
- "@idlebox/cli-static-generator": "^0.0.5",
30
- "@mpis/run": "^0.0.14"
29
+ "@idlebox/cli-static-generator": "^0.0.7",
30
+ "@mpis/run": "^0.0.16"
31
31
  },
32
32
  "optionalDependencies": {
33
- "@idlebox/cli-static-generator": "^0.0.5"
33
+ "@idlebox/cli-static-generator": "^0.0.7"
34
34
  },
35
35
  "license": "MIT",
36
36
  "author": "GongT <admin@gongt.me>",
package/src/startup.ts CHANGED
@@ -1,7 +1,16 @@
1
1
  import type { IArgsReaderApi, ISubArgsReaderApi } from '@idlebox/args';
2
2
  import { argv } from '@idlebox/args/default';
3
3
  import { CliApplicationHelp, type CommandDefine, type IArgDefineMap, type ICommandDefine, type ICommandDefineWithCommand } from '@idlebox/cli-help-builder';
4
- import { humanDate, NotImplementedError, registerGlobalLifecycle, SoftwareDefectError, toDisposable, UsageError, type IPackageJson } from '@idlebox/common';
4
+ import {
5
+ ExitCode,
6
+ humanDate,
7
+ NotImplementedError,
8
+ registerGlobalLifecycle,
9
+ SoftwareDefectError,
10
+ toDisposable,
11
+ UsageError,
12
+ type IPackageJson,
13
+ } from '@idlebox/common';
5
14
  import { createRootLogger, EnableLogLevel, logger } from '@idlebox/logger';
6
15
  import { registerNodejsExitHandler, shutdown } from '@idlebox/node';
7
16
  import { hasInstalledSourceMapSupport } from '@idlebox/source-map-support';
@@ -68,12 +77,14 @@ interface IApplicationHelper {
68
77
  usage(): string;
69
78
  }
70
79
 
80
+ type InitFunc = (argv: IArgsReaderApi, command?: ISubArgsReaderApi) => void | Promise<void>;
71
81
  interface IApplicationEntry {
72
82
  getHelper(command?: string): Promise<IApplicationHelper>;
73
83
  withCommon(commonArgs: IArgDefineMap): this;
74
84
  simple(command: Omit<ICommandDefine, 'description' | 'commonArgs' | 'isHidden'>, main: (args: IArgsReaderApi) => Promise<void>): Promise<void>;
75
85
  static(imports: Record<string, string>, helps: readonly ICommandDefineWithCommand[]): Promise<void>;
76
86
  dynamic(absRootDir: string, globs?: string | string[]): Promise<void>;
87
+ initialize(callback: InitFunc): this;
77
88
  }
78
89
 
79
90
  export function makeApplication({ name: binName, description, logPrefix }: IAppBasic = autoload()): IApplicationEntry {
@@ -134,6 +145,16 @@ export function makeApplication({ name: binName, description, logPrefix }: IAppB
134
145
 
135
146
  let commons: IArgDefineMap | undefined;
136
147
  let commands: readonly ICommandDefineWithCommand[];
148
+ const initializeCallbacks: Array<InitFunc> = [];
149
+ async function initializeIfNeeded(command?: ISubArgsReaderApi) {
150
+ const list = initializeCallbacks.slice();
151
+ initializeCallbacks.length = 0;
152
+ Object.freeze(initializeCallbacks);
153
+
154
+ for (const cb of list) {
155
+ await cb(argv, command);
156
+ }
157
+ }
137
158
 
138
159
  return {
139
160
  async getHelper(command?: string) {
@@ -178,6 +199,10 @@ export function makeApplication({ name: binName, description, logPrefix }: IAppB
178
199
  commons = commonArgs;
179
200
  return this;
180
201
  },
202
+ initialize(cb) {
203
+ initializeCallbacks.push(cb);
204
+ return this;
205
+ },
181
206
  async simple(command: Omit<ICommandDefine, 'description' | 'commonArgs' | 'isHidden'>, main: (args: IArgsReaderApi) => Promise<void>) {
182
207
  if (info.showHelp) {
183
208
  const help = await this.getHelper();
@@ -187,6 +212,7 @@ export function makeApplication({ name: binName, description, logPrefix }: IAppB
187
212
 
188
213
  consumeCommandArguments(command);
189
214
 
215
+ await initializeIfNeeded();
190
216
  const result = await main(argv);
191
217
 
192
218
  if (result !== undefined) {
@@ -205,7 +231,8 @@ export function makeApplication({ name: binName, description, logPrefix }: IAppB
205
231
  shutdown(0);
206
232
  }
207
233
  if (!subcmd?.value) {
208
- throw new UsageError(`missing command, use --help/-h to see available commands`);
234
+ logger.error(`missing command, use --help/-h to see available commands`);
235
+ shutdown(ExitCode.USAGE);
209
236
  }
210
237
  const commandName = subcmd.value;
211
238
 
@@ -217,6 +244,7 @@ export function makeApplication({ name: binName, description, logPrefix }: IAppB
217
244
  if (commons) consumeArguments(commons);
218
245
  consumeCommandArguments(commands.find((cmd) => cmd.command === commandName));
219
246
 
247
+ await initializeIfNeeded(subcmd);
220
248
  await execMain(entryFile, subcmd);
221
249
  },
222
250
  async dynamic(absRootDir: string, globs: string | string[] = ['*.js']) {
@@ -235,6 +263,11 @@ export function makeApplication({ name: binName, description, logPrefix }: IAppB
235
263
  importMap[base] = path;
236
264
  }
237
265
 
266
+ if (known_commands.length === 0) {
267
+ logger.error`can not found any command file in relative<${absRootDir}> by globs "${globs.join('", "')}"`;
268
+ shutdown(ExitCode.PROGRAM);
269
+ }
270
+
238
271
  const subcmd = argv.command(known_commands);
239
272
 
240
273
  if (subcmd?.value) {
@@ -251,13 +284,15 @@ export function makeApplication({ name: binName, description, logPrefix }: IAppB
251
284
  }
252
285
 
253
286
  if (!subcmd?.value) {
254
- throw new UsageError(`missing command, use --help/-h to see available commands`);
287
+ logger.error(`missing command, use --help/-h to see available commands`);
288
+ shutdown(ExitCode.USAGE);
255
289
  }
256
290
  const commandName = subcmd.value;
257
291
 
258
292
  if (commons) consumeArguments(commons);
259
293
  consumeCommandArguments(commands.find((cmd) => cmd.command === commandName));
260
294
 
295
+ await initializeIfNeeded(subcmd);
261
296
  await execMain(importMap[commandName], subcmd);
262
297
  },
263
298
  };