Files
2026-02-10 01:14:19 +00:00

24 lines
476 B
JavaScript

//#region src/index.ts
/**
* Gracefully handles a callback that returns a promise.
*
* @example
* await until(() => Promise.resolve(123))
* // [null, 123]
*
* await until(() => Promise.reject(new Error('Oops!')))
* // [new Error('Oops!'), null]
*/
async function until(callback) {
try {
return [null, await callback().catch((error) => {
throw error;
})];
} catch (error) {
return [error, null];
}
}
//#endregion
export { until };
//# sourceMappingURL=index.js.map