@idlebox/common 1.5.18 → 1.5.20
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 +5 -2
- package/lib/autoindex.d.ts.map +1 -1
- package/lib/autoindex.js +7 -5
- package/lib/autoindex.js.map +1 -1
- package/lib/debugging/inspect.d.ts.map +1 -1
- package/lib/debugging/inspect.js +26 -3
- package/lib/debugging/inspect.js.map +1 -1
- package/lib/error/cause.d.ts +3 -0
- package/lib/error/cause.d.ts.map +1 -0
- package/lib/error/cause.js +22 -0
- package/lib/error/cause.js.map +1 -0
- package/lib/error/get-frame.d.ts +1 -1
- package/lib/error/get-frame.d.ts.map +1 -1
- package/lib/error/get-frame.js +11 -4
- package/lib/error/get-frame.js.map +1 -1
- package/lib/function/callback-list.js +2 -2
- package/lib/function/callback-list.js.map +1 -1
- package/lib/lifecycle/dispose/disposable.d.ts +6 -5
- package/lib/lifecycle/dispose/disposable.d.ts.map +1 -1
- package/lib/lifecycle/dispose/disposable.js +39 -33
- package/lib/lifecycle/dispose/disposable.js.map +1 -1
- package/lib/lifecycle/dispose/disposedError.d.ts +6 -6
- package/lib/lifecycle/dispose/disposedError.d.ts.map +1 -1
- package/lib/lifecycle/dispose/disposedError.js +32 -25
- package/lib/lifecycle/dispose/disposedError.js.map +1 -1
- package/lib/lifecycle/dispose/sync-disposable.d.ts.map +1 -1
- package/lib/lifecycle/dispose/sync-disposable.js +3 -2
- package/lib/lifecycle/dispose/sync-disposable.js.map +1 -1
- package/lib/log/logger.js +1 -1
- package/lib/log/logger.js.map +1 -1
- package/lib/platform/os.d.ts +1 -0
- package/lib/platform/os.d.ts.map +1 -1
- package/lib/platform/os.js +1 -0
- package/lib/platform/os.js.map +1 -1
- package/lib/typing-helper/deep.writable.d.ts +3 -0
- package/lib/typing-helper/deep.writable.d.ts.map +1 -1
- package/package.json +5 -5
- package/src/autoindex.ts +9 -6
- package/src/debugging/inspect.ts +25 -3
- package/src/error/cause.ts +21 -0
- package/src/error/get-frame.ts +10 -4
- package/src/function/callback-list.ts +2 -2
- package/src/lifecycle/dispose/disposable.ts +45 -39
- package/src/lifecycle/dispose/disposedError.ts +33 -26
- package/src/lifecycle/dispose/sync-disposable.ts +3 -2
- package/src/log/logger.ts +1 -1
- package/src/platform/os.ts +2 -0
- package/src/typing-helper/deep.writable.ts +10 -0
- package/lib/error/known.d.ts +0 -14
- package/lib/error/known.d.ts.map +0 -1
- package/lib/error/known.js +0 -34
- package/lib/error/known.js.map +0 -1
- package/src/error/known.ts +0 -40
|
@@ -1,49 +1,56 @@
|
|
|
1
|
+
import { ErrorWithCode, ExitCode } from '@idlebox/errors';
|
|
1
2
|
import { tryInspect } from '../../debugging/inspect.js';
|
|
2
|
-
import { getErrorFrame } from '../../error/get-frame.js';
|
|
3
3
|
import { prettyFormatError } from '../../error/pretty.nodejs.js';
|
|
4
|
-
import {
|
|
4
|
+
import { isV8 } from '../../platform/os.js';
|
|
5
5
|
import { dispose_name } from './debug.js';
|
|
6
|
-
export class DisposedError extends
|
|
6
|
+
export class DisposedError extends ErrorWithCode {
|
|
7
7
|
previous;
|
|
8
|
-
constructor(message = 'Object has been disposed', previous) {
|
|
9
|
-
super(message, { cause: previous });
|
|
8
|
+
constructor(message = 'Object has been disposed', previous, boundary) {
|
|
9
|
+
super(message, ExitCode.DUPLICATE, { cause: previous, boundary });
|
|
10
10
|
this.previous = previous;
|
|
11
|
-
this.name = 'DisposedError';
|
|
12
11
|
}
|
|
13
12
|
}
|
|
13
|
+
const lineStart = /^/gm;
|
|
14
14
|
/**
|
|
15
15
|
* Error when call dispose() twice
|
|
16
16
|
*/
|
|
17
|
-
export class
|
|
17
|
+
export class DuplicateDisposedError extends DisposedError {
|
|
18
18
|
object;
|
|
19
|
-
inspectString;
|
|
20
19
|
constructor(object, previous) {
|
|
21
20
|
const old = Error.stackTraceLimit;
|
|
22
21
|
Error.stackTraceLimit = Number.MAX_SAFE_INTEGER;
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
const name = dispose_name(object, inspectString);
|
|
26
|
-
super(`Object [${name}] has already disposed ${stacks}.`, previous);
|
|
22
|
+
const name = dispose_name(object, 'UnknownDisposable');
|
|
23
|
+
super(`Object [${name}] has already disposed`, previous);
|
|
27
24
|
this.object = object;
|
|
28
|
-
this.name = 'DuplicateDisposedError';
|
|
29
|
-
this.inspectString = inspectString;
|
|
30
25
|
Error.stackTraceLimit = old;
|
|
31
|
-
this.tryCreateConsoleWarning().catch(() => { });
|
|
32
26
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
27
|
+
consoleWarning() {
|
|
28
|
+
try {
|
|
29
|
+
if (isV8) {
|
|
30
|
+
console.error('\x1B[48;5;1m DisposedWarning \x1B[0m DUPLICATE DISPOSE');
|
|
31
|
+
const colorBlock = `\x1B[48;5;238m \x1B[0m `;
|
|
32
|
+
console.error('\x1B[48;5;14m ● \x1B[0;38;5;4m first dispose\x1B[0m');
|
|
33
|
+
console.error(prettyFormatError(this.previous, false).replace(lineStart, colorBlock));
|
|
34
|
+
console.error('\x1B[48;5;14m ● \x1B[0;38;5;4m current dispose\x1B[0m');
|
|
35
|
+
console.error(prettyFormatError(this, false).replace(lineStart, colorBlock));
|
|
36
|
+
console.error('\x1B[48;5;14m ● \x1B[0;38;5;4m the object\x1B[0m');
|
|
37
|
+
console.error(tryInspect(this.object, { colors: true }).replace(lineStart, colorBlock));
|
|
38
|
+
console.error('');
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
console.error('[DisposedWarning] DUPLICATE DISPOSE');
|
|
42
|
+
console.error(' * first dispose:%O', this.previous);
|
|
43
|
+
console.error(' * current dispose:%O', this);
|
|
44
|
+
console.error(' * the object: %O', this.object);
|
|
45
|
+
}
|
|
38
46
|
}
|
|
39
|
-
|
|
40
|
-
console.error('
|
|
41
|
-
console.error('
|
|
47
|
+
catch (e) {
|
|
48
|
+
console.error('Failed to create console warning for duplicate dispose', e);
|
|
49
|
+
console.error('');
|
|
42
50
|
}
|
|
43
|
-
console.error(' * Object: %s', this.inspectString);
|
|
44
51
|
}
|
|
45
52
|
is(other) {
|
|
46
|
-
return other instanceof
|
|
53
|
+
return other instanceof DuplicateDisposedError;
|
|
47
54
|
}
|
|
48
55
|
}
|
|
49
56
|
//# sourceMappingURL=disposedError.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disposedError.js","sourceRoot":"","sources":["../../../src/lifecycle/dispose/disposedError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"disposedError.js","sourceRoot":"","sources":["../../../src/lifecycle/dispose/disposedError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,OAAO,aAAc,SAAQ,aAAa;IAG9B;IAFjB,YACC,OAAO,GAAG,0BAA0B,EACpB,QAA0B,EAC1C,QAA2B;QAE3B,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QAHlD,aAAQ,GAAR,QAAQ,CAAkB;IAI3C,CAAC;CAKD;AAED,MAAM,SAAS,GAAG,KAAK,CAAC;AAExB;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,aAAa;IAEvC;IADjB,YACiB,MAAW,EAC3B,QAA0B;QAE1B,MAAM,GAAG,GAAG,KAAK,CAAC,eAAe,CAAC;QAClC,KAAK,CAAC,eAAe,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAEhD,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAEvD,KAAK,CAAC,WAAW,IAAI,wBAAwB,EAAE,QAAQ,CAAC,CAAC;QARzC,WAAM,GAAN,MAAM,CAAK;QAU3B,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC;IAC7B,CAAC;IAEM,cAAc;QACpB,IAAI,CAAC;YACJ,IAAI,IAAI,EAAE,CAAC;gBACV,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;gBAC1E,MAAM,UAAU,GAAG,yBAAyB,CAAC;gBAC7C,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;gBACvE,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;gBACtF,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;gBACvE,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;gBAC7E,OAAO,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;gBAClE,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;gBACxF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;gBACrD,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtD,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;gBAC7C,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACjD,CAAC;QACF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,wDAAwD,EAAE,CAAC,CAAC,CAAC;YAC3E,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnB,CAAC;IACF,CAAC;IAED,EAAE,CAAC,KAAc;QAChB,OAAO,KAAK,YAAY,sBAAsB,CAAC;IAChD,CAAC;CACD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-disposable.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/dispose/sync-disposable.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,0BAA0B,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG/E;;GAEG;AACH,8BAAsB,cAAe,YAAW,WAAW;IAC1D,OAAO,CAAC,SAAS,CAAC,CAAmB;IAErC,IAAW,WAAW,YAErB;IACM,OAAO,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"sync-disposable.d.ts","sourceRoot":"","sources":["../../../src/lifecycle/dispose/sync-disposable.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,0BAA0B,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG/E;;GAEG;AACH,8BAAsB,cAAe,YAAW,WAAW;IAC1D,OAAO,CAAC,SAAS,CAAC,CAAmB;IAErC,IAAW,WAAW,YAErB;IACM,OAAO,IAAI,IAAI;IAStB,CAAC,MAAM,CAAC,OAAO,CAAC;IAGhB,SAAS,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI;CACnC;AAED;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,0BAA0B,CAAC,KAAK,CAAE,YAAW,WAAW;cAC5E,QAAQ,CAAC,WAAW,EAAE,SAAS,WAAW,EAAE,GAAG,IAAI;IAgB/D,CAAC,MAAM,CAAC,OAAO,CAAC,aAAgB;CACvC"}
|
|
@@ -2,7 +2,7 @@ import { convertCaughtError } from '../../error/convert-unknown.js';
|
|
|
2
2
|
import { createStackTraceHolder } from '../../error/stack-trace.js';
|
|
3
3
|
import { dispose_name } from './debug.js';
|
|
4
4
|
import { AbstractEnhancedDisposable } from './disposable.js';
|
|
5
|
-
import {
|
|
5
|
+
import { DuplicateDisposedError } from './disposedError.js';
|
|
6
6
|
/**
|
|
7
7
|
* 简单版手动disposable
|
|
8
8
|
*/
|
|
@@ -13,7 +13,8 @@ export class DisposableOnce {
|
|
|
13
13
|
}
|
|
14
14
|
dispose() {
|
|
15
15
|
if (this._disposed) {
|
|
16
|
-
|
|
16
|
+
const w = new DuplicateDisposedError(this, this._disposed);
|
|
17
|
+
w.consoleWarning();
|
|
17
18
|
return;
|
|
18
19
|
}
|
|
19
20
|
this._disposed = createStackTraceHolder('disposed', this.dispose);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-disposable.js","sourceRoot":"","sources":["../../../src/lifecycle/dispose/sync-disposable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAyB,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,0BAA0B,EAAoB,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"sync-disposable.js","sourceRoot":"","sources":["../../../src/lifecycle/dispose/sync-disposable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAyB,MAAM,4BAA4B,CAAC;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,0BAA0B,EAAoB,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D;;GAEG;AACH,MAAM,OAAgB,cAAc;IAC3B,SAAS,CAAoB;IAErC,IAAW,WAAW;QACrB,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;IACzB,CAAC;IACM,OAAO;QACb,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,CAAC,GAAG,IAAI,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3D,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,OAAO;QACR,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,QAAQ,EAAE,CAAC;IACjB,CAAC;IACD,CAAC,MAAM,CAAC,OAAO,CAAC;QACf,IAAI,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC;CAED;AAED;;;;GAIG;AACH,MAAM,OAAO,kBAAmB,SAAQ,0BAAiC;IACrD,QAAQ,CAAC,WAAmC;QAC9D,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,IAAI,CAAC;gBACJ,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO;oBAAE,IAAI,CAAC,OAAO,CAAC,WAAW,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACxE,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,MAAM,EAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC9B,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,EAAE,CAAC;oBAC3C,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;gBAC/D,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,yBAAyB;IAClB,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;CACvC"}
|
package/lib/log/logger.js
CHANGED
|
@@ -82,7 +82,7 @@ export class WrappedConsole {
|
|
|
82
82
|
if (typeof msg === 'string') {
|
|
83
83
|
return;
|
|
84
84
|
}
|
|
85
|
-
args.splice(pos, 0, (isWeb ? ' %o' : ' %j').repeat(args.length - pos).
|
|
85
|
+
args.splice(pos, 0, (isWeb ? ' %o' : ' %j').repeat(args.length - pos).slice(1));
|
|
86
86
|
}
|
|
87
87
|
else {
|
|
88
88
|
args[pos] = '';
|
package/lib/log/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/log/logger.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/log/logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,MAAM,CAAN,IAAY,SAKX;AALD,WAAY,SAAS;IACpB,+CAAW,CAAA;IACX,iDAAY,CAAA;IACZ,uCAAO,CAAA;IACP,6CAAU,CAAA;AACX,CAAC,EALW,SAAS,KAAT,SAAS,QAKpB;AAOD,MAAM,OAAgB,cAAc;IAuBhB,KAAK,CAAS;IACd,MAAM,CAAU;IAChB,IAAI,CAAU;IAEjC,YAAY,KAAa,EAAE,EAAE,MAAM,EAAE,IAAI,KAA4B,EAAE;QACtE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,OAAO,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,KAAK,CAAC;QAE1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAE9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;QAE9D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACpD,CAAC;IAES,IAAI,CAA8D,QAAW;QACtF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAQ,CAAC;QACvD,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAEO,UAAU,CAA8D,QAAW;QAC1F,OAAO,YAAY,CAAC,WAAW,QAAQ,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAQ,CAAC,CAAC;IACxE,CAAC;IAEO,SAAS,CAA8D,QAAW,EAAE,SAAiB;QAC5G,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,YAAY,CAAC,WAAW,QAAQ,EAAE,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;YAC7D,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACpB,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;IACJ,CAAC;IAES,YAAY,CAAC,OAAe;QACrC,IAAI,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC;QAC/B,IAAI,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,IAAI,OAAO,IAAI,CAAC;QAC3B,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,GAAG,CAAC;QACf,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAEO,aAAa,CAA8D,QAAW,EAAE,UAAkB,EAAE,gBAAyB;QAC5I,IAAI,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC;QAC/B,IAAI,gBAAgB,EAAE,CAAC;YACtB,MAAM,IAAI,IAAI,gBAAgB,IAAI,CAAC;QACpC,CAAC;aAAM,CAAC;YACP,MAAM,IAAI,GAAG,CAAC;QACf,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE/B,OAAO,YAAY,CAAC,WAAW,QAAQ,EAAE,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;YAC7D,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACxC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC3D,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,IAAW,EAAE,GAAW;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACvB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;gBAC7B,OAAO;YACR,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;IACF,CAAC;IAIS,OAAO,CAAC,IAAW,EAAE,GAAW,EAAE,MAAc,EAAE,OAAe;QAC1E,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;IAC1C,CAAC;CACD"}
|
package/lib/platform/os.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export declare let isNative: boolean;
|
|
|
12
12
|
export declare let isNodeJs: boolean;
|
|
13
13
|
export declare let isWeb: boolean;
|
|
14
14
|
export declare let is64Bit: boolean;
|
|
15
|
+
export declare const isV8: boolean;
|
|
15
16
|
export declare const sepList: string;
|
|
16
17
|
export declare const is32Bit: boolean;
|
|
17
18
|
//# sourceMappingURL=os.d.ts.map
|
package/lib/platform/os.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"os.d.ts","sourceRoot":"","sources":["../../src/platform/os.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,UAAU,SAAqE,CAAC;AAC7F,eAAO,MAAM,SAAS,SAAyD,CAAC;AAChF,eAAO,MAAM,SAAS,SAAyD,CAAC;AAEhF,eAAO,IAAI,UAAU,SAAQ,EAC5B,iBAAiB,SAAQ,EACzB,kBAAkB,SAAQ,EAC1B,cAAc,SAAQ,CAAC;AAkBxB,eAAO,IAAI,SAAS,SAAQ,CAAC;AAC7B,eAAO,IAAI,WAAW,SAAQ,CAAC;AAC/B,eAAO,IAAI,OAAO,SAAQ,CAAC;AAC3B,eAAO,IAAI,QAAQ,SAAQ,CAAC;AAC5B,eAAO,IAAI,QAAQ,SAAQ,CAAC;AAC5B,eAAO,IAAI,KAAK,SAAQ,CAAC;AACzB,eAAO,IAAI,OAAO,SAAQ,CAAC;AAsB3B,eAAO,MAAM,OAAO,QAAwB,CAAC;AAC7C,eAAO,MAAM,OAAO,SAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"os.d.ts","sourceRoot":"","sources":["../../src/platform/os.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,UAAU,SAAqE,CAAC;AAC7F,eAAO,MAAM,SAAS,SAAyD,CAAC;AAChF,eAAO,MAAM,SAAS,SAAyD,CAAC;AAEhF,eAAO,IAAI,UAAU,SAAQ,EAC5B,iBAAiB,SAAQ,EACzB,kBAAkB,SAAQ,EAC1B,cAAc,SAAQ,CAAC;AAkBxB,eAAO,IAAI,SAAS,SAAQ,CAAC;AAC7B,eAAO,IAAI,WAAW,SAAQ,CAAC;AAC/B,eAAO,IAAI,OAAO,SAAQ,CAAC;AAC3B,eAAO,IAAI,QAAQ,SAAQ,CAAC;AAC5B,eAAO,IAAI,QAAQ,SAAQ,CAAC;AAC5B,eAAO,IAAI,KAAK,SAAQ,CAAC;AACzB,eAAO,IAAI,OAAO,SAAQ,CAAC;AAsB3B,eAAO,MAAM,IAAI,SAAyH,CAAC;AAE3I,eAAO,MAAM,OAAO,QAAwB,CAAC;AAC7C,eAAO,MAAM,OAAO,SAAW,CAAC"}
|
package/lib/platform/os.js
CHANGED
|
@@ -52,6 +52,7 @@ else if (hasProcess) {
|
|
|
52
52
|
isWindows = true;
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
|
+
export const isV8 = (isNative && typeof process.versions?.v8 === 'string') || (() => new Error('test').stack?.includes(' at '))() || false;
|
|
55
56
|
export const sepList = isWindows ? ';' : ':';
|
|
56
57
|
export const is32Bit = !is64Bit;
|
|
57
58
|
//# sourceMappingURL=os.js.map
|
package/lib/platform/os.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"os.js","sourceRoot":"","sources":["../../src/platform/os.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,OAAO,EAAE,GAAG,KAAK,QAAQ,CAAC;AAC7F,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,UAAU,KAAK,MAAM,CAAC;AAChF,MAAM,CAAC,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,UAAU,KAAK,MAAM,CAAC;AAEhF,MAAM,CAAC,IAAI,UAAU,GAAG,KAAK,EAC5B,iBAAiB,GAAG,KAAK,EACzB,kBAAkB,GAAG,KAAK,EAC1B,cAAc,GAAG,KAAK,CAAC;AACxB,IAAI,UAAU,EAAE,CAAC;IAChB,IAAI,OAAO,OAAO,CAAC,QAAQ,EAAE,QAAQ,KAAK,WAAW,EAAE,CAAC;QACvD,UAAU,GAAG,IAAI,CAAC;QAClB,IAAI,OAAO,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACjC,kBAAkB,GAAG,IAAI,CAAC;QAC3B,CAAC;aAAM,CAAC;YACP,cAAc,GAAG,IAAI,CAAC;QACvB,CAAC;IACF,CAAC;AACF,CAAC;KAAM,IAAI,SAAS,EAAE,CAAC;IACtB,IAAI,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACvD,UAAU,GAAG,IAAI,CAAC;QAClB,kBAAkB,GAAG,IAAI,CAAC;QAC1B,iBAAiB,GAAG,IAAI,CAAC;IAC1B,CAAC;AACF,CAAC;AAED,MAAM,CAAC,IAAI,SAAS,GAAG,KAAK,CAAC;AAC7B,MAAM,CAAC,IAAI,WAAW,GAAG,KAAK,CAAC;AAC/B,MAAM,CAAC,IAAI,OAAO,GAAG,KAAK,CAAC;AAC3B,MAAM,CAAC,IAAI,QAAQ,GAAG,KAAK,CAAC;AAC5B,MAAM,CAAC,IAAI,QAAQ,GAAG,KAAK,CAAC;AAC5B,MAAM,CAAC,IAAI,KAAK,GAAG,KAAK,CAAC;AACzB,MAAM,CAAC,IAAI,OAAO,GAAG,KAAK,CAAC;AAE3B,IAAI,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;IACtC,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC7C,WAAW,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC9C,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACtC,KAAK,GAAG,IAAI,CAAC;IACb,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;KAAM,IAAI,UAAU,EAAE,CAAC;IACvB,QAAQ,GAAG,IAAI,CAAC;IAChB,QAAQ,GAAG,OAAO,OAAO,CAAC,QAAQ,EAAE,IAAI,KAAK,QAAQ,CAAC;IACtD,OAAO,GAAG,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC;IACjC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAClC,OAAO,GAAG,IAAI,CAAC;IAChB,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1C,WAAW,GAAG,IAAI,CAAC;IACpB,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzC,SAAS,GAAG,IAAI,CAAC;IAClB,CAAC;AACF,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;AAC7C,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"os.js","sourceRoot":"","sources":["../../src/platform/os.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,5 +6,8 @@ type DeepWriteableSet<T> = Set<DeepWriteable<T>>;
|
|
|
6
6
|
type DeepWriteableObject<T> = {
|
|
7
7
|
-readonly [K in keyof T]: DeepWriteable<T[K]>;
|
|
8
8
|
};
|
|
9
|
+
export type Writeable<T> = T extends Primitive ? T : T extends ReadonlyArray<infer U> ? Array<U> : T extends ReadonlyMap<infer K, infer V> ? Map<K, V> : T extends ReadonlySet<infer M> ? Set<M> : {
|
|
10
|
+
-readonly [K in keyof T]: T[K];
|
|
11
|
+
};
|
|
9
12
|
export {};
|
|
10
13
|
//# sourceMappingURL=deep.writable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deep.writable.d.ts","sourceRoot":"","sources":["../../src/typing-helper/deep.writable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAC/C,CAAC,GACD,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAC/B,kBAAkB,CAAC,CAAC,CAAC,GACrB,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GACtC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,GACtB,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,GAC7B,gBAAgB,CAAC,CAAC,CAAC,GACnB,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAE7B,KAAK,kBAAkB,CAAC,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,KAAK,gBAAgB,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,KAAK,gBAAgB,CAAC,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,KAAK,mBAAmB,CAAC,CAAC,IAAI;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"deep.writable.d.ts","sourceRoot":"","sources":["../../src/typing-helper/deep.writable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAC/C,CAAC,GACD,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAC/B,kBAAkB,CAAC,CAAC,CAAC,GACrB,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GACtC,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,GACtB,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,GAC7B,gBAAgB,CAAC,CAAC,CAAC,GACnB,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAE7B,KAAK,kBAAkB,CAAC,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,KAAK,gBAAgB,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACtE,KAAK,gBAAgB,CAAC,CAAC,IAAI,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,KAAK,mBAAmB,CAAC,CAAC,IAAI;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAEhF,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAC3C,CAAC,GACD,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAC/B,KAAK,CAAC,CAAC,CAAC,GACR,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GACtC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GACT,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,CAAC,GAC7B,GAAG,CAAC,CAAC,CAAC,GACN;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@idlebox/common",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.5.
|
|
4
|
+
"version": "1.5.20",
|
|
5
5
|
"description": "Common utilities",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"utilities",
|
|
@@ -19,17 +19,17 @@
|
|
|
19
19
|
"sideEffects": false,
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@types/debug": "^4.1.13",
|
|
22
|
-
"@build-script/autoindex": "^0.0.
|
|
22
|
+
"@build-script/autoindex": "^0.0.21",
|
|
23
23
|
"@build-script/codegen": "^1.0.21",
|
|
24
|
+
"@mpis/publisher": "^0.0.19",
|
|
24
25
|
"@build-script/baseline-rig": "latest",
|
|
25
26
|
"@idlebox/itypes": "^1.0.19",
|
|
26
|
-
"@mpis/
|
|
27
|
-
"@mpis/run": "^0.0.24"
|
|
27
|
+
"@mpis/run": "^0.0.25"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"debug": "^4.4.3",
|
|
31
31
|
"tslib": "^2.8.1",
|
|
32
|
-
"@idlebox/errors": "^0.1.
|
|
32
|
+
"@idlebox/errors": "^0.1.19"
|
|
33
33
|
},
|
|
34
34
|
"license": "MIT",
|
|
35
35
|
"author": "GongT <admin@gongt.me>",
|
package/src/autoindex.ts
CHANGED
|
@@ -83,15 +83,16 @@
|
|
|
83
83
|
export { isSerializable } from "./debugging/serializable.js";
|
|
84
84
|
export { getTypeOf } from "./debugging/serializable.js";
|
|
85
85
|
export { assertSerializable } from "./debugging/serializable.js";
|
|
86
|
+
/* error/cause.ts */
|
|
87
|
+
// Identifiers (2)
|
|
88
|
+
export { getRootCause } from "./error/cause.js";
|
|
89
|
+
export { getCauseStack } from "./error/cause.js";
|
|
86
90
|
/* error/convert-unknown.ts */
|
|
87
91
|
// Identifiers (1)
|
|
88
92
|
export { convertCaughtError } from "./error/convert-unknown.js";
|
|
89
93
|
/* error/get-frame.ts */
|
|
90
94
|
// Identifiers (1)
|
|
91
95
|
export { getErrorFrame } from "./error/get-frame.js";
|
|
92
|
-
/* error/known.ts */
|
|
93
|
-
// Identifiers (1)
|
|
94
|
-
export { KnownError } from "./error/known.js";
|
|
95
96
|
/* error/pretty.nodejs.ts */
|
|
96
97
|
// Identifiers (4)
|
|
97
98
|
export { setErrorLogRoot } from "./error/pretty.nodejs.js";
|
|
@@ -180,7 +181,7 @@
|
|
|
180
181
|
/* lifecycle/dispose/disposedError.ts */
|
|
181
182
|
// Identifiers (2)
|
|
182
183
|
export { DisposedError } from "./lifecycle/dispose/disposedError.js";
|
|
183
|
-
export {
|
|
184
|
+
export { DuplicateDisposedError } from "./lifecycle/dispose/disposedError.js";
|
|
184
185
|
/* lifecycle/dispose/sync-disposable.ts */
|
|
185
186
|
// Identifiers (2)
|
|
186
187
|
export { DisposableOnce } from "./lifecycle/dispose/sync-disposable.js";
|
|
@@ -284,7 +285,7 @@
|
|
|
284
285
|
export { createSymbol } from "./platform/globalSymbol.js";
|
|
285
286
|
export { deleteSymbol } from "./platform/globalSymbol.js";
|
|
286
287
|
/* platform/os.ts */
|
|
287
|
-
// Identifiers (
|
|
288
|
+
// Identifiers (17)
|
|
288
289
|
export { hasProcess } from "./platform/os.js";
|
|
289
290
|
export { hasWindow } from "./platform/os.js";
|
|
290
291
|
export { hasGlobal } from "./platform/os.js";
|
|
@@ -299,6 +300,7 @@
|
|
|
299
300
|
export { isNodeJs } from "./platform/os.js";
|
|
300
301
|
export { isWeb } from "./platform/os.js";
|
|
301
302
|
export { is64Bit } from "./platform/os.js";
|
|
303
|
+
export { isV8 } from "./platform/os.js";
|
|
302
304
|
export { sepList } from "./platform/os.js";
|
|
303
305
|
export { is32Bit } from "./platform/os.js";
|
|
304
306
|
/* promise/await-iterator.ts */
|
|
@@ -395,8 +397,9 @@
|
|
|
395
397
|
// Identifiers (1)
|
|
396
398
|
export type { DeepNonNullable } from "./typing-helper/deep.required.js";
|
|
397
399
|
/* typing-helper/deep.writable.ts */
|
|
398
|
-
// Identifiers (
|
|
400
|
+
// Identifiers (2)
|
|
399
401
|
export type { DeepWriteable } from "./typing-helper/deep.writable.js";
|
|
402
|
+
export type { Writeable } from "./typing-helper/deep.writable.js";
|
|
400
403
|
/* typing-helper/literal.ts */
|
|
401
404
|
// Identifiers (1)
|
|
402
405
|
export type { Primitive } from "./typing-helper/literal.js";
|
package/src/debugging/inspect.ts
CHANGED
|
@@ -7,6 +7,14 @@ export function defineInspectMethod<T>(obj: T, method: (this: T, depth: number,
|
|
|
7
7
|
return obj;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
+
let nativeInspect: Function | undefined;
|
|
11
|
+
try {
|
|
12
|
+
/** @ts-expect-error */
|
|
13
|
+
import('node:util').then(({ inspect }) => {
|
|
14
|
+
nativeInspect = inspect;
|
|
15
|
+
});
|
|
16
|
+
} catch {}
|
|
17
|
+
|
|
10
18
|
/**
|
|
11
19
|
* try to call `inspect` method of an object, if not exists, call `toString`.
|
|
12
20
|
* @returns {string}
|
|
@@ -15,6 +23,8 @@ export function tryInspect(object: any): string;
|
|
|
15
23
|
/** @internal */
|
|
16
24
|
export function tryInspect(object: any, options: any): string;
|
|
17
25
|
export function tryInspect(object: any, options?: any): string {
|
|
26
|
+
if (nativeInspect) return nativeInspect(object, options);
|
|
27
|
+
|
|
18
28
|
if (!object || typeof object !== 'object') {
|
|
19
29
|
return JSON.stringify(object);
|
|
20
30
|
}
|
|
@@ -30,10 +40,10 @@ export function tryInspect(object: any, options?: any): string {
|
|
|
30
40
|
},
|
|
31
41
|
};
|
|
32
42
|
}
|
|
33
|
-
return object[inspectSymbol](options.depth, options, tryInspect);
|
|
43
|
+
return _s(object[inspectSymbol](options.depth, options, tryInspect));
|
|
34
44
|
}
|
|
35
45
|
if (object.inspect) {
|
|
36
|
-
return object.inspect();
|
|
46
|
+
return _s(object.inspect());
|
|
37
47
|
}
|
|
38
48
|
|
|
39
49
|
const tst = object[Symbol.toStringTag];
|
|
@@ -45,10 +55,22 @@ export function tryInspect(object: any, options?: any): string {
|
|
|
45
55
|
}
|
|
46
56
|
}
|
|
47
57
|
if (object.toJSON) {
|
|
48
|
-
return object.toJSON();
|
|
58
|
+
return _s(object.toJSON());
|
|
49
59
|
}
|
|
50
60
|
if (object.constructor?.name) {
|
|
51
61
|
return `unknown: ${object.constructor.name}`;
|
|
52
62
|
}
|
|
53
63
|
return `unknown: ${object}`;
|
|
54
64
|
}
|
|
65
|
+
|
|
66
|
+
function _s(s: any) {
|
|
67
|
+
if (typeof s === 'string') {
|
|
68
|
+
return s;
|
|
69
|
+
} else {
|
|
70
|
+
try {
|
|
71
|
+
return JSON.stringify(s);
|
|
72
|
+
} catch {
|
|
73
|
+
return String(s);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export function getRootCause(e: Error): Error {
|
|
2
|
+
let current = e;
|
|
3
|
+
while (current.cause instanceof Error) {
|
|
4
|
+
current = current.cause;
|
|
5
|
+
}
|
|
6
|
+
return current;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function getCauseStack(e: Error): Error[] {
|
|
10
|
+
const stack: Error[] = [];
|
|
11
|
+
let current = e;
|
|
12
|
+
while (current) {
|
|
13
|
+
stack.push(current);
|
|
14
|
+
if (current.cause instanceof Error) {
|
|
15
|
+
current = current.cause;
|
|
16
|
+
} else {
|
|
17
|
+
break;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return stack;
|
|
21
|
+
}
|
package/src/error/get-frame.ts
CHANGED
|
@@ -4,11 +4,17 @@ import type { IWithStack } from './stack-trace.js';
|
|
|
4
4
|
* Get nth line of Error.stack
|
|
5
5
|
* @returns {string} if frame greater than max, return ''
|
|
6
6
|
*/
|
|
7
|
-
export function getErrorFrame(e: IWithStack, frame: number): string {
|
|
7
|
+
export function getErrorFrame(e: IWithStack, frame: number, downIfEmpty = false): string {
|
|
8
8
|
if (e?.stack) {
|
|
9
|
-
const stackArr = e.stack.split('\n');
|
|
10
|
-
if (stackArr.length > frame
|
|
11
|
-
return stackArr[frame
|
|
9
|
+
const stackArr = e.stack.split('\n').slice(1);
|
|
10
|
+
if (stackArr.length > frame) {
|
|
11
|
+
return stackArr[frame]?.trim();
|
|
12
|
+
} else if (downIfEmpty) {
|
|
13
|
+
for (let i = frame; i >= 0; i--) {
|
|
14
|
+
if (stackArr[i]) {
|
|
15
|
+
return stackArr[i].trim();
|
|
16
|
+
}
|
|
17
|
+
}
|
|
12
18
|
}
|
|
13
19
|
}
|
|
14
20
|
return '';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { nameObject } from '../debugging/object-with-name.js';
|
|
2
2
|
|
|
3
3
|
export type MyCallback<Argument extends unknown[]> = (...param: Argument) => boolean | undefined | void;
|
|
4
4
|
|
|
@@ -37,7 +37,7 @@ export class CallbackList<Argument extends unknown[]> {
|
|
|
37
37
|
throw new Error("Can not add callback when it's running.");
|
|
38
38
|
}
|
|
39
39
|
if (name) {
|
|
40
|
-
|
|
40
|
+
nameObject(name, item);
|
|
41
41
|
}
|
|
42
42
|
return this.list.push(item);
|
|
43
43
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { defineInspectMethod } from '../../debugging/inspect.js';
|
|
2
2
|
import type { MaybeNamed } from '../../debugging/object-with-name.js';
|
|
3
3
|
import { createStackTraceHolder, type StackTraceHolder } from '../../error/stack-trace.js';
|
|
4
|
+
import { definePublicConstant } from '../../object/definePublicConstant.js';
|
|
4
5
|
import { Emitter } from '../event/event.js';
|
|
5
6
|
import type { EventRegister } from '../event/type.js';
|
|
6
7
|
import { fromNativeDisposable } from './bridges/native.js';
|
|
7
8
|
import { _debug_dispose, dispose_name, forgetParent, rememberParent } from './debug.js';
|
|
8
|
-
import {
|
|
9
|
+
import { DuplicateDisposedError } from './disposedError.js';
|
|
9
10
|
|
|
10
11
|
export enum DuplicateDisposeAction {
|
|
11
12
|
Disable = 0,
|
|
@@ -37,14 +38,20 @@ type _RType<Async extends boolean> = Async extends true ? Promise<void> : void;
|
|
|
37
38
|
* 增强型Disposable
|
|
38
39
|
*/
|
|
39
40
|
export abstract class AbstractEnhancedDisposable<Async extends boolean> implements IDisposableEvents {
|
|
40
|
-
protected readonly _onDisposeError
|
|
41
|
-
public readonly onDisposeError
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
protected readonly _onDisposeError;
|
|
42
|
+
public readonly onDisposeError;
|
|
43
|
+
protected readonly _onBeforeDispose;
|
|
44
|
+
public readonly onBeforeDispose;
|
|
45
|
+
protected readonly _onPostDispose;
|
|
46
|
+
public readonly onPostDispose;
|
|
47
|
+
|
|
48
|
+
/** settings */
|
|
49
|
+
protected readonly duplicateDispose: DuplicateDisposeAction = DuplicateDisposeAction.Warning;
|
|
45
50
|
|
|
46
|
-
|
|
47
|
-
|
|
51
|
+
/**
|
|
52
|
+
* the "DisposableStack"
|
|
53
|
+
*/
|
|
54
|
+
protected readonly _disposables: _Type<Async>[] = [];
|
|
48
55
|
|
|
49
56
|
/** for debug */
|
|
50
57
|
public readonly displayName?: string;
|
|
@@ -62,21 +69,12 @@ export abstract class AbstractEnhancedDisposable<Async extends boolean> implemen
|
|
|
62
69
|
return `[Function debug]`;
|
|
63
70
|
});
|
|
64
71
|
|
|
65
|
-
this.
|
|
66
|
-
|
|
67
|
-
});
|
|
68
|
-
this.
|
|
69
|
-
this.
|
|
70
|
-
|
|
71
|
-
if (
|
|
72
|
-
this.constructor.name === 'EnhancedAsyncDisposable' ||
|
|
73
|
-
this.constructor.name === 'UnorderedAsyncDisposable' ||
|
|
74
|
-
this.constructor.name === 'EnhancedDisposable'
|
|
75
|
-
) {
|
|
76
|
-
defineInspectMethod(this, (_depth: number, options: any) => {
|
|
77
|
-
return options.stylize(`[${this.displayName}]`, 'special');
|
|
78
|
-
});
|
|
79
|
-
}
|
|
72
|
+
this._onDisposeError = this._register(new Emitter<Error>(`${this.displayName}:errorEvent`));
|
|
73
|
+
this.onDisposeError = this._onDisposeError.register;
|
|
74
|
+
this._onBeforeDispose = this._register(new Emitter<void>(`${this.displayName}:beforeEvent`));
|
|
75
|
+
this.onBeforeDispose = this._onBeforeDispose.register;
|
|
76
|
+
this._onPostDispose = new Emitter<void>(`${this.displayName}:postEvent`);
|
|
77
|
+
this.onPostDispose = this._onPostDispose.register;
|
|
80
78
|
}
|
|
81
79
|
|
|
82
80
|
/**
|
|
@@ -84,15 +82,10 @@ export abstract class AbstractEnhancedDisposable<Async extends boolean> implemen
|
|
|
84
82
|
*/
|
|
85
83
|
public assertNotDisposed() {
|
|
86
84
|
if (this._disposed) {
|
|
87
|
-
throw new
|
|
85
|
+
throw new DuplicateDisposedError(this, this._disposed.trace);
|
|
88
86
|
}
|
|
89
87
|
}
|
|
90
88
|
|
|
91
|
-
/**
|
|
92
|
-
* the "DisposableStack"
|
|
93
|
-
*/
|
|
94
|
-
protected readonly _disposables: _Type<Async>[] = [];
|
|
95
|
-
|
|
96
89
|
/**
|
|
97
90
|
* register a disposable object
|
|
98
91
|
*/
|
|
@@ -124,7 +117,6 @@ export abstract class AbstractEnhancedDisposable<Async extends boolean> implemen
|
|
|
124
117
|
return rmOk;
|
|
125
118
|
}
|
|
126
119
|
|
|
127
|
-
protected readonly duplicateDispose: DuplicateDisposeAction = DuplicateDisposeAction.Warning;
|
|
128
120
|
private _disposed?: {
|
|
129
121
|
trace: StackTraceHolder;
|
|
130
122
|
result: _RType<Async>;
|
|
@@ -138,6 +130,7 @@ export abstract class AbstractEnhancedDisposable<Async extends boolean> implemen
|
|
|
138
130
|
public get hasDisposed() {
|
|
139
131
|
return !!this._disposed;
|
|
140
132
|
}
|
|
133
|
+
|
|
141
134
|
/**
|
|
142
135
|
* 释放相关资源
|
|
143
136
|
*/
|
|
@@ -145,20 +138,28 @@ export abstract class AbstractEnhancedDisposable<Async extends boolean> implemen
|
|
|
145
138
|
if (this._disposed) {
|
|
146
139
|
if (this.duplicateDispose === DuplicateDisposeAction.Allow) return this._disposed.result;
|
|
147
140
|
|
|
148
|
-
const dupErr = new
|
|
141
|
+
const dupErr = new DuplicateDisposedError(this, this._disposed.trace);
|
|
142
|
+
dupErr.consoleWarning();
|
|
149
143
|
if (this.duplicateDispose === DuplicateDisposeAction.Disable) {
|
|
150
144
|
throw dupErr;
|
|
151
145
|
} else {
|
|
152
|
-
console.warn(dupErr);
|
|
153
146
|
return this._disposed.result;
|
|
154
147
|
}
|
|
155
148
|
}
|
|
156
149
|
this._onBeforeDispose.fireNoError();
|
|
157
150
|
|
|
158
151
|
const r = this._dispose(this._disposables);
|
|
152
|
+
const trace = createStackTraceHolder('disposed', this.dispose);
|
|
159
153
|
const cleanup = () => {
|
|
160
|
-
this
|
|
161
|
-
|
|
154
|
+
definePublicConstant(this, '_disposed', {
|
|
155
|
+
// 记录 disposed 状态,顺便也记录调用栈
|
|
156
|
+
trace: trace,
|
|
157
|
+
result: r,
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
Object.assign(this, { _disposables: null });
|
|
161
|
+
this._onPostDispose.fireNoError();
|
|
162
|
+
this._onPostDispose.dispose();
|
|
162
163
|
};
|
|
163
164
|
if (r && 'then' in r) {
|
|
164
165
|
r.finally(cleanup);
|
|
@@ -166,11 +167,6 @@ export abstract class AbstractEnhancedDisposable<Async extends boolean> implemen
|
|
|
166
167
|
cleanup();
|
|
167
168
|
}
|
|
168
169
|
|
|
169
|
-
this._disposed = {
|
|
170
|
-
trace: createStackTraceHolder('disposed', this.dispose),
|
|
171
|
-
result: r,
|
|
172
|
-
};
|
|
173
|
-
|
|
174
170
|
return r;
|
|
175
171
|
}
|
|
176
172
|
|
|
@@ -180,3 +176,13 @@ export abstract class AbstractEnhancedDisposable<Async extends boolean> implemen
|
|
|
180
176
|
|
|
181
177
|
protected abstract _dispose(disposables: readonly _Type<Async>[]): _RType<Async>;
|
|
182
178
|
}
|
|
179
|
+
|
|
180
|
+
defineInspectMethod(AbstractEnhancedDisposable.prototype, function (this: any, _depth: number, options: any) {
|
|
181
|
+
if (
|
|
182
|
+
this.constructor.name === 'EnhancedAsyncDisposable' ||
|
|
183
|
+
this.constructor.name === 'UnorderedAsyncDisposable' ||
|
|
184
|
+
this.constructor.name === 'EnhancedDisposable'
|
|
185
|
+
) {
|
|
186
|
+
return options.stylize(`[${this.constructor.name} ${this.displayName}]`, 'special');
|
|
187
|
+
}
|
|
188
|
+
});
|