import {Awaitable} from './types.js' export type LifecycleCallback = () => Awaitable 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()) } }