UNPKG

@onesy/utils

Version:
47 lines (40 loc) 1.29 kB
import is from './is'; const optionsDefault = { onError: 'reject' }; const promisify = function (method) { let options_ = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return async function () { const options = { ...optionsDefault, ...options_ }; if (is('promise', method)) return method; let resolve; let reject; const promise = new Promise((resolve_, reject_) => { resolve = resolve_; reject = reject_; }); const resolveMethod = function () { for (var _len2 = arguments.length, args_ = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args_[_key2] = arguments[_key2]; } const error = args_.find(item => is('error', item)); const response = args_.length <= 1 ? args_[0] : args_; if (error && options.onError === 'reject') return reject(error); return resolve(response); }; if (is('function', method)) { try { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } await method(...args, resolveMethod); } catch (error) { return reject(error); } } else resolve(); return promise; }; }; export default promisify;