@mnaoumov/typescript-lib 0.0.0 → 1.0.0
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/@types/debug/package.json +4 -0
- package/LICENSE +21 -0
- package/README.md +7 -1
- package/dist/lib/cjs/@types/debug.d.cts +21 -0
- package/dist/lib/cjs/abort-controller.cjs +202 -0
- package/dist/lib/cjs/abort-controller.d.cts +135 -0
- package/dist/lib/cjs/aggregate-error.cjs +98 -0
- package/dist/lib/cjs/aggregate-error.d.cts +24 -0
- package/dist/lib/cjs/array-buffer.cjs +96 -0
- package/dist/lib/cjs/array-buffer.d.cts +16 -0
- package/dist/lib/cjs/array.cjs +134 -0
- package/dist/lib/cjs/array.d.cts +46 -0
- package/dist/lib/cjs/async-events.cjs +466 -0
- package/dist/lib/cjs/async-events.d.cts +456 -0
- package/dist/lib/cjs/async-operation-hook.cjs +113 -0
- package/dist/lib/cjs/async-operation-hook.d.cts +59 -0
- package/dist/lib/cjs/async.cjs +521 -0
- package/dist/lib/cjs/async.d.cts +414 -0
- package/dist/lib/cjs/beeper.cjs +126 -0
- package/dist/lib/cjs/beeper.d.cts +21 -0
- package/dist/lib/cjs/blob.cjs +160 -0
- package/dist/lib/cjs/blob.d.cts +59 -0
- package/dist/lib/cjs/bytes.cjs +114 -0
- package/dist/lib/cjs/bytes.d.cts +17 -0
- package/dist/lib/cjs/debug-controller.cjs +80 -0
- package/dist/lib/cjs/debug-controller.d.cts +87 -0
- package/dist/lib/cjs/debug.cjs +235 -0
- package/dist/lib/cjs/debug.d.cts +66 -0
- package/dist/lib/cjs/desktop-zip-extractor.cjs +215 -0
- package/dist/lib/cjs/desktop-zip-extractor.d.cts +95 -0
- package/dist/lib/cjs/disposable.cjs +414 -0
- package/dist/lib/cjs/disposable.d.cts +387 -0
- package/dist/lib/cjs/enum.cjs +100 -0
- package/dist/lib/cjs/enum.d.cts +24 -0
- package/dist/lib/cjs/error.cjs +297 -0
- package/dist/lib/cjs/error.d.cts +181 -0
- package/dist/lib/cjs/function.cjs +141 -0
- package/dist/lib/cjs/function.d.cts +128 -0
- package/dist/lib/cjs/html-element.cjs +341 -0
- package/dist/lib/cjs/html-element.d.cts +199 -0
- package/dist/lib/cjs/index.cjs +195 -0
- package/dist/lib/cjs/index.d.cts +33 -0
- package/dist/lib/cjs/jpeg-metadata.cjs +228 -0
- package/dist/lib/cjs/jpeg-metadata.d.cts +42 -0
- package/dist/lib/cjs/library.cjs +158 -0
- package/dist/lib/cjs/library.d.cts +96 -0
- package/dist/lib/cjs/object-utils.cjs +617 -0
- package/dist/lib/cjs/object-utils.d.cts +298 -0
- package/dist/lib/cjs/path.cjs +202 -0
- package/dist/lib/cjs/path.d.cts +154 -0
- package/dist/lib/cjs/reg-exp.cjs +254 -0
- package/dist/lib/cjs/reg-exp.d.cts +87 -0
- package/dist/lib/cjs/string.cjs +326 -0
- package/dist/lib/cjs/string.d.cts +361 -0
- package/dist/lib/cjs/transformers/date-transformer.cjs +129 -0
- package/dist/lib/cjs/transformers/date-transformer.d.cts +39 -0
- package/dist/lib/cjs/transformers/group-transformer.cjs +173 -0
- package/dist/lib/cjs/transformers/group-transformer.d.cts +70 -0
- package/dist/lib/cjs/transformers/index.cjs +123 -0
- package/dist/lib/cjs/transformers/index.d.cts +9 -0
- package/dist/lib/cjs/transformers/map-transformer.cjs +129 -0
- package/dist/lib/cjs/transformers/map-transformer.d.cts +41 -0
- package/dist/lib/cjs/transformers/set-transformer.cjs +129 -0
- package/dist/lib/cjs/transformers/set-transformer.d.cts +39 -0
- package/dist/lib/cjs/transformers/skip-private-property-transformer.cjs +127 -0
- package/dist/lib/cjs/transformers/skip-private-property-transformer.d.cts +36 -0
- package/dist/lib/cjs/transformers/transformer.cjs +170 -0
- package/dist/lib/cjs/transformers/transformer.d.cts +70 -0
- package/dist/lib/cjs/transformers/two-way-map-transformer.cjs +130 -0
- package/dist/lib/cjs/transformers/two-way-map-transformer.d.cts +42 -0
- package/dist/lib/cjs/transformers/typed-transformer.cjs +94 -0
- package/dist/lib/cjs/transformers/typed-transformer.d.cts +39 -0
- package/dist/lib/cjs/two-way-map.cjs +208 -0
- package/dist/lib/cjs/two-way-map.d.cts +101 -0
- package/dist/lib/cjs/type-guards.cjs +128 -0
- package/dist/lib/cjs/type-guards.d.cts +84 -0
- package/dist/lib/cjs/type.cjs +121 -0
- package/dist/lib/cjs/type.d.cts +122 -0
- package/dist/lib/cjs/typescript-lib-state.cjs +126 -0
- package/dist/lib/cjs/typescript-lib-state.d.cts +56 -0
- package/dist/lib/cjs/url.cjs +136 -0
- package/dist/lib/cjs/url.d.cts +74 -0
- package/dist/lib/cjs/value-provider.cjs +100 -0
- package/dist/lib/cjs/value-provider.d.cts +28 -0
- package/dist/lib/cjs/value-wrapper.cjs +144 -0
- package/dist/lib/cjs/value-wrapper.d.cts +47 -0
- package/dist/lib/esm/@types/debug.d.mts +21 -0
- package/dist/lib/esm/abort-controller.d.mts +135 -0
- package/dist/lib/esm/abort-controller.mjs +159 -0
- package/dist/lib/esm/aggregate-error.d.mts +24 -0
- package/dist/lib/esm/aggregate-error.mjs +60 -0
- package/dist/lib/esm/array-buffer.d.mts +16 -0
- package/dist/lib/esm/array-buffer.mjs +58 -0
- package/dist/lib/esm/array.d.mts +46 -0
- package/dist/lib/esm/array.mjs +93 -0
- package/dist/lib/esm/async-events.d.mts +456 -0
- package/dist/lib/esm/async-events.mjs +427 -0
- package/dist/lib/esm/async-operation-hook.d.mts +59 -0
- package/dist/lib/esm/async-operation-hook.mjs +71 -0
- package/dist/lib/esm/async.d.mts +414 -0
- package/dist/lib/esm/async.mjs +479 -0
- package/dist/lib/esm/beeper.d.mts +21 -0
- package/dist/lib/esm/beeper.mjs +88 -0
- package/dist/lib/esm/blob.d.mts +59 -0
- package/dist/lib/esm/blob.mjs +121 -0
- package/dist/lib/esm/bytes.d.mts +17 -0
- package/dist/lib/esm/bytes.mjs +76 -0
- package/dist/lib/esm/debug-controller.d.mts +87 -0
- package/dist/lib/esm/debug-controller.mjs +50 -0
- package/dist/lib/esm/debug.d.mts +66 -0
- package/dist/lib/esm/debug.mjs +185 -0
- package/dist/lib/esm/desktop-zip-extractor.d.mts +95 -0
- package/dist/lib/esm/desktop-zip-extractor.mjs +180 -0
- package/dist/lib/esm/disposable.d.mts +387 -0
- package/dist/lib/esm/disposable.mjs +360 -0
- package/dist/lib/esm/enum.d.mts +24 -0
- package/dist/lib/esm/enum.mjs +61 -0
- package/dist/lib/esm/error.d.mts +181 -0
- package/dist/lib/esm/error.mjs +248 -0
- package/dist/lib/esm/function.d.mts +128 -0
- package/dist/lib/esm/function.mjs +96 -0
- package/dist/lib/esm/html-element.d.mts +199 -0
- package/dist/lib/esm/html-element.mjs +291 -0
- package/dist/lib/esm/index.d.mts +33 -0
- package/dist/lib/esm/index.mjs +116 -0
- package/dist/lib/esm/jpeg-metadata.d.mts +42 -0
- package/dist/lib/esm/jpeg-metadata.mjs +189 -0
- package/dist/lib/esm/library.d.mts +96 -0
- package/dist/lib/esm/library.mjs +118 -0
- package/dist/lib/esm/object-utils.d.mts +298 -0
- package/dist/lib/esm/object-utils.mjs +567 -0
- package/dist/lib/esm/path.d.mts +154 -0
- package/dist/lib/esm/path.mjs +139 -0
- package/dist/lib/esm/reg-exp.d.mts +87 -0
- package/dist/lib/esm/reg-exp.mjs +213 -0
- package/dist/lib/esm/string.d.mts +361 -0
- package/dist/lib/esm/string.mjs +274 -0
- package/dist/lib/esm/transformers/date-transformer.d.mts +39 -0
- package/dist/lib/esm/transformers/date-transformer.mjs +91 -0
- package/dist/lib/esm/transformers/group-transformer.d.mts +70 -0
- package/dist/lib/esm/transformers/group-transformer.mjs +138 -0
- package/dist/lib/esm/transformers/index.d.mts +9 -0
- package/dist/lib/esm/transformers/index.mjs +68 -0
- package/dist/lib/esm/transformers/map-transformer.d.mts +41 -0
- package/dist/lib/esm/transformers/map-transformer.mjs +91 -0
- package/dist/lib/esm/transformers/set-transformer.d.mts +39 -0
- package/dist/lib/esm/transformers/set-transformer.mjs +91 -0
- package/dist/lib/esm/transformers/skip-private-property-transformer.d.mts +36 -0
- package/dist/lib/esm/transformers/skip-private-property-transformer.mjs +89 -0
- package/dist/lib/esm/transformers/transformer.d.mts +70 -0
- package/dist/lib/esm/transformers/transformer.mjs +132 -0
- package/dist/lib/esm/transformers/two-way-map-transformer.d.mts +42 -0
- package/dist/lib/esm/transformers/two-way-map-transformer.mjs +92 -0
- package/dist/lib/esm/transformers/typed-transformer.d.mts +39 -0
- package/dist/lib/esm/transformers/typed-transformer.mjs +56 -0
- package/dist/lib/esm/two-way-map.d.mts +101 -0
- package/dist/lib/esm/two-way-map.mjs +170 -0
- package/dist/lib/esm/type-guards.d.mts +84 -0
- package/dist/lib/esm/type-guards.mjs +85 -0
- package/dist/lib/esm/type.d.mts +122 -0
- package/dist/lib/esm/type.mjs +83 -0
- package/dist/lib/esm/typescript-lib-state.d.mts +56 -0
- package/dist/lib/esm/typescript-lib-state.mjs +84 -0
- package/dist/lib/esm/url.d.mts +74 -0
- package/dist/lib/esm/url.mjs +94 -0
- package/dist/lib/esm/value-provider.d.mts +28 -0
- package/dist/lib/esm/value-provider.mjs +62 -0
- package/dist/lib/esm/value-wrapper.d.mts +47 -0
- package/dist/lib/esm/value-wrapper.mjs +106 -0
- package/package.json +111 -13
- package/transformers/date-transformer/package.json +6 -0
- package/transformers/group-transformer/package.json +6 -0
- package/transformers/index/package.json +6 -0
- package/transformers/map-transformer/package.json +6 -0
- package/transformers/package.json +6 -0
- package/transformers/set-transformer/package.json +6 -0
- package/transformers/skip-private-property-transformer/package.json +6 -0
- package/transformers/transformer/package.json +6 -0
- package/transformers/two-way-map-transformer/package.json +6 -0
- package/transformers/typed-transformer/package.json +6 -0
|
@@ -0,0 +1,387 @@
|
|
|
1
|
+
/// <reference path="./library.d.mts" />
|
|
2
|
+
/**
|
|
3
|
+
* @file
|
|
4
|
+
*
|
|
5
|
+
* Disposable utilities for `using` / `await using` declarations.
|
|
6
|
+
*/
|
|
7
|
+
import type { Promisable } from 'type-fest';
|
|
8
|
+
/**
|
|
9
|
+
* Determines the error semantics of a {@link CombineDisposable} or {@link CombineAsyncDisposable} when
|
|
10
|
+
* one of its children throws while being disposed.
|
|
11
|
+
*/
|
|
12
|
+
export declare enum DisposeErrorBehavior {
|
|
13
|
+
/**
|
|
14
|
+
* Dispose every child even if some of them throw, collecting the thrown errors and re-throwing them
|
|
15
|
+
* as a single {@link AggregateError} once all children have been disposed.
|
|
16
|
+
*/
|
|
17
|
+
Aggregate = 0,
|
|
18
|
+
/**
|
|
19
|
+
* Re-throw the first error a child throws immediately, leaving the remaining children undisposed.
|
|
20
|
+
*/
|
|
21
|
+
FailFast = 1
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Determines the order in which a {@link CombineDisposable} or {@link CombineAsyncDisposable} disposes
|
|
25
|
+
* its children.
|
|
26
|
+
*/
|
|
27
|
+
export declare enum DisposeOrder {
|
|
28
|
+
/**
|
|
29
|
+
* Dispose the last-registered child first (last-in, first-out), like nested `using` declarations
|
|
30
|
+
* unwinding in reverse.
|
|
31
|
+
*/
|
|
32
|
+
Lifo = 0,
|
|
33
|
+
/**
|
|
34
|
+
* Dispose the first-registered child first (first-in, first-out).
|
|
35
|
+
*/
|
|
36
|
+
Fifo = 1
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Determines how a {@link CallbackDisposable} or {@link AsyncCallbackDisposable} behaves when it is
|
|
40
|
+
* disposed more than once.
|
|
41
|
+
*/
|
|
42
|
+
export declare enum MultipleDisposeBehavior {
|
|
43
|
+
/**
|
|
44
|
+
* Invoke the callback on every dispose.
|
|
45
|
+
*/
|
|
46
|
+
Invoke = 0,
|
|
47
|
+
/**
|
|
48
|
+
* Invoke the callback on the first dispose only; subsequent disposes are no-ops.
|
|
49
|
+
*/
|
|
50
|
+
Ignore = 1,
|
|
51
|
+
/**
|
|
52
|
+
* Invoke the callback on the first dispose only; subsequent disposes throw.
|
|
53
|
+
*/
|
|
54
|
+
Throw = 2
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* The parameters for constructing an {@link AsyncCallbackDisposable}.
|
|
58
|
+
*/
|
|
59
|
+
export interface AsyncCallbackDisposableConstructorParams {
|
|
60
|
+
/**
|
|
61
|
+
* The callback to execute when disposed.
|
|
62
|
+
*/
|
|
63
|
+
readonly callback: AsyncDisposeCallback;
|
|
64
|
+
/**
|
|
65
|
+
* How the disposable behaves when disposed more than once.
|
|
66
|
+
*
|
|
67
|
+
* @default {@link MultipleDisposeBehavior.Ignore}
|
|
68
|
+
*/
|
|
69
|
+
readonly multipleDisposeBehavior?: MultipleDisposeBehavior;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* An {@link AsyncDisposable} that additionally exposes a convenience {@link AsyncDisposableEx.asyncDispose}
|
|
73
|
+
* method, so a stored handle can be disposed as `handle.asyncDispose()` instead of the clunkier
|
|
74
|
+
* `handle[Symbol.asyncDispose]()`.
|
|
75
|
+
*/
|
|
76
|
+
export interface AsyncDisposableEx extends AsyncDisposable {
|
|
77
|
+
/**
|
|
78
|
+
* Disposes the object. Delegates to `this[Symbol.asyncDispose]()`.
|
|
79
|
+
*
|
|
80
|
+
* @returns A {@link Promise} that resolves once disposal completes.
|
|
81
|
+
*/
|
|
82
|
+
asyncDispose: () => Promise<void>;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* A callback invoked when an {@link AsyncCallbackDisposable} is disposed.
|
|
86
|
+
*/
|
|
87
|
+
export type AsyncDisposeCallback = () => Promisable<void>;
|
|
88
|
+
/**
|
|
89
|
+
* The parameters for constructing a {@link CallbackDisposable}.
|
|
90
|
+
*/
|
|
91
|
+
export interface CallbackDisposableConstructorParams {
|
|
92
|
+
/**
|
|
93
|
+
* The callback to execute when disposed.
|
|
94
|
+
*/
|
|
95
|
+
readonly callback: DisposeCallback;
|
|
96
|
+
/**
|
|
97
|
+
* How the disposable behaves when disposed more than once.
|
|
98
|
+
*
|
|
99
|
+
* @default {@link MultipleDisposeBehavior.Ignore}
|
|
100
|
+
*/
|
|
101
|
+
readonly multipleDisposeBehavior?: MultipleDisposeBehavior;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* The parameters for constructing a {@link CombineAsyncDisposable}.
|
|
105
|
+
*/
|
|
106
|
+
export interface CombineAsyncDisposableConstructorParams {
|
|
107
|
+
/**
|
|
108
|
+
* The async disposables to dispose when the combiner is disposed.
|
|
109
|
+
*/
|
|
110
|
+
readonly asyncDisposables: Iterable<AsyncDisposable>;
|
|
111
|
+
/**
|
|
112
|
+
* The order in which the children are disposed.
|
|
113
|
+
*
|
|
114
|
+
* @default {@link DisposeOrder.Lifo}
|
|
115
|
+
*/
|
|
116
|
+
readonly disposeOrder?: DisposeOrder;
|
|
117
|
+
/**
|
|
118
|
+
* How the combiner behaves when one of its children throws while being disposed.
|
|
119
|
+
*
|
|
120
|
+
* @default {@link DisposeErrorBehavior.Aggregate}
|
|
121
|
+
*/
|
|
122
|
+
readonly errorBehavior?: DisposeErrorBehavior;
|
|
123
|
+
/**
|
|
124
|
+
* How the combiner behaves when it is disposed more than once.
|
|
125
|
+
*
|
|
126
|
+
* @default {@link MultipleDisposeBehavior.Ignore}
|
|
127
|
+
*/
|
|
128
|
+
readonly multipleDisposeBehavior?: MultipleDisposeBehavior;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* The parameters for constructing a {@link CombineDisposable}.
|
|
132
|
+
*/
|
|
133
|
+
export interface CombineDisposableConstructorParams {
|
|
134
|
+
/**
|
|
135
|
+
* The disposables to dispose when the combiner is disposed.
|
|
136
|
+
*/
|
|
137
|
+
readonly disposables: Iterable<Disposable>;
|
|
138
|
+
/**
|
|
139
|
+
* The order in which the children are disposed.
|
|
140
|
+
*
|
|
141
|
+
* @default {@link DisposeOrder.Lifo}
|
|
142
|
+
*/
|
|
143
|
+
readonly disposeOrder?: DisposeOrder;
|
|
144
|
+
/**
|
|
145
|
+
* How the combiner behaves when one of its children throws while being disposed.
|
|
146
|
+
*
|
|
147
|
+
* @default {@link DisposeErrorBehavior.Aggregate}
|
|
148
|
+
*/
|
|
149
|
+
readonly errorBehavior?: DisposeErrorBehavior;
|
|
150
|
+
/**
|
|
151
|
+
* How the combiner behaves when it is disposed more than once.
|
|
152
|
+
*
|
|
153
|
+
* @default {@link MultipleDisposeBehavior.Ignore}
|
|
154
|
+
*/
|
|
155
|
+
readonly multipleDisposeBehavior?: MultipleDisposeBehavior;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* A {@link Disposable} that additionally exposes a convenience {@link DisposableEx.dispose} method, so a
|
|
159
|
+
* stored handle can be disposed as `handle.dispose()` instead of the clunkier `handle[Symbol.dispose]()`.
|
|
160
|
+
*/
|
|
161
|
+
export interface DisposableEx extends Disposable {
|
|
162
|
+
/**
|
|
163
|
+
* Disposes the object. Delegates to `this[Symbol.dispose]()`.
|
|
164
|
+
*/
|
|
165
|
+
dispose: () => void;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* A callback invoked when a {@link CallbackDisposable} is disposed.
|
|
169
|
+
*/
|
|
170
|
+
export type DisposeCallback = () => void;
|
|
171
|
+
/**
|
|
172
|
+
* Abstract base for an {@link AsyncDisposableEx}: it carries the re-dispose guard (via
|
|
173
|
+
* {@link MultipleDisposeBehavior}) and the {@link AsyncDisposableEx.asyncDispose} alias; a subclass only
|
|
174
|
+
* implements {@link AsyncDisposableBase.performDisposeAsync}.
|
|
175
|
+
*/
|
|
176
|
+
export declare abstract class AsyncDisposableBase implements AsyncDisposableEx {
|
|
177
|
+
/**
|
|
178
|
+
* How the disposable behaves when disposed more than once.
|
|
179
|
+
*
|
|
180
|
+
* @default {@link MultipleDisposeBehavior.Ignore}
|
|
181
|
+
*/
|
|
182
|
+
protected multipleDisposeBehavior: MultipleDisposeBehavior;
|
|
183
|
+
/**
|
|
184
|
+
* Whether this disposable has been disposed (its teardown has run at least once).
|
|
185
|
+
*
|
|
186
|
+
* @returns `true` once disposal has started.
|
|
187
|
+
*/
|
|
188
|
+
protected get isDisposed(): boolean;
|
|
189
|
+
private _isDisposed;
|
|
190
|
+
/**
|
|
191
|
+
* Disposes the object. Convenience alias that delegates to `this[Symbol.asyncDispose]()`.
|
|
192
|
+
*
|
|
193
|
+
* @returns A {@link Promise} that resolves once teardown completes.
|
|
194
|
+
*/
|
|
195
|
+
asyncDispose(): Promise<void>;
|
|
196
|
+
/**
|
|
197
|
+
* Disposes the object by running {@link AsyncDisposableBase.performDisposeAsync}, honoring the configured
|
|
198
|
+
* {@link MultipleDisposeBehavior} on a repeat dispose.
|
|
199
|
+
*
|
|
200
|
+
* @returns A {@link Promise} that resolves once teardown completes.
|
|
201
|
+
*/
|
|
202
|
+
[Symbol.asyncDispose](): Promise<void>;
|
|
203
|
+
/**
|
|
204
|
+
* Performs the actual teardown. Called at most once unless {@link MultipleDisposeBehavior.Invoke} is set.
|
|
205
|
+
*
|
|
206
|
+
* @returns A {@link Promisable} that resolves once teardown completes.
|
|
207
|
+
*/
|
|
208
|
+
protected abstract performDisposeAsync(): Promisable<void>;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* An async disposable that executes a callback when disposed via `await using` (or a manual
|
|
212
|
+
* `await disposable[Symbol.asyncDispose]()`).
|
|
213
|
+
*/
|
|
214
|
+
export declare class AsyncCallbackDisposable extends AsyncDisposableBase {
|
|
215
|
+
private readonly callback;
|
|
216
|
+
/**
|
|
217
|
+
* Creates a new instance of {@link AsyncCallbackDisposable}.
|
|
218
|
+
*
|
|
219
|
+
* @param params - The parameters.
|
|
220
|
+
*/
|
|
221
|
+
constructor(params: AsyncCallbackDisposableConstructorParams);
|
|
222
|
+
/**
|
|
223
|
+
* Runs the dispose callback.
|
|
224
|
+
*
|
|
225
|
+
* @returns A {@link Promise} that resolves once the callback completes.
|
|
226
|
+
*/
|
|
227
|
+
protected performDisposeAsync(): Promise<void>;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Disposes a {@link Disposable}.
|
|
231
|
+
*
|
|
232
|
+
* Prefer this over calling `disposable[Symbol.dispose]()` at the call site: it reads better and keeps the
|
|
233
|
+
* well-known symbol referenced in a single place.
|
|
234
|
+
*
|
|
235
|
+
* @param disposable - the disposable to dispose
|
|
236
|
+
*/
|
|
237
|
+
export declare function dispose(disposable: Disposable): void;
|
|
238
|
+
/**
|
|
239
|
+
* Abstract base for a {@link DisposableEx}: it carries the re-dispose guard (via {@link MultipleDisposeBehavior})
|
|
240
|
+
* and the {@link DisposableEx.dispose} alias; a subclass only implements {@link DisposableBase.performDispose}.
|
|
241
|
+
*/
|
|
242
|
+
export declare abstract class DisposableBase implements DisposableEx {
|
|
243
|
+
/**
|
|
244
|
+
* How the disposable behaves when disposed more than once.
|
|
245
|
+
*
|
|
246
|
+
* @default {@link MultipleDisposeBehavior.Ignore}
|
|
247
|
+
*/
|
|
248
|
+
protected multipleDisposeBehavior: MultipleDisposeBehavior;
|
|
249
|
+
/**
|
|
250
|
+
* Whether this disposable has been disposed (its teardown has run at least once).
|
|
251
|
+
*
|
|
252
|
+
* @returns `true` once disposal has started.
|
|
253
|
+
*/
|
|
254
|
+
protected get isDisposed(): boolean;
|
|
255
|
+
private _isDisposed;
|
|
256
|
+
/**
|
|
257
|
+
* Disposes the object. Convenience alias that delegates to `this[Symbol.dispose]()`.
|
|
258
|
+
*/
|
|
259
|
+
dispose(): void;
|
|
260
|
+
/**
|
|
261
|
+
* Disposes the object by running {@link DisposableBase.performDispose}, honoring the configured
|
|
262
|
+
* {@link MultipleDisposeBehavior} on a repeat dispose.
|
|
263
|
+
*/
|
|
264
|
+
[Symbol.dispose](): void;
|
|
265
|
+
/**
|
|
266
|
+
* Performs the actual teardown. Called at most once unless {@link MultipleDisposeBehavior.Invoke} is set.
|
|
267
|
+
*/
|
|
268
|
+
protected abstract performDispose(): void;
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* A disposable that executes a callback when disposed.
|
|
272
|
+
*/
|
|
273
|
+
export declare class CallbackDisposable extends DisposableBase {
|
|
274
|
+
private readonly callback;
|
|
275
|
+
/**
|
|
276
|
+
* Creates a new instance of {@link CallbackDisposable}.
|
|
277
|
+
*
|
|
278
|
+
* @param params - The parameters.
|
|
279
|
+
*/
|
|
280
|
+
constructor(params: CallbackDisposableConstructorParams);
|
|
281
|
+
/**
|
|
282
|
+
* Runs the dispose callback.
|
|
283
|
+
*/
|
|
284
|
+
protected performDispose(): void;
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* An {@link AsyncDisposableEx} that combines multiple async disposables and disposes all of them when it
|
|
288
|
+
* is disposed.
|
|
289
|
+
*/
|
|
290
|
+
export declare class CombineAsyncDisposable extends AsyncDisposableBase {
|
|
291
|
+
private readonly children;
|
|
292
|
+
private readonly disposeOrder;
|
|
293
|
+
private readonly errorBehavior;
|
|
294
|
+
/**
|
|
295
|
+
* Creates a new instance of {@link CombineAsyncDisposable}.
|
|
296
|
+
*
|
|
297
|
+
* @param params - The parameters.
|
|
298
|
+
*/
|
|
299
|
+
constructor(params: CombineAsyncDisposableConstructorParams);
|
|
300
|
+
/**
|
|
301
|
+
* Disposes all combined children in the configured {@link DisposeOrder}, applying the configured
|
|
302
|
+
* {@link DisposeErrorBehavior} when a child throws.
|
|
303
|
+
*
|
|
304
|
+
* @returns A {@link Promise} that resolves once all children have been disposed.
|
|
305
|
+
*/
|
|
306
|
+
protected performDisposeAsync(): Promise<void>;
|
|
307
|
+
private getOrderedChildren;
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* A {@link DisposableEx} that combines multiple disposables and disposes all of them when it is
|
|
311
|
+
* disposed.
|
|
312
|
+
*/
|
|
313
|
+
export declare class CombineDisposable extends DisposableBase {
|
|
314
|
+
private readonly children;
|
|
315
|
+
private readonly disposeOrder;
|
|
316
|
+
private readonly errorBehavior;
|
|
317
|
+
/**
|
|
318
|
+
* Creates a new instance of {@link CombineDisposable}.
|
|
319
|
+
*
|
|
320
|
+
* @param params - The parameters.
|
|
321
|
+
*/
|
|
322
|
+
constructor(params: CombineDisposableConstructorParams);
|
|
323
|
+
/**
|
|
324
|
+
* Disposes all combined children in the configured {@link DisposeOrder}, applying the configured
|
|
325
|
+
* {@link DisposeErrorBehavior} when a child throws.
|
|
326
|
+
*/
|
|
327
|
+
protected performDispose(): void;
|
|
328
|
+
private getOrderedChildren;
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* Disposes an {@link AsyncDisposable}.
|
|
332
|
+
*
|
|
333
|
+
* Prefer this over calling `asyncDisposable[Symbol.asyncDispose]()` at the call site: it reads better and
|
|
334
|
+
* keeps the well-known symbol referenced in a single place.
|
|
335
|
+
*
|
|
336
|
+
* @param asyncDisposable - the async disposable to dispose
|
|
337
|
+
* @returns A {@link Promise} that resolves once the disposal completes.
|
|
338
|
+
*/
|
|
339
|
+
export declare function disposeAsync(asyncDisposable: AsyncDisposable): Promise<void>;
|
|
340
|
+
/**
|
|
341
|
+
* Type guard to check if an object implements the {@link AsyncDisposable} interface.
|
|
342
|
+
*
|
|
343
|
+
* @param $unknown - the object to check for the {@link AsyncDisposable} interface
|
|
344
|
+
* @returns Whether the object implements the {@link AsyncDisposable} interface
|
|
345
|
+
*/
|
|
346
|
+
export declare function isAsyncDisposable($unknown: unknown): $unknown is AsyncDisposable;
|
|
347
|
+
/**
|
|
348
|
+
* Type guard to check if an object implements the {@link AsyncDisposableEx} interface.
|
|
349
|
+
*
|
|
350
|
+
* @param $unknown - the object to check for the {@link AsyncDisposableEx} interface
|
|
351
|
+
* @returns Whether the object implements the {@link AsyncDisposableEx} interface
|
|
352
|
+
*/
|
|
353
|
+
export declare function isAsyncDisposableEx($unknown: unknown): $unknown is AsyncDisposableEx;
|
|
354
|
+
/**
|
|
355
|
+
* Type guard to check if an object implements the {@link Disposable} interface.
|
|
356
|
+
*
|
|
357
|
+
* @param $unknown - the object to check for the {@link Disposable} interface
|
|
358
|
+
* @returns Whether the object implements the {@link Disposable} interface
|
|
359
|
+
*/
|
|
360
|
+
export declare function isDisposable($unknown: unknown): $unknown is Disposable;
|
|
361
|
+
/**
|
|
362
|
+
* Type guard to check if an object implements the {@link DisposableEx} interface.
|
|
363
|
+
*
|
|
364
|
+
* @param $unknown - the object to check for the {@link DisposableEx} interface
|
|
365
|
+
* @returns Whether the object implements the {@link DisposableEx} interface
|
|
366
|
+
*/
|
|
367
|
+
export declare function isDisposableEx($unknown: unknown): $unknown is DisposableEx;
|
|
368
|
+
/**
|
|
369
|
+
* Adapts a plain {@link AsyncDisposable} into an {@link AsyncDisposableEx} by adding a convenience
|
|
370
|
+
* {@link AsyncDisposableEx.asyncDispose} method that delegates to `Symbol.asyncDispose`.
|
|
371
|
+
*
|
|
372
|
+
* If the object already implements {@link AsyncDisposableEx}, it is returned unchanged.
|
|
373
|
+
*
|
|
374
|
+
* @param asyncDisposable - the async disposable to adapt
|
|
375
|
+
* @returns An {@link AsyncDisposableEx} wrapping the async disposable.
|
|
376
|
+
*/
|
|
377
|
+
export declare function toAsyncDisposableEx(asyncDisposable: AsyncDisposable): AsyncDisposableEx;
|
|
378
|
+
/**
|
|
379
|
+
* Adapts a plain {@link Disposable} into a {@link DisposableEx} by adding a convenience
|
|
380
|
+
* {@link DisposableEx.dispose} method that delegates to `Symbol.dispose`.
|
|
381
|
+
*
|
|
382
|
+
* If the object already implements {@link DisposableEx}, it is returned unchanged.
|
|
383
|
+
*
|
|
384
|
+
* @param disposable - the disposable to adapt
|
|
385
|
+
* @returns A {@link DisposableEx} wrapping the disposable.
|
|
386
|
+
*/
|
|
387
|
+
export declare function toDisposableEx(disposable: Disposable): DisposableEx;
|