mirror of
https://github.com/captbaritone/webamp.git
synced 2026-01-23 10:15:31 +00:00
19 lines
437 B
TypeScript
19 lines
437 B
TypeScript
type Teardown = (() => void) | { dispose: () => void };
|
|
|
|
export default class Disposable {
|
|
_teardowns: Teardown[] = [];
|
|
|
|
add(...teardowns: Teardown[]): void {
|
|
this._teardowns.push(...teardowns);
|
|
}
|
|
|
|
dispose() {
|
|
this._teardowns.forEach(teardown => {
|
|
if (typeof teardown === "function") {
|
|
teardown();
|
|
} else if (typeof teardown.dispose === "function") {
|
|
teardown.dispose();
|
|
}
|
|
});
|
|
}
|
|
}
|