send-crypto
Version:
A minimal JavaScript library / wallet for sending crypto assets
64 lines (61 loc) • 3.65 kB
JavaScript
;
// Modified from web3-core-method
Object.defineProperty(exports, "__esModule", { value: true });
exports.newPromiEvent = void 0;
/*
This file is part of web3.js.
web3.js is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
web3.js is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with web3.js. If not, see <http://www.gnu.org/licenses/>.
*/
/**
* @file PromiEvent.js
* @author Fabian Vogelsteller <fabian@ethereum.org>, Samuel Furter <samuel@ethereum.org>
* @date 2018
*/
// tslint:disable: no-any
const events_1 = require("events");
class InternalPromiEvent {
/**
* @constructor
*/
constructor() {
// tslint:disable-next-line: promise-must-complete
this.promise = new Promise((resolve, reject) => {
this.resolve = resolve;
this.reject = reject;
});
this.eventEmitter = new events_1.EventEmitter();
return new Proxy(this, {
get: this.proxyHandler,
});
}
/**
* Proxy handler to call the promise or eventEmitter methods
*/
proxyHandler(target, name) {
if (name === "resolve" || name === "reject") {
return target[name];
}
if (name === "then") {
return target.promise.then.bind(target.promise);
}
if (name === "catch") {
return target.promise.catch.bind(target.promise);
}
if (target.eventEmitter[name]) {
return target.eventEmitter[name];
}
}
}
Symbol.toStringTag;
const newPromiEvent = () => new InternalPromiEvent();
exports.newPromiEvent = newPromiEvent;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWlFdmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcHJvbWlFdmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsaUNBQWlDOzs7QUFFakM7Ozs7Ozs7Ozs7Ozs7OztFQWVFO0FBQ0Y7Ozs7R0FJRztBQUVILHlCQUF5QjtBQUV6QixtQ0FBc0M7QUFFdEMsTUFBTSxrQkFBa0I7SUFrQ3BCOztPQUVHO0lBQ0g7UUFDSSxrREFBa0Q7UUFDbEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUM5QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQXlDLENBQUM7WUFDekQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUkscUJBQVksRUFBRSxDQUFDO1FBRXZDLE9BQU8sSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFO1lBQ25CLEdBQUcsRUFBRSxJQUFJLENBQUMsWUFBWTtTQUN6QixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxZQUFZLENBQUMsTUFBcUIsRUFBRSxJQUFZO1FBQ25ELElBQUksSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQ3pDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3ZCO1FBRUQsSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFO1lBQ2pCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNuRDtRQUVELElBQUksSUFBSSxLQUFLLE9BQU8sRUFBRTtZQUNsQixPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDcEQ7UUFFRCxJQUFLLE1BQWMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDcEMsT0FBUSxNQUFjLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzdDO0lBQ0wsQ0FBQztDQUNKO0FBdEVvQixNQUFNLENBQUMsV0FBVztBQTBFaEMsTUFBTSxhQUFhLEdBQUcsR0FBTSxFQUFFLENBQ2pDLElBQUksa0JBQWtCLEVBQXNCLENBQUM7QUFEcEMsUUFBQSxhQUFhLGlCQUN1QiJ9