@idlebox/common 1.5.14 → 1.5.15
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 +2 -0
- package/lib/autoindex.d.ts.map +1 -1
- package/lib/autoindex.js +67 -65
- package/lib/autoindex.js.map +1 -1
- package/lib/debugging/inspect.d.ts +2 -0
- package/lib/debugging/inspect.d.ts.map +1 -1
- package/lib/debugging/inspect.js +20 -8
- package/lib/debugging/inspect.js.map +1 -1
- package/lib/lifecycle/dispose/bridges/function.d.ts.map +1 -1
- package/lib/lifecycle/dispose/bridges/function.js +5 -2
- package/lib/lifecycle/dispose/bridges/function.js.map +1 -1
- package/lib/lifecycle/dispose/bridges/streams.d.ts.map +1 -1
- package/lib/lifecycle/dispose/bridges/streams.js +9 -4
- package/lib/lifecycle/dispose/bridges/streams.js.map +1 -1
- package/lib/lifecycle/dispose/disposable.d.ts.map +1 -1
- package/lib/lifecycle/dispose/disposable.js +11 -1
- package/lib/lifecycle/dispose/disposable.js.map +1 -1
- package/lib/lifecycle/event/event.d.ts +2 -0
- package/lib/lifecycle/event/event.d.ts.map +1 -1
- package/lib/lifecycle/event/event.js +15 -1
- package/lib/lifecycle/event/event.js.map +1 -1
- package/lib/schedule/interval.d.ts +2 -0
- package/lib/schedule/interval.d.ts.map +1 -1
- package/lib/schedule/interval.js +11 -0
- package/lib/schedule/interval.js.map +1 -1
- package/package.json +3 -3
- package/src/autoindex.ts +90 -88
- package/src/debugging/inspect.ts +24 -4
- package/src/lifecycle/dispose/bridges/function.ts +11 -5
- package/src/lifecycle/dispose/bridges/streams.ts +47 -36
- package/src/lifecycle/dispose/disposable.ts +14 -1
- package/src/lifecycle/event/event.ts +18 -1
- package/src/schedule/interval.ts +12 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { defineInspectMethod } from '../../debugging/inspect.js';
|
|
1
2
|
import type { MaybeNamed } from '../../debugging/object-with-name.js';
|
|
2
3
|
import { createStackTraceHolder, type StackTraceHolder } from '../../error/stack-trace.js';
|
|
3
4
|
import { Emitter } from '../event/event.js';
|
|
@@ -57,13 +58,25 @@ export abstract class AbstractEnhancedDisposable<Async extends boolean> implemen
|
|
|
57
58
|
this.displayName = displayName;
|
|
58
59
|
}
|
|
59
60
|
|
|
60
|
-
this._logger = _debug_dispose.extend(this.displayName || 'disposable')
|
|
61
|
+
this._logger = defineInspectMethod(_debug_dispose.extend(this.displayName || 'disposable'), () => {
|
|
62
|
+
return `[Function debug]`;
|
|
63
|
+
});
|
|
61
64
|
|
|
62
65
|
this._onPostDispose.handle(() => {
|
|
63
66
|
this._onPostDispose.dispose();
|
|
64
67
|
});
|
|
65
68
|
this._disposables.push(this._onBeforeDispose);
|
|
66
69
|
this._disposables.push(this._onDisposeError);
|
|
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
|
+
}
|
|
67
80
|
}
|
|
68
81
|
|
|
69
82
|
/**
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Exit } from '@idlebox/errors';
|
|
2
|
+
import { defineInspectMethod, inspectSymbol } from '../../debugging/inspect.js';
|
|
2
3
|
import { nameObject, objectName } from '../../debugging/object-with-name.js';
|
|
3
4
|
import { createStackTraceHolder } from '../../error/stack-trace.js';
|
|
4
5
|
import { functionToDisposable } from '../dispose/bridges/function.js';
|
|
@@ -6,6 +7,8 @@ import type { IDisposable } from '../dispose/disposable.js';
|
|
|
6
7
|
import { DisposedError } from '../dispose/disposedError.js';
|
|
7
8
|
import type { EventHandler, EventRegister, IEventEmitter } from './type.js';
|
|
8
9
|
|
|
10
|
+
const anonymousName = 'AnonymousEmitter';
|
|
11
|
+
|
|
9
12
|
/**
|
|
10
13
|
* @public
|
|
11
14
|
*/
|
|
@@ -14,7 +17,7 @@ export class Emitter<T = unknown> implements IEventEmitter<T> {
|
|
|
14
17
|
private executing = false;
|
|
15
18
|
private _something_change_during_call = false;
|
|
16
19
|
|
|
17
|
-
constructor(public readonly displayName: string =
|
|
20
|
+
constructor(public readonly displayName: string = anonymousName) {
|
|
18
21
|
this.handle = Object.defineProperties(this.handle.bind(this), {
|
|
19
22
|
once: {
|
|
20
23
|
get: () => this.once.bind(this),
|
|
@@ -26,6 +29,9 @@ export class Emitter<T = unknown> implements IEventEmitter<T> {
|
|
|
26
29
|
get: () => this._disposed,
|
|
27
30
|
},
|
|
28
31
|
});
|
|
32
|
+
defineInspectMethod(this.handle, (_depth, options) => {
|
|
33
|
+
return options.stylize(`[EmitterRegister ${this.displayName}]`, 'special');
|
|
34
|
+
});
|
|
29
35
|
}
|
|
30
36
|
|
|
31
37
|
public listenerCount() {
|
|
@@ -181,6 +187,17 @@ export class Emitter<T = unknown> implements IEventEmitter<T> {
|
|
|
181
187
|
|
|
182
188
|
readonly [Symbol.dispose] = this.dispose;
|
|
183
189
|
|
|
190
|
+
[inspectSymbol](_depth: number, options: any) {
|
|
191
|
+
let r = `${options.stylize(this.constructor.name, 'name')} {`;
|
|
192
|
+
if (this.displayName !== anonymousName) {
|
|
193
|
+
r += ` ${options.stylize(this.displayName, 'string')},`;
|
|
194
|
+
}
|
|
195
|
+
r += ` listeners: ${options.stylize(this.listenerCount(), 'number')}`;
|
|
196
|
+
|
|
197
|
+
r += ' }';
|
|
198
|
+
return r;
|
|
199
|
+
}
|
|
200
|
+
|
|
184
201
|
private requireNotExecuting() {
|
|
185
202
|
if (this.executing) {
|
|
186
203
|
throw new Error('conflict state, emitter is firing');
|
package/src/schedule/interval.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { inspectSymbol } from '../debugging/inspect.js';
|
|
1
2
|
import { objectName } from '../debugging/object-with-name.js';
|
|
2
3
|
import type { IDisposable } from '../lifecycle/dispose/disposable.js';
|
|
3
4
|
import { EnhancedDisposable } from '../lifecycle/dispose/sync-disposable.js';
|
|
@@ -61,4 +62,15 @@ export class Interval extends EnhancedDisposable {
|
|
|
61
62
|
if (this.timer) this.timer.dispose();
|
|
62
63
|
return super.dispose();
|
|
63
64
|
}
|
|
65
|
+
|
|
66
|
+
[inspectSymbol](depth: number, options: any, inspect: any) {
|
|
67
|
+
if (depth < 0) {
|
|
68
|
+
return options.stylize(`[Interval ${this.ms}ms]`, 'special');
|
|
69
|
+
}
|
|
70
|
+
let r = `${options.stylize(this.constructor.name, 'name')} ${options.stylize(`${this.ms}`, 'number')}ms`;
|
|
71
|
+
const padding = ' '.repeat(2);
|
|
72
|
+
const inner = inspect(this._emitter, options, inspect).replace(/\n/g, `\n${padding}`);
|
|
73
|
+
r += ` {\n${padding}onTick: ${inner}\n}`;
|
|
74
|
+
return r;
|
|
75
|
+
}
|
|
64
76
|
}
|