str/src/util/lifecycle.ts

20 lines
370 B
TypeScript
Raw Normal View History

2025-11-11 05:54:20 +00:00
import {Awaitable} from './types.js'
export type LifecycleCallback = () => Awaitable<unknown>
export type LifecycleAware = {
adoptLifecycle(lifecycle: Lifecycle): void;
}
export class Lifecycle {
private onCloses: LifecycleCallback[] = []
onClose(closure: LifecycleCallback): void {
this.onCloses.push(closure)
}
close() {
this.onCloses.map(x => x())
}
}