UNPKG

golos-lib-js

Version:

Golos-js the JavaScript library with API for GOLOS blockchain

53 lines (52 loc) 1.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.nodeify = nodeify; exports.promisify = promisify; exports.promisifyAll = promisifyAll; class PromiseError { constructor(error) { this.cause = error; this.message = error.message; this.name = error.name || 'Error'; if (error.payload) this.payload = error.payload; this.stack = error.stack; } } function promisify(fn) { return function () { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return new Promise((resolve, reject) => { fn.call(this, ...args, (err, res) => { if (err) reject(err);else resolve(res); }); }); }; } function promisifyAll(obj) { let suffix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'Async'; let keys = Object.getOwnPropertyNames(obj); let ret = new Set(); for (let key of keys) { if (key === 'constructor') continue; var desc = Object.getOwnPropertyDescriptor(obj, key); if (desc != null && desc.get == null && desc.set == null) { ret.add(key); } } for (let key of ret) { obj[key + suffix] = promisify(obj[key]); } } function nodeify(promise, callback) { const isCallback = typeof callback === 'function'; return promise.then(res => { if (isCallback) callback(null, res); return res; }).catch(err => { if (isCallback) callback(err, null);else throw err; }); }