@idlebox/node 1.3.4 → 1.3.6

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.
@@ -3,8 +3,8 @@
3
3
  // @ts-ignore
4
4
  /* eslint-disable */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.streamToBuffer = exports.streamHasEnd = exports.streamPromise = exports.BlackHoleStream = exports.relativePath = exports.osTempDir = exports.normalizePath = exports.resolvePath = exports.nodeResolvePathArray = exports.lrelative = exports.getAllPathUpToRoot = exports.findPackageRoot = exports.findUpUntilSync = exports.findUpUntil = exports.WrappedTerminalConsole = exports.writeFileIfChange = exports.writeFileIfChangeSync = exports.createTempFolder = exports.emptyDir = exports.commandInPathSync = exports.commandInPath = exports.dumpEventEmitterEmit = exports.ERRNO_LINUX = exports.getNpmConfigValue = exports.sha256 = exports.md5 = exports.respawnInScope = exports.trySpawnInScope = exports.spawnRecreateEventHandlers = exports.findBinary = exports.PathEnvironment = exports.PATH_SEPARATOR = exports.cleanupEnvironment = exports.deleteEnvironment = exports.getEnvironment = exports.isTypeError = exports.isExistsError = exports.isNotExistsError = exports.readFileIfExists = exports.exists = exports.execLazyError = exports.printLine = exports.spawnGetEverything = exports.spawnGetOutput = exports.spawnGetOutputSync = exports.spawnWithoutOutput = exports.spawnWithoutOutputSync = exports.checkChildProcessResult = exports.runMain = exports.ExitError = void 0;
7
- exports.HexDumpLoggerStream = exports.LoggerStream = exports.drainStream = exports.disposableStream = exports.CollectingStream = exports.RawCollectingStream = void 0;
6
+ exports.streamHasEnd = exports.streamPromise = exports.BlackHoleStream = exports.relativePath = exports.osTempDir = exports.normalizePath = exports.resolvePath = exports.nodeResolvePathArray = exports.lrelative = exports.getAllPathUpToRoot = exports.findPackageRoot = exports.findUpUntilSync = exports.findUpUntil = exports.WrappedTerminalConsole = exports.writeFileIfChange = exports.writeFileIfChangeSync = exports.createTempFolder = exports.emptyDir = exports.commandInPathSync = exports.commandInPath = exports.dumpEventEmitterEmit = exports.isModuleResolutionError = exports.ERRNO_LINUX = exports.getNpmConfigValue = exports.sha256 = exports.md5 = exports.respawnInScope = exports.trySpawnInScope = exports.spawnRecreateEventHandlers = exports.findBinary = exports.PathEnvironment = exports.PATH_SEPARATOR = exports.cleanupEnvironment = exports.deleteEnvironment = exports.getEnvironment = exports.isTypeError = exports.isExistsError = exports.isNotExistsError = exports.readFileIfExists = exports.exists = exports.execLazyError = exports.printLine = exports.spawnGetEverything = exports.spawnGetOutput = exports.spawnGetOutputSync = exports.spawnWithoutOutput = exports.spawnWithoutOutputSync = exports.checkChildProcessResult = exports.runMain = exports.ExitError = void 0;
7
+ exports.HexDumpLoggerStream = exports.LoggerStream = exports.drainStream = exports.disposableStream = exports.CollectingStream = exports.RawCollectingStream = exports.streamToBuffer = void 0;
8
8
  var asyncLoad_js_1 = require("./asyncLoad.cjs");
9
9
  Object.defineProperty(exports, "ExitError", { enumerable: true, get: function () { return asyncLoad_js_1.ExitError; } });
10
10
  var asyncLoad_js_2 = require("./asyncLoad.cjs");
@@ -81,6 +81,10 @@ Object.defineProperty(exports, "getNpmConfigValue", { enumerable: true, get: fun
81
81
  // Identifiers
82
82
  var code_js_1 = require("./error/code.cjs");
83
83
  Object.defineProperty(exports, "ERRNO_LINUX", { enumerable: true, get: function () { return code_js_1.ERRNO_LINUX; } });
84
+ /* error/module.ts */
85
+ // Identifiers
86
+ var module_js_1 = require("./error/module.cjs");
87
+ Object.defineProperty(exports, "isModuleResolutionError", { enumerable: true, get: function () { return module_js_1.isModuleResolutionError; } });
84
88
  /* events/dumpEventEmitter.ts */
85
89
  // Identifiers
86
90
  var dumpEventEmitter_js_1 = require("./events/dumpEventEmitter.cjs");
@@ -6,5 +6,5 @@
6
6
  "../../src/__create_index.generated.ts"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "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"
9
+ "mappings": "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"
10
10
  }
@@ -243,15 +243,17 @@ export declare interface IEnvironmentResult {
243
243
  name: string;
244
244
  }
245
245
 
246
- export declare function isExistsError(e: any): boolean;
246
+ export declare function isExistsError(e: any): e is NodeError<'EEXIST'>;
247
247
 
248
- export declare function isNotExistsError(e: any): boolean;
248
+ export declare function isModuleResolutionError(ex: any): ex is NodeError_2<'MODULE_NOT_FOUND' | 'ERR_MODULE_NOT_FOUND'>;
249
+
250
+ export declare function isNotExistsError(e: any): e is NodeError<'ENOENT'>;
249
251
 
250
252
  export declare interface ISpawnAdditionOptions {
251
253
  verbose?: boolean;
252
254
  }
253
255
 
254
- export declare function isTypeError(e: any): boolean;
256
+ export declare function isTypeError(e: any): e is NodeError<'ENOTDIR' | 'ENOTDIR'>;
255
257
 
256
258
  export declare interface JoinPathFunction {
257
259
  (from: string, to: string): string;
@@ -270,6 +272,14 @@ export declare function lrelative(from: string, to: string): string;
270
272
 
271
273
  export declare function md5(data: Buffer): string;
272
274
 
275
+ declare type NodeError<T> = {
276
+ code: T;
277
+ } & Error;
278
+
279
+ declare type NodeError_2<T> = {
280
+ code: T;
281
+ } & Error;
282
+
273
283
  export declare function nodeResolvePathArray(from: string, file?: string): string[];
274
284
 
275
285
  export declare const normalizePath: NormalizePathFunction;
@@ -278,6 +288,8 @@ export declare interface NormalizePathFunction {
278
288
  (path: string): string;
279
289
  }
280
290
 
291
+ declare type OnExit = (error?: Error) => Promise<any>;
292
+
281
293
  export declare function osTempDir(name?: string): string;
282
294
 
283
295
  export declare const PATH_SEPARATOR: string;
@@ -336,7 +348,7 @@ export declare function respawnInScope(mainFunc: Function): unknown | never;
336
348
  * setErrorLogRoot(require('path').dirname(__dirname));
337
349
  * ```
338
350
  **/
339
- export declare function runMain(main: AsyncMainFunction): void;
351
+ export declare function runMain(main: AsyncMainFunction, onExit?: OnExit): void;
340
352
 
341
353
  export declare function sha256(data: Buffer): string;
342
354
 
@@ -16,19 +16,36 @@ exports.ExitError = ExitError;
16
16
  * setErrorLogRoot(require('path').dirname(__dirname));
17
17
  * ```
18
18
  **/
19
- function runMain(main) {
19
+ function runMain(main, onExit) {
20
20
  Promise.resolve()
21
- .then(main)
21
+ .then(async () => {
22
+ try {
23
+ await main();
24
+ await onExit?.();
25
+ }
26
+ catch (e) {
27
+ await onExit?.(e);
28
+ throw e;
29
+ }
30
+ })
22
31
  .catch((e) => {
23
32
  if (e instanceof ExitError) {
24
- console.error(e.message);
25
- process.exit(1);
33
+ if (e.code) {
34
+ console.error('[exit] %s', e.message);
35
+ process.exitCode = e.code;
36
+ }
37
+ else {
38
+ process.exitCode = 0;
39
+ }
40
+ }
41
+ else {
42
+ (0, common_1.prettyPrintError)('main', e);
26
43
  }
27
- (0, common_1.prettyPrintError)('main', e);
28
- return e.code || 1;
44
+ if (!process.exitCode)
45
+ process.exitCode = 1;
29
46
  })
30
- .then((code) => {
31
- process.exit(code || 0);
47
+ .finally(() => {
48
+ process.exit();
32
49
  });
33
50
  }
34
51
  exports.runMain = runMain;
@@ -6,5 +6,5 @@
6
6
  "../../src/asyncLoad.ts"
7
7
  ],
8
8
  "names": [],
9
- "mappings": ";;;AAAA,4CAAmD;AAInD,MAAa,SAAU,SAAQ,KAAK;IAGlB;IAFjB,YACC,OAAe,EACC,OAAe,CAAC;QAEhC,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,SAAI,GAAJ,IAAI,CAAY;IAGjC,CAAC;CACD;AAPD,8BAOC;AAED;;;;;IAKI;AACJ,SAAgB,OAAO,CAAC,IAAuB;IAC9C,OAAO,CAAC,OAAO,EAAE;SACf,IAAI,CAAC,IAAI,CAAC;SACV,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACZ,IAAI,CAAC,YAAY,SAAS,EAAE;YAC3B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAChB;QAED,IAAA,yBAAgB,EAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5B,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACd,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AAfD,0BAeC"
9
+ "mappings": ";;;AAAA,4CAAmD;AAInD,MAAa,SAAU,SAAQ,KAAK;IAGlB;IAFjB,YACC,OAAe,EACC,OAAe,CAAC;QAEhC,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,SAAI,GAAJ,IAAI,CAAY;IAGjC,CAAC;CACD;AAPD,8BAOC;AAID;;;;;IAKI;AACJ,SAAgB,OAAO,CAAC,IAAuB,EAAE,MAAe;IAC/D,OAAO,CAAC,OAAO,EAAE;SACf,IAAI,CAAC,KAAK,IAAI,EAAE;QAChB,IAAI;YACH,MAAM,IAAI,EAAE,CAAC;YACb,MAAM,MAAM,EAAE,EAAE,CAAC;SACjB;QAAC,OAAO,CAAM,EAAE;YAChB,MAAM,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAClB,MAAM,CAAC,CAAC;SACR;IACF,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACZ,IAAI,CAAC,YAAY,SAAS,EAAE;YAC3B,IAAI,CAAC,CAAC,IAAI,EAAE;gBACX,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;gBACtC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC;aAC1B;iBAAM;gBACN,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;aACrB;SACD;aAAM;YACN,IAAA,yBAAgB,EAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SAC5B;QACD,IAAI,CAAC,OAAO,CAAC,QAAQ;YAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC7C,CAAC,CAAC;SACD,OAAO,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC;AA3BD,0BA2BC"
10
10
  }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isModuleResolutionError = void 0;
4
+ function isModuleResolutionError(ex) {
5
+ return (typeof ex === 'object' &&
6
+ !!ex &&
7
+ 'code' in ex &&
8
+ (ex.code === 'MODULE_NOT_FOUND' || ex.code === 'ERR_MODULE_NOT_FOUND'));
9
+ }
10
+ exports.isModuleResolutionError = isModuleResolutionError;
11
+ //# sourceMappingURL=module.cjs.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "file": "module.cjs",
4
+ "sourceRoot": "",
5
+ "sources": [
6
+ "../../../src/error/module.ts"
7
+ ],
8
+ "names": [],
9
+ "mappings": ";;;AACA,SAAgB,uBAAuB,CAAC,EAAO;IAC9C,OAAO,CACN,OAAO,EAAE,KAAK,QAAQ;QACtB,CAAC,CAAC,EAAE;QACJ,MAAM,IAAI,EAAE;QACZ,CAAC,EAAE,CAAC,IAAI,KAAK,kBAAkB,IAAI,EAAE,CAAC,IAAI,KAAK,sBAAsB,CAAC,CACtE,CAAC;AACH,CAAC;AAPD,0DAOC"
10
+ }
@@ -6,5 +6,5 @@
6
6
  "../../../src/fs/exists.ts"
7
7
  ],
8
8
  "names": [],
9
- "mappings": ";;;AACA,0CAA+C;AAC/C,yBAAgC;AAAvB,gGAAA,UAAU,OAAA;AAEZ,KAAK,UAAU,MAAM,CAAC,IAAY;IACxC,IAAI;QACH,MAAM,IAAA,iBAAM,EAAC,IAAI,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;KACZ;IAAC,OAAO,CAAM,EAAE;QAChB,IAAI,gBAAgB,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACtC,MAAM,CAAC,CAAC;KACR;AACF,CAAC;AARD,wBAQC;AAEY,QAAA,gBAAgB,GAAoB,iBAAwB,CAAC;AAE1E,KAAK,UAAU,iBAAiB,CAAC,IAAY,EAAE,QAAwD;IACtG,IAAI;QACH,OAAO,MAAM,IAAA,mBAAQ,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KACtC;IAAC,OAAO,CAAM,EAAE;QAChB,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE;YACxB,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,EAAE,QAAQ,KAAK,QAAQ,EAAE;gBAC3E,OAAO,EAAE,CAAC;aACV;iBAAM;gBACN,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;aAC7B;SACD;QACD,MAAM,CAAC,CAAC;KACR;AACF,CAAC;AAED,SAAgB,gBAAgB,CAAC,CAAM;IACtC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC5B,CAAC;AAFD,4CAEC;AAED,SAAgB,aAAa,CAAC,CAAM;IACnC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC5B,CAAC;AAFD,sCAEC;AAED,SAAgB,WAAW,CAAC,CAAM;IACjC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;AACpD,CAAC;AAFD,kCAEC"
9
+ "mappings": ";;;AACA,0CAA+C;AAC/C,yBAAgC;AAAvB,gGAAA,UAAU,OAAA;AAEZ,KAAK,UAAU,MAAM,CAAC,IAAY;IACxC,IAAI;QACH,MAAM,IAAA,iBAAM,EAAC,IAAI,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;KACZ;IAAC,OAAO,CAAM,EAAE;QAChB,IAAI,gBAAgB,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACtC,MAAM,CAAC,CAAC;KACR;AACF,CAAC;AARD,wBAQC;AAEY,QAAA,gBAAgB,GAAoB,iBAAwB,CAAC;AAE1E,KAAK,UAAU,iBAAiB,CAAC,IAAY,EAAE,QAAwD;IACtG,IAAI;QACH,OAAO,MAAM,IAAA,mBAAQ,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KACtC;IAAC,OAAO,CAAM,EAAE;QAChB,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE;YACxB,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,EAAE,QAAQ,KAAK,QAAQ,EAAE;gBAC3E,OAAO,EAAE,CAAC;aACV;iBAAM;gBACN,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;aAC7B;SACD;QACD,MAAM,CAAC,CAAC;KACR;AACF,CAAC;AAGD,SAAgB,gBAAgB,CAAC,CAAM;IACtC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC5B,CAAC;AAFD,4CAEC;AAED,SAAgB,aAAa,CAAC,CAAM;IACnC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC5B,CAAC;AAFD,sCAEC;AAED,SAAgB,WAAW,CAAC,CAAM;IACjC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;AACpD,CAAC;AAFD,kCAEC"
10
10
  }
@@ -243,15 +243,17 @@ export declare interface IEnvironmentResult {
243
243
  name: string;
244
244
  }
245
245
 
246
- export declare function isExistsError(e: any): boolean;
246
+ export declare function isExistsError(e: any): e is NodeError<'EEXIST'>;
247
247
 
248
- export declare function isNotExistsError(e: any): boolean;
248
+ export declare function isModuleResolutionError(ex: any): ex is NodeError_2<'MODULE_NOT_FOUND' | 'ERR_MODULE_NOT_FOUND'>;
249
+
250
+ export declare function isNotExistsError(e: any): e is NodeError<'ENOENT'>;
249
251
 
250
252
  export declare interface ISpawnAdditionOptions {
251
253
  verbose?: boolean;
252
254
  }
253
255
 
254
- export declare function isTypeError(e: any): boolean;
256
+ export declare function isTypeError(e: any): e is NodeError<'ENOTDIR' | 'ENOTDIR'>;
255
257
 
256
258
  export declare interface JoinPathFunction {
257
259
  (from: string, to: string): string;
@@ -270,6 +272,14 @@ export declare function lrelative(from: string, to: string): string;
270
272
 
271
273
  export declare function md5(data: Buffer): string;
272
274
 
275
+ declare type NodeError<T> = {
276
+ code: T;
277
+ } & Error;
278
+
279
+ declare type NodeError_2<T> = {
280
+ code: T;
281
+ } & Error;
282
+
273
283
  export declare function nodeResolvePathArray(from: string, file?: string): string[];
274
284
 
275
285
  export declare const normalizePath: NormalizePathFunction;
@@ -278,6 +288,8 @@ export declare interface NormalizePathFunction {
278
288
  (path: string): string;
279
289
  }
280
290
 
291
+ declare type OnExit = (error?: Error) => Promise<any>;
292
+
281
293
  export declare function osTempDir(name?: string): string;
282
294
 
283
295
  export declare const PATH_SEPARATOR: string;
@@ -336,7 +348,7 @@ export declare function respawnInScope(mainFunc: Function): unknown | never;
336
348
  * setErrorLogRoot(require('path').dirname(__dirname));
337
349
  * ```
338
350
  **/
339
- export declare function runMain(main: AsyncMainFunction): void;
351
+ export declare function runMain(main: AsyncMainFunction, onExit?: OnExit): void;
340
352
 
341
353
  export declare function sha256(data: Buffer): string;
342
354
 
@@ -49,6 +49,9 @@ export { getNpmConfigValue } from "./environment/npmConfig.mjs";
49
49
  /* error/code.ts */
50
50
  // Identifiers
51
51
  export { ERRNO_LINUX } from "./error/code.mjs";
52
+ /* error/module.ts */
53
+ // Identifiers
54
+ export { isModuleResolutionError } from "./error/module.mjs";
52
55
  /* events/dumpEventEmitter.ts */
53
56
  // Identifiers
54
57
  export { dumpEventEmitterEmit } from "./events/dumpEventEmitter.mjs";
@@ -6,5 +6,5 @@
6
6
  "../../src/__create_index.generated.ts"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "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"
9
+ "mappings": "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"
10
10
  }
@@ -12,19 +12,36 @@ export class ExitError extends Error {
12
12
  * setErrorLogRoot(require('path').dirname(__dirname));
13
13
  * ```
14
14
  **/
15
- export function runMain(main) {
15
+ export function runMain(main, onExit) {
16
16
  Promise.resolve()
17
- .then(main)
17
+ .then(async () => {
18
+ try {
19
+ await main();
20
+ await onExit?.();
21
+ }
22
+ catch (e) {
23
+ await onExit?.(e);
24
+ throw e;
25
+ }
26
+ })
18
27
  .catch((e) => {
19
28
  if (e instanceof ExitError) {
20
- console.error(e.message);
21
- process.exit(1);
29
+ if (e.code) {
30
+ console.error('[exit] %s', e.message);
31
+ process.exitCode = e.code;
32
+ }
33
+ else {
34
+ process.exitCode = 0;
35
+ }
36
+ }
37
+ else {
38
+ prettyPrintError('main', e);
22
39
  }
23
- prettyPrintError('main', e);
24
- return e.code || 1;
40
+ if (!process.exitCode)
41
+ process.exitCode = 1;
25
42
  })
26
- .then((code) => {
27
- process.exit(code || 0);
43
+ .finally(() => {
44
+ process.exit();
28
45
  });
29
46
  }
30
47
  //# sourceMappingURL=asyncLoad.mjs.map
@@ -6,5 +6,5 @@
6
6
  "../../src/asyncLoad.ts"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAInD,MAAM,OAAO,SAAU,SAAQ,KAAK;IAGlB;IAFjB,YACC,OAAe,EACC,OAAe,CAAC;QAEhC,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,SAAI,GAAJ,IAAI,CAAY;IAGjC,CAAC;CACD;AAED;;;;;IAKI;AACJ,MAAM,UAAU,OAAO,CAAC,IAAuB;IAC9C,OAAO,CAAC,OAAO,EAAE;SACf,IAAI,CAAC,IAAI,CAAC;SACV,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACZ,IAAI,CAAC,YAAY,SAAS,EAAE;YAC3B,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAChB;QAED,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5B,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;IACpB,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACd,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC"
9
+ "mappings": "AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAInD,MAAM,OAAO,SAAU,SAAQ,KAAK;IAGlB;IAFjB,YACC,OAAe,EACC,OAAe,CAAC;QAEhC,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,SAAI,GAAJ,IAAI,CAAY;IAGjC,CAAC;CACD;AAID;;;;;IAKI;AACJ,MAAM,UAAU,OAAO,CAAC,IAAuB,EAAE,MAAe;IAC/D,OAAO,CAAC,OAAO,EAAE;SACf,IAAI,CAAC,KAAK,IAAI,EAAE;QAChB,IAAI;YACH,MAAM,IAAI,EAAE,CAAC;YACb,MAAM,MAAM,EAAE,EAAE,CAAC;SACjB;QAAC,OAAO,CAAM,EAAE;YAChB,MAAM,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAClB,MAAM,CAAC,CAAC;SACR;IACF,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACZ,IAAI,CAAC,YAAY,SAAS,EAAE;YAC3B,IAAI,CAAC,CAAC,IAAI,EAAE;gBACX,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;gBACtC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC;aAC1B;iBAAM;gBACN,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;aACrB;SACD;aAAM;YACN,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;SAC5B;QACD,IAAI,CAAC,OAAO,CAAC,QAAQ;YAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC7C,CAAC,CAAC;SACD,OAAO,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,IAAI,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC"
10
10
  }
@@ -0,0 +1,7 @@
1
+ export function isModuleResolutionError(ex) {
2
+ return (typeof ex === 'object' &&
3
+ !!ex &&
4
+ 'code' in ex &&
5
+ (ex.code === 'MODULE_NOT_FOUND' || ex.code === 'ERR_MODULE_NOT_FOUND'));
6
+ }
7
+ //# sourceMappingURL=module.mjs.map
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "file": "module.mjs",
4
+ "sourceRoot": "",
5
+ "sources": [
6
+ "../../../src/error/module.ts"
7
+ ],
8
+ "names": [],
9
+ "mappings": "AACA,MAAM,UAAU,uBAAuB,CAAC,EAAO;IAC9C,OAAO,CACN,OAAO,EAAE,KAAK,QAAQ;QACtB,CAAC,CAAC,EAAE;QACJ,MAAM,IAAI,EAAE;QACZ,CAAC,EAAE,CAAC,IAAI,KAAK,kBAAkB,IAAI,EAAE,CAAC,IAAI,KAAK,sBAAsB,CAAC,CACtE,CAAC;AACH,CAAC"
10
+ }
@@ -6,5 +6,5 @@
6
6
  "../../../src/fs/exists.ts"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "AACA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAY;IACxC,IAAI;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;KACZ;IAAC,OAAO,CAAM,EAAE;QAChB,IAAI,gBAAgB,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACtC,MAAM,CAAC,CAAC;KACR;AACF,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAoB,iBAAwB,CAAC;AAE1E,KAAK,UAAU,iBAAiB,CAAC,IAAY,EAAE,QAAwD;IACtG,IAAI;QACH,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KACtC;IAAC,OAAO,CAAM,EAAE;QAChB,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE;YACxB,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,EAAE,QAAQ,KAAK,QAAQ,EAAE;gBAC3E,OAAO,EAAE,CAAC;aACV;iBAAM;gBACN,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;aAC7B;SACD;QACD,MAAM,CAAC,CAAC;KACR;AACF,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,CAAM;IACtC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAM;IACnC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAM;IACjC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;AACpD,CAAC"
9
+ "mappings": "AACA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAY;IACxC,IAAI;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,IAAI,CAAC;KACZ;IAAC,OAAO,CAAM,EAAE;QAChB,IAAI,gBAAgB,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACtC,MAAM,CAAC,CAAC;KACR;AACF,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAoB,iBAAwB,CAAC;AAE1E,KAAK,UAAU,iBAAiB,CAAC,IAAY,EAAE,QAAwD;IACtG,IAAI;QACH,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KACtC;IAAC,OAAO,CAAM,EAAE;QAChB,IAAI,gBAAgB,CAAC,CAAC,CAAC,EAAE;YACxB,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,EAAE,QAAQ,KAAK,QAAQ,EAAE;gBAC3E,OAAO,EAAE,CAAC;aACV;iBAAM;gBACN,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;aAC7B;SACD;QACD,MAAM,CAAC,CAAC;KACR;AACF,CAAC;AAGD,MAAM,UAAU,gBAAgB,CAAC,CAAM;IACtC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,CAAM;IACnC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,CAAM;IACjC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC;AACpD,CAAC"
10
10
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@idlebox/node",
3
3
  "type": "module",
4
- "version": "1.3.4",
4
+ "version": "1.3.6",
5
5
  "license": "MIT",
6
6
  "main": "./lib/cjs/__create_index.generated.cjs",
7
7
  "module": "./lib/esm/__create_index.generated.mjs",
package/src/asyncLoad.ts CHANGED
@@ -11,25 +11,39 @@ export class ExitError extends Error {
11
11
  }
12
12
  }
13
13
 
14
+ type OnExit = (error?: Error) => Promise<any>;
15
+
14
16
  /**
15
17
  * should do this before:
16
18
  * ```
17
19
  * setErrorLogRoot(require('path').dirname(__dirname));
18
20
  * ```
19
21
  **/
20
- export function runMain(main: AsyncMainFunction) {
22
+ export function runMain(main: AsyncMainFunction, onExit?: OnExit) {
21
23
  Promise.resolve()
22
- .then(main)
24
+ .then(async () => {
25
+ try {
26
+ await main();
27
+ await onExit?.();
28
+ } catch (e: any) {
29
+ await onExit?.(e);
30
+ throw e;
31
+ }
32
+ })
23
33
  .catch((e) => {
24
34
  if (e instanceof ExitError) {
25
- console.error(e.message);
26
- process.exit(1);
35
+ if (e.code) {
36
+ console.error('[exit] %s', e.message);
37
+ process.exitCode = e.code;
38
+ } else {
39
+ process.exitCode = 0;
40
+ }
41
+ } else {
42
+ prettyPrintError('main', e);
27
43
  }
28
-
29
- prettyPrintError('main', e);
30
- return e.code || 1;
44
+ if (!process.exitCode) process.exitCode = 1;
31
45
  })
32
- .then((code) => {
33
- process.exit(code || 0);
46
+ .finally(() => {
47
+ process.exit();
34
48
  });
35
49
  }
@@ -0,0 +1,9 @@
1
+ type NodeError<T> = { code: T } & Error;
2
+ export function isModuleResolutionError(ex: any): ex is NodeError<'MODULE_NOT_FOUND' | 'ERR_MODULE_NOT_FOUND'> {
3
+ return (
4
+ typeof ex === 'object' &&
5
+ !!ex &&
6
+ 'code' in ex &&
7
+ (ex.code === 'MODULE_NOT_FOUND' || ex.code === 'ERR_MODULE_NOT_FOUND')
8
+ );
9
+ }
package/src/fs/exists.ts CHANGED
@@ -29,14 +29,15 @@ async function _readFileIfExists(file: string, encoding?: NodeJS.BufferEncoding
29
29
  }
30
30
  }
31
31
 
32
- export function isNotExistsError(e: any) {
32
+ type NodeError<T> = { code: T } & Error;
33
+ export function isNotExistsError(e: any): e is NodeError<'ENOENT'> {
33
34
  return e.code === 'ENOENT';
34
35
  }
35
36
 
36
- export function isExistsError(e: any) {
37
+ export function isExistsError(e: any): e is NodeError<'EEXIST'> {
37
38
  return e.code === 'EEXIST';
38
39
  }
39
40
 
40
- export function isTypeError(e: any) {
41
+ export function isTypeError(e: any): e is NodeError<'ENOTDIR' | 'ENOTDIR'> {
41
42
  return e.code === 'EISDIR' || e.code === 'ENOTDIR';
42
43
  }