@idlebox/errors 0.1.11 → 0.1.13
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/autoindex.d.ts +3 -0
- package/lib/autoindex.d.ts.map +1 -1
- package/lib/autoindex.js +2 -0
- package/lib/autoindex.js.map +1 -1
- package/lib/common/application.d.ts +3 -1
- package/lib/common/application.d.ts.map +1 -1
- package/lib/common/application.js +7 -1
- package/lib/common/application.js.map +1 -1
- package/lib/common/base.d.ts +17 -5
- package/lib/common/base.d.ts.map +1 -1
- package/lib/common/base.js +31 -2
- package/lib/common/base.js.map +1 -1
- package/package.json +4 -4
- package/src/autoindex.ts +3 -0
- package/src/common/application.ts +9 -1
- package/src/common/base.ts +41 -6
- package/src/tsconfig.json +1 -1
package/lib/autoindex.d.ts
CHANGED
|
@@ -13,6 +13,9 @@ export { ExitCode } from "./codes/wellknown-exit-codes.js";
|
|
|
13
13
|
export { Exit } from "./common/application.js";
|
|
14
14
|
export { InterruptError } from "./common/application.js";
|
|
15
15
|
export { UsageError } from "./common/application.js";
|
|
16
|
+
export { humanReadable } from "./common/base.js";
|
|
17
|
+
export type { IHumanReadable } from "./common/base.js";
|
|
18
|
+
export { isHumanReadableError } from "./common/base.js";
|
|
16
19
|
export { NotError } from "./common/base.js";
|
|
17
20
|
export { ErrorWithCode } from "./common/base.js";
|
|
18
21
|
export { CanceledError } from "./common/base.js";
|
package/lib/autoindex.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autoindex.d.ts","sourceRoot":"","sources":["../src/autoindex.ts"],"names":[],"mappings":"AAAA;;;;;;;gFAOgF;AAS/E,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG/D,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAG3D,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGrD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGpD,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"autoindex.d.ts","sourceRoot":"","sources":["../src/autoindex.ts"],"names":[],"mappings":"AAAA;;;;;;;gFAOgF;AAS/E,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG/D,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAG3D,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGrD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGpD,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC"}
|
package/lib/autoindex.js
CHANGED
|
@@ -28,6 +28,8 @@ export { InterruptError } from "./common/application.js";
|
|
|
28
28
|
export { UsageError } from "./common/application.js";
|
|
29
29
|
/* common/base.ts */
|
|
30
30
|
// Identifiers
|
|
31
|
+
export { humanReadable } from "./common/base.js";
|
|
32
|
+
export { isHumanReadableError } from "./common/base.js";
|
|
31
33
|
export { NotError } from "./common/base.js";
|
|
32
34
|
export { ErrorWithCode } from "./common/base.js";
|
|
33
35
|
export { CanceledError } from "./common/base.js";
|
package/lib/autoindex.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autoindex.js","sourceRoot":"","sources":["../src/autoindex.ts"],"names":[],"mappings":"AAAA;;;;;;;gFAOgF;AAChF,8BAA8B;AAC9B,wCAAwC;AACxC,0CAA0C;AAC1C,oBAAoB;AACpB,aAAa;AAEb,gCAAgC;AAC/B,cAAc;AACd,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC/D,+BAA+B;AAC9B,cAAc;AACd,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAChE,mCAAmC;AAClC,cAAc;AACd,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC5D,2BAA2B;AAC1B,cAAc;AACd,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACtD,oBAAoB;AACnB,cAAc;AACd,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACjD,2BAA2B;AAC1B,cAAc;AACd,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAIpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAClD,gCAAgC;AAC/B,cAAc;AACd,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"autoindex.js","sourceRoot":"","sources":["../src/autoindex.ts"],"names":[],"mappings":"AAAA;;;;;;;gFAOgF;AAChF,8BAA8B;AAC9B,wCAAwC;AACxC,0CAA0C;AAC1C,oBAAoB;AACpB,aAAa;AAEb,gCAAgC;AAC/B,cAAc;AACd,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC/D,+BAA+B;AAC9B,cAAc;AACd,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAChE,mCAAmC;AAClC,cAAc;AACd,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC5D,2BAA2B;AAC1B,cAAc;AACd,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACtD,oBAAoB;AACnB,cAAc;AACd,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACjD,2BAA2B;AAC1B,cAAc;AACd,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAIpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAClD,gCAAgC;AAC/B,cAAc;AACd,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ErrorWithCode } from './base.js';
|
|
1
|
+
import { ErrorWithCode, humanReadable } from './base.js';
|
|
2
2
|
/**
|
|
3
3
|
* 程序因为正常运行结束而退出
|
|
4
4
|
* catch到此错误时应直接重新抛出,不应做其他处理
|
|
@@ -13,11 +13,13 @@ export declare class Exit extends ErrorWithCode {
|
|
|
13
13
|
export declare class InterruptError extends ErrorWithCode {
|
|
14
14
|
readonly signal: NodeJS.Signals;
|
|
15
15
|
constructor(signal: NodeJS.Signals, boundary?: CallableFunction);
|
|
16
|
+
[humanReadable](): string;
|
|
16
17
|
}
|
|
17
18
|
/**
|
|
18
19
|
* 由于错误的参数、配置导致错误
|
|
19
20
|
*/
|
|
20
21
|
export declare class UsageError extends ErrorWithCode {
|
|
21
22
|
constructor(message: string, boundary?: CallableFunction);
|
|
23
|
+
[humanReadable](): string;
|
|
22
24
|
}
|
|
23
25
|
//# sourceMappingURL=application.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/common/application.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/common/application.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEzD;;;GAGG;AACH,qBAAa,IAAK,SAAQ,aAAa;gBAC1B,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,gBAAgB;CAGrD;AAED;;;GAGG;AACH,qBAAa,cAAe,SAAQ,aAAa;aAE/B,MAAM,EAAE,MAAM,CAAC,OAAO;gBAAtB,MAAM,EAAE,MAAM,CAAC,OAAO,EACtC,QAAQ,CAAC,EAAE,gBAAgB;IAKnB,CAAC,aAAa,CAAC;CAGxB;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,aAAa;gBAChC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,gBAAgB;IAI/C,CAAC,aAAa,CAAC;CAGxB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ExitCode } from '../codes/wellknown-exit-codes.js';
|
|
2
|
-
import { ErrorWithCode } from './base.js';
|
|
2
|
+
import { ErrorWithCode, humanReadable } from './base.js';
|
|
3
3
|
/**
|
|
4
4
|
* 程序因为正常运行结束而退出
|
|
5
5
|
* catch到此错误时应直接重新抛出,不应做其他处理
|
|
@@ -19,6 +19,9 @@ export class InterruptError extends ErrorWithCode {
|
|
|
19
19
|
super(`interrupt by signal ${signal}`, ExitCode.INTERRUPT, boundary);
|
|
20
20
|
this.signal = signal;
|
|
21
21
|
}
|
|
22
|
+
[humanReadable]() {
|
|
23
|
+
return `程序被信号 ${this.signal} 异常中断`;
|
|
24
|
+
}
|
|
22
25
|
}
|
|
23
26
|
/**
|
|
24
27
|
* 由于错误的参数、配置导致错误
|
|
@@ -27,5 +30,8 @@ export class UsageError extends ErrorWithCode {
|
|
|
27
30
|
constructor(message, boundary) {
|
|
28
31
|
super(message, ExitCode.USAGE, boundary);
|
|
29
32
|
}
|
|
33
|
+
[humanReadable]() {
|
|
34
|
+
return `参数错误: ${this.message}\n - 此为非程序性错误,使用 --help 查看帮助`;
|
|
35
|
+
}
|
|
30
36
|
}
|
|
31
37
|
//# sourceMappingURL=application.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../src/common/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"application.js","sourceRoot":"","sources":["../../src/common/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEzD;;;GAGG;AACH,MAAM,OAAO,IAAK,SAAQ,aAAa;IACtC,YAAY,IAAY,EAAE,QAA2B;QACpD,KAAK,CAAC,0BAA0B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;CACD;AAED;;;GAGG;AACH,MAAM,OAAO,cAAe,SAAQ,aAAa;IAE/B;IADjB,YACiB,MAAsB,EACtC,QAA2B;QAE3B,KAAK,CAAC,uBAAuB,MAAM,EAAE,EAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAHrD,WAAM,GAAN,MAAM,CAAgB;IAIvC,CAAC;IAEQ,CAAC,aAAa,CAAC;QACvB,OAAO,SAAS,IAAI,CAAC,MAAM,OAAO,CAAC;IACpC,CAAC;CACD;AAED;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,aAAa;IAC5C,YAAY,OAAe,EAAE,QAA2B;QACvD,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAEQ,CAAC,aAAa,CAAC;QACvB,OAAO,SAAS,IAAI,CAAC,OAAO,+BAA+B,CAAC;IAC7D,CAAC;CACD"}
|
package/lib/common/base.d.ts
CHANGED
|
@@ -1,30 +1,42 @@
|
|
|
1
|
-
export declare
|
|
1
|
+
export declare const humanReadable: unique symbol;
|
|
2
|
+
export interface IHumanReadable {
|
|
3
|
+
[humanReadable](): string;
|
|
4
|
+
}
|
|
5
|
+
export declare function isHumanReadableError(error: unknown): error is IHumanReadable;
|
|
6
|
+
export declare class NotError extends Error implements IHumanReadable {
|
|
2
7
|
constructor(extra_message?: string);
|
|
3
8
|
get stack(): string;
|
|
9
|
+
[humanReadable](): string;
|
|
4
10
|
}
|
|
5
11
|
/**
|
|
6
12
|
* 应用程序退出
|
|
7
13
|
* 此错误通常不需要输出到日志
|
|
8
14
|
* @abstract
|
|
9
15
|
*/
|
|
10
|
-
export declare class ErrorWithCode extends Error {
|
|
16
|
+
export declare class ErrorWithCode extends Error implements IHumanReadable {
|
|
11
17
|
readonly code: number;
|
|
12
18
|
constructor(message: string, code: number, boundary?: CallableFunction);
|
|
19
|
+
[humanReadable](): string;
|
|
13
20
|
}
|
|
14
21
|
/**
|
|
15
22
|
* Error when something.cancel() is called
|
|
16
23
|
* @public
|
|
17
24
|
*/
|
|
18
|
-
export declare class CanceledError extends Error {
|
|
25
|
+
export declare class CanceledError extends Error implements IHumanReadable {
|
|
19
26
|
constructor();
|
|
20
27
|
static is(e: unknown): e is CanceledError;
|
|
28
|
+
[humanReadable](): string;
|
|
21
29
|
}
|
|
22
30
|
/**
|
|
23
31
|
* Error when something timeout
|
|
24
32
|
* @public
|
|
25
33
|
*/
|
|
26
|
-
export declare class TimeoutError extends Error {
|
|
27
|
-
|
|
34
|
+
export declare class TimeoutError extends Error implements IHumanReadable {
|
|
35
|
+
private readonly ms;
|
|
36
|
+
private readonly why;
|
|
37
|
+
private readonly what?;
|
|
38
|
+
constructor(ms: number, why?: string, what?: string | undefined);
|
|
28
39
|
static is(error: unknown): error is TimeoutError;
|
|
40
|
+
[humanReadable](): string;
|
|
29
41
|
}
|
|
30
42
|
//# sourceMappingURL=base.d.ts.map
|
package/lib/common/base.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/common/base.ts"],"names":[],"mappings":"AAIA,qBAAa,QAAS,SAAQ,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/common/base.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa,eAA0B,CAAC;AACrD,MAAM,WAAW,cAAc;IAC9B,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC;CAC1B;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAE5E;AAED,qBAAa,QAAS,SAAQ,KAAM,YAAW,cAAc;gBAChD,aAAa,GAAE,MAAW;IAGtC,IAAa,KAAK,WAEjB;IAED,CAAC,aAAa,CAAC;CAGf;AAED;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,KAAM,YAAW,cAAc;aAGhD,IAAI,EAAE,MAAM;gBAD5B,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,MAAM,EAC5B,QAAQ,CAAC,EAAE,gBAAgB;IAY5B,CAAC,aAAa,CAAC;CASf;AAED;;;GAGG;AACH,qBAAa,aAAc,SAAQ,KAAM,YAAW,cAAc;;IAKjE,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,aAAa;IAIzC,CAAC,aAAa,CAAC;CAGf;AAED;;;GAGG;AACH,qBAAa,YAAa,SAAQ,KAAM,YAAW,cAAc;IAE/D,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAFL,EAAE,EAAE,MAAM,EACV,GAAG,SAAgB,EACnB,IAAI,CAAC,EAAE,MAAM,YAAA;IAK/B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY;IAIhD,CAAC,aAAa,CAAC;CAGf"}
|
package/lib/common/base.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
function noop() { }
|
|
2
2
|
const replaceStackTrace = Error.captureStackTrace ?? noop;
|
|
3
|
+
export const humanReadable = Symbol('humanReadable');
|
|
4
|
+
export function isHumanReadableError(error) {
|
|
5
|
+
return error instanceof Object && humanReadable in error;
|
|
6
|
+
}
|
|
3
7
|
export class NotError extends Error {
|
|
4
8
|
constructor(extra_message = '') {
|
|
5
9
|
super(`你不应该看到此消息: ${extra_message}`);
|
|
@@ -7,6 +11,9 @@ export class NotError extends Error {
|
|
|
7
11
|
get stack() {
|
|
8
12
|
return this.message;
|
|
9
13
|
}
|
|
14
|
+
[humanReadable]() {
|
|
15
|
+
return '你不应该看到此消息。你无需尝试处理该错误,请联系开发者。';
|
|
16
|
+
}
|
|
10
17
|
}
|
|
11
18
|
/**
|
|
12
19
|
* 应用程序退出
|
|
@@ -24,6 +31,16 @@ export class ErrorWithCode extends Error {
|
|
|
24
31
|
this.name = this.constructor.name;
|
|
25
32
|
replaceStackTrace(this, boundary ?? this.constructor);
|
|
26
33
|
}
|
|
34
|
+
[humanReadable]() {
|
|
35
|
+
let msg;
|
|
36
|
+
if (this.code === 0) {
|
|
37
|
+
msg = '程序正常结束';
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
msg = `程序以非0状态正常结束,状态码:${this.code}`;
|
|
41
|
+
}
|
|
42
|
+
return `${msg}\n - 但是你不应该看到此信息,开发者忘记处理此种情况`;
|
|
43
|
+
}
|
|
27
44
|
}
|
|
28
45
|
/**
|
|
29
46
|
* Error when something.cancel() is called
|
|
@@ -36,17 +53,29 @@ export class CanceledError extends Error {
|
|
|
36
53
|
static is(e) {
|
|
37
54
|
return e instanceof CanceledError;
|
|
38
55
|
}
|
|
56
|
+
[humanReadable]() {
|
|
57
|
+
return '操作已应用户要求而取消';
|
|
58
|
+
}
|
|
39
59
|
}
|
|
40
60
|
/**
|
|
41
61
|
* Error when something timeout
|
|
42
62
|
* @public
|
|
43
63
|
*/
|
|
44
64
|
export class TimeoutError extends Error {
|
|
45
|
-
|
|
46
|
-
|
|
65
|
+
ms;
|
|
66
|
+
why;
|
|
67
|
+
what;
|
|
68
|
+
constructor(ms, why = 'no response', what) {
|
|
69
|
+
super(`Timeout: ${why} in ${ms}ms${what ? ` (when ${what})` : ''}`);
|
|
70
|
+
this.ms = ms;
|
|
71
|
+
this.why = why;
|
|
72
|
+
this.what = what;
|
|
47
73
|
}
|
|
48
74
|
static is(error) {
|
|
49
75
|
return error instanceof TimeoutError;
|
|
50
76
|
}
|
|
77
|
+
[humanReadable]() {
|
|
78
|
+
return `操作超时: ${this.what ? this.what : '操作没有说明'}\n - 时长: ${this.ms}ms\n - 原因: ${this.why}`;
|
|
79
|
+
}
|
|
51
80
|
}
|
|
52
81
|
//# sourceMappingURL=base.js.map
|
package/lib/common/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/common/base.ts"],"names":[],"mappings":"AAAA,SAAS,IAAI,KAAI,CAAC;AAElB,MAAM,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC;AAE1D,MAAM,OAAO,QAAS,SAAQ,KAAK;IAClC,YAAY,gBAAwB,EAAE;QACrC,KAAK,CAAC,cAAc,aAAa,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,IAAa,KAAK;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;CACD;AAED;;;;GAIG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IAGtB;IAFjB,YACC,OAAe,EACC,IAAY,EAC5B,QAA2B;QAE3B,MAAM,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;QAClC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QALC,SAAI,GAAJ,IAAI,CAAQ;QAM5B,KAAK,CAAC,eAAe,GAAG,eAAe,CAAC;QAExC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAElC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;IACvD,CAAC;CACD;AAED;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IACvC;QACC,KAAK,CAAC,UAAU,CAAC,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,EAAE,CAAC,CAAU;QACnB,OAAO,CAAC,YAAY,aAAa,CAAC;IACnC,CAAC;CACD;AAED;;;GAGG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/common/base.ts"],"names":[],"mappings":"AAAA,SAAS,IAAI,KAAI,CAAC;AAElB,MAAM,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC;AAE1D,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAKrD,MAAM,UAAU,oBAAoB,CAAC,KAAc;IAClD,OAAO,KAAK,YAAY,MAAM,IAAI,aAAa,IAAI,KAAK,CAAC;AAC1D,CAAC;AAED,MAAM,OAAO,QAAS,SAAQ,KAAK;IAClC,YAAY,gBAAwB,EAAE;QACrC,KAAK,CAAC,cAAc,aAAa,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,IAAa,KAAK;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC;IACrB,CAAC;IAED,CAAC,aAAa,CAAC;QACd,OAAO,8BAA8B,CAAC;IACvC,CAAC;CACD;AAED;;;;GAIG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IAGtB;IAFjB,YACC,OAAe,EACC,IAAY,EAC5B,QAA2B;QAE3B,MAAM,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;QAClC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC;QALC,SAAI,GAAJ,IAAI,CAAQ;QAM5B,KAAK,CAAC,eAAe,GAAG,eAAe,CAAC;QAExC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAElC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;IACvD,CAAC;IAED,CAAC,aAAa,CAAC;QACd,IAAI,GAAW,CAAC;QAChB,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACrB,GAAG,GAAG,QAAQ,CAAC;QAChB,CAAC;aAAM,CAAC;YACP,GAAG,GAAG,mBAAmB,IAAI,CAAC,IAAI,EAAE,CAAC;QACtC,CAAC;QACD,OAAO,GAAG,GAAG,+BAA+B,CAAC;IAC9C,CAAC;CACD;AAED;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IACvC;QACC,KAAK,CAAC,UAAU,CAAC,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,EAAE,CAAC,CAAU;QACnB,OAAO,CAAC,YAAY,aAAa,CAAC;IACnC,CAAC;IAED,CAAC,aAAa,CAAC;QACd,OAAO,aAAa,CAAC;IACtB,CAAC;CACD;AAED;;;GAGG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IAEpB;IACA;IACA;IAHlB,YACkB,EAAU,EACV,MAAM,aAAa,EACnB,IAAa;QAE9B,KAAK,CAAC,YAAY,GAAG,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAJnD,OAAE,GAAF,EAAE,CAAQ;QACV,QAAG,GAAH,GAAG,CAAgB;QACnB,SAAI,GAAJ,IAAI,CAAS;IAG/B,CAAC;IAED,MAAM,CAAC,EAAE,CAAC,KAAc;QACvB,OAAO,KAAK,YAAY,YAAY,CAAC;IACtC,CAAC;IAED,CAAC,aAAa,CAAC;QACd,OAAO,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,aAAa,IAAI,CAAC,EAAE,eAAe,IAAI,CAAC,GAAG,EAAE,CAAC;IAC/F,CAAC;CACD"}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@idlebox/errors",
|
|
3
3
|
"description": "A collection of my errors.",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "0.1.
|
|
5
|
+
"version": "0.1.13",
|
|
6
6
|
"exports": {
|
|
7
7
|
".": {
|
|
8
8
|
"source": "./src/autoindex.ts",
|
|
@@ -12,11 +12,11 @@
|
|
|
12
12
|
},
|
|
13
13
|
"sideEffects": false,
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@idlebox/node-error-codes": "^0.1.
|
|
15
|
+
"@idlebox/node-error-codes": "^0.1.13"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
|
-
"@
|
|
19
|
-
"@
|
|
18
|
+
"@mpis/run": "^0.0.17",
|
|
19
|
+
"@build-script/baseline-rig": "latest"
|
|
20
20
|
},
|
|
21
21
|
"license": "MIT",
|
|
22
22
|
"author": "GongT <admin@gongt.me>",
|
package/src/autoindex.ts
CHANGED
|
@@ -29,6 +29,9 @@
|
|
|
29
29
|
export { UsageError } from "./common/application.js";
|
|
30
30
|
/* common/base.ts */
|
|
31
31
|
// Identifiers
|
|
32
|
+
export { humanReadable } from "./common/base.js";
|
|
33
|
+
export type { IHumanReadable } from "./common/base.js";
|
|
34
|
+
export { isHumanReadableError } from "./common/base.js";
|
|
32
35
|
export { NotError } from "./common/base.js";
|
|
33
36
|
export { ErrorWithCode } from "./common/base.js";
|
|
34
37
|
export { CanceledError } from "./common/base.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ExitCode } from '../codes/wellknown-exit-codes.js';
|
|
2
|
-
import { ErrorWithCode } from './base.js';
|
|
2
|
+
import { ErrorWithCode, humanReadable } from './base.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* 程序因为正常运行结束而退出
|
|
@@ -22,6 +22,10 @@ export class InterruptError extends ErrorWithCode {
|
|
|
22
22
|
) {
|
|
23
23
|
super(`interrupt by signal ${signal}`, ExitCode.INTERRUPT, boundary);
|
|
24
24
|
}
|
|
25
|
+
|
|
26
|
+
override [humanReadable]() {
|
|
27
|
+
return `程序被信号 ${this.signal} 异常中断`;
|
|
28
|
+
}
|
|
25
29
|
}
|
|
26
30
|
|
|
27
31
|
/**
|
|
@@ -31,4 +35,8 @@ export class UsageError extends ErrorWithCode {
|
|
|
31
35
|
constructor(message: string, boundary?: CallableFunction) {
|
|
32
36
|
super(message, ExitCode.USAGE, boundary);
|
|
33
37
|
}
|
|
38
|
+
|
|
39
|
+
override [humanReadable]() {
|
|
40
|
+
return `参数错误: ${this.message}\n - 此为非程序性错误,使用 --help 查看帮助`;
|
|
41
|
+
}
|
|
34
42
|
}
|
package/src/common/base.ts
CHANGED
|
@@ -2,13 +2,26 @@ function noop() {}
|
|
|
2
2
|
|
|
3
3
|
const replaceStackTrace = Error.captureStackTrace ?? noop;
|
|
4
4
|
|
|
5
|
-
export
|
|
5
|
+
export const humanReadable = Symbol('humanReadable');
|
|
6
|
+
export interface IHumanReadable {
|
|
7
|
+
[humanReadable](): string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export function isHumanReadableError(error: unknown): error is IHumanReadable {
|
|
11
|
+
return error instanceof Object && humanReadable in error;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export class NotError extends Error implements IHumanReadable {
|
|
6
15
|
constructor(extra_message: string = '') {
|
|
7
16
|
super(`你不应该看到此消息: ${extra_message}`);
|
|
8
17
|
}
|
|
9
18
|
override get stack() {
|
|
10
19
|
return this.message;
|
|
11
20
|
}
|
|
21
|
+
|
|
22
|
+
[humanReadable]() {
|
|
23
|
+
return '你不应该看到此消息。你无需尝试处理该错误,请联系开发者。';
|
|
24
|
+
}
|
|
12
25
|
}
|
|
13
26
|
|
|
14
27
|
/**
|
|
@@ -16,7 +29,7 @@ export class NotError extends Error {
|
|
|
16
29
|
* 此错误通常不需要输出到日志
|
|
17
30
|
* @abstract
|
|
18
31
|
*/
|
|
19
|
-
export class ErrorWithCode extends Error {
|
|
32
|
+
export class ErrorWithCode extends Error implements IHumanReadable {
|
|
20
33
|
constructor(
|
|
21
34
|
message: string,
|
|
22
35
|
public readonly code: number,
|
|
@@ -31,13 +44,23 @@ export class ErrorWithCode extends Error {
|
|
|
31
44
|
|
|
32
45
|
replaceStackTrace(this, boundary ?? this.constructor);
|
|
33
46
|
}
|
|
47
|
+
|
|
48
|
+
[humanReadable]() {
|
|
49
|
+
let msg: string;
|
|
50
|
+
if (this.code === 0) {
|
|
51
|
+
msg = '程序正常结束';
|
|
52
|
+
} else {
|
|
53
|
+
msg = `程序以非0状态正常结束,状态码:${this.code}`;
|
|
54
|
+
}
|
|
55
|
+
return `${msg}\n - 但是你不应该看到此信息,开发者忘记处理此种情况`;
|
|
56
|
+
}
|
|
34
57
|
}
|
|
35
58
|
|
|
36
59
|
/**
|
|
37
60
|
* Error when something.cancel() is called
|
|
38
61
|
* @public
|
|
39
62
|
*/
|
|
40
|
-
export class CanceledError extends Error {
|
|
63
|
+
export class CanceledError extends Error implements IHumanReadable {
|
|
41
64
|
constructor() {
|
|
42
65
|
super('Canceled');
|
|
43
66
|
}
|
|
@@ -45,18 +68,30 @@ export class CanceledError extends Error {
|
|
|
45
68
|
static is(e: unknown): e is CanceledError {
|
|
46
69
|
return e instanceof CanceledError;
|
|
47
70
|
}
|
|
71
|
+
|
|
72
|
+
[humanReadable]() {
|
|
73
|
+
return '操作已应用户要求而取消';
|
|
74
|
+
}
|
|
48
75
|
}
|
|
49
76
|
|
|
50
77
|
/**
|
|
51
78
|
* Error when something timeout
|
|
52
79
|
* @public
|
|
53
80
|
*/
|
|
54
|
-
export class TimeoutError extends Error {
|
|
55
|
-
constructor(
|
|
56
|
-
|
|
81
|
+
export class TimeoutError extends Error implements IHumanReadable {
|
|
82
|
+
constructor(
|
|
83
|
+
private readonly ms: number,
|
|
84
|
+
private readonly why = 'no response',
|
|
85
|
+
private readonly what?: string,
|
|
86
|
+
) {
|
|
87
|
+
super(`Timeout: ${why} in ${ms}ms${what ? ` (when ${what})` : ''}`);
|
|
57
88
|
}
|
|
58
89
|
|
|
59
90
|
static is(error: unknown): error is TimeoutError {
|
|
60
91
|
return error instanceof TimeoutError;
|
|
61
92
|
}
|
|
93
|
+
|
|
94
|
+
[humanReadable]() {
|
|
95
|
+
return `操作超时: ${this.what ? this.what : '操作没有说明'}\n - 时长: ${this.ms}ms\n - 原因: ${this.why}`;
|
|
96
|
+
}
|
|
62
97
|
}
|
package/src/tsconfig.json
CHANGED