@idlebox/errors 0.1.10 → 0.1.12
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/LICENSE +4 -16
- 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/LICENSE
CHANGED
|
@@ -1,21 +1,9 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c)
|
|
3
|
+
Copyright (c) 2026 GongT<admin@gongt.me>
|
|
4
4
|
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
11
6
|
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
7
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
14
8
|
|
|
15
|
-
THE SOFTWARE IS PROVIDED
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
9
|
+
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
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.12",
|
|
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.12"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
|
-
"@build-script/
|
|
19
|
-
"@mpis/run": "^0.0.
|
|
18
|
+
"@build-script/baseline-rig": "latest",
|
|
19
|
+
"@mpis/run": "^0.0.17"
|
|
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