mirror of
https://gitea.toothfairyai.com/ToothFairyAI/tf_code.git
synced 2026-03-31 14:22:27 +00:00
13 lines
328 B
TypeScript
13 lines
328 B
TypeScript
export function defer<T extends () => void | Promise<void>>(
|
|
fn: T,
|
|
): T extends () => Promise<void> ? { [Symbol.asyncDispose]: () => Promise<void> } : { [Symbol.dispose]: () => void } {
|
|
return {
|
|
[Symbol.dispose]() {
|
|
fn()
|
|
},
|
|
[Symbol.asyncDispose]() {
|
|
return Promise.resolve(fn())
|
|
},
|
|
} as any
|
|
}
|