import type { MaybePromise } from '../types/commons.ts' // TODO: use async disposable? export type Closable = { close(): MaybePromise } export const isClosable = (value: unknown): value is Closable => { return ( typeof value === 'object' && value !== null && 'close' in value && typeof (value as Closable).close === 'function' ) }