export function isPromise(value: unknown): value is Promise { return ( like>(value) && typeof value.then === "function" ) } export function ok(value: unknown, message?: string): asserts value export function ok(value: unknown, message?: string): asserts value is T export function ok(value: unknown, message = "Expected value"): asserts value { if (!value) { throw new Error(message); } } export function isPromiseRejectedResult(value: PromiseSettledResult): value is PromiseRejectedResult { return value.status === "rejected"; } export function like(value: unknown): value is T { return !!value; }