@freemework/common
Version:
Common library of the Freemework Project.
23 lines (22 loc) • 881 B
TypeScript
import "./tc39.js";
export declare abstract class FDisposable {
[Symbol.asyncDispose](): Promise<void>;
abstract dispose(): Promise<void>;
static disposeAll(...instances: ReadonlyArray<FDisposable>): Promise<void>;
static instanceOf(test: unknown): test is FDisposable;
}
export declare abstract class FDisposableBase extends FDisposable {
private _disposed?;
private _disposingPromise?;
get disposed(): boolean;
get disposing(): boolean;
dispose(): Promise<void>;
protected abstract onDispose(): void | Promise<void>;
protected verifyNotDisposed(): void;
}
export declare class FDisposableMixin extends FDisposableBase {
static applyMixin(targetClass: any): void;
protected onDispose(): void | Promise<void>;
private constructor();
}
export declare function makeDisposable(dispose: () => void | Promise<void>): FDisposable;