UNPKG

@beenotung/tslib

Version:
46 lines (45 loc) 981 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.promisify = promisify; exports.genPromiseCallback = genPromiseCallback; exports.runFinally = runFinally; async function promisify(f, args = []) { return new Promise((resolve, reject) => { f(...args, (err, res) => { if (err) { reject(err); } else { resolve(res); } }); }); } function genPromiseCallback() { let resolve; let reject; const p = new Promise((res, rej) => { resolve = res; reject = rej; }); const cb = (err, res) => { if (err) { reject(err); } else { resolve(res); } }; return Object.assign(cb, { promise: p }); } async function runFinally(p, cb) { try { return await p; } catch (e) { return Promise.reject(e); } finally { cb(); } }