UNPKG

send-crypto

Version:

A minimal JavaScript library / wallet for sending crypto assets

84 lines (81 loc) 4.82 kB
// Modified from web3-core-method /* 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 import { EventEmitter } from "events"; class InternalPromiEvent { [Symbol.toStringTag]; promise; // @ts-ignore no initializer because of proxyHandler resolve; // @ts-ignore no initializer because of proxyHandler reject; eventEmitter; // @ts-ignore no initializer because of proxyHandler emit; // @ts-ignore no initializer because of proxyHandler removeListener; // @ts-ignore no initializer because of proxyHandler on; // @ts-ignore no initializer because of proxyHandler once; // @ts-ignore no initializer because of proxyHandler then; // @ts-ignore no initializer because of proxyHandler catch; // @ts-ignore no initializer because of proxyHandler finally; // @ts-ignore no initializer because of proxyHandler listeners; // @ts-ignore no initializer because of proxyHandler eventNames; /** * @constructor */ constructor() { // tslint:disable-next-line: promise-must-complete this.promise = new Promise((resolve, reject) => { this.resolve = resolve; this.reject = reject; }); this.eventEmitter = new 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]; } } } export const newPromiEvent = () => new InternalPromiEvent(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWlFdmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvcHJvbWlFdmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUM7QUFFakM7Ozs7Ozs7Ozs7Ozs7OztFQWVFO0FBQ0Y7Ozs7R0FJRztBQUVILHlCQUF5QjtBQUV6QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRXRDLE1BQU0sa0JBQWtCO0lBQ0osQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQVk7SUFDaEMsT0FBTyxDQUFhO0lBQ3BDLG9EQUFvRDtJQUM3QyxPQUFPLENBQXNCO0lBQ3BDLG9EQUFvRDtJQUM3QyxNQUFNLENBQXlCO0lBQ3RCLFlBQVksQ0FBZTtJQUUzQyxvREFBb0Q7SUFDcEMsSUFBSSxDQUF1QjtJQUMzQyxvREFBb0Q7SUFDcEMsY0FBYyxDQUFpQztJQUMvRCxvREFBb0Q7SUFDcEMsRUFBRSxDQUdSO0lBQ1Ysb0RBQW9EO0lBQ3BDLElBQUksQ0FHVjtJQUNWLG9EQUFvRDtJQUNwQyxJQUFJLENBQXFCO0lBQ3pDLG9EQUFvRDtJQUNwQyxLQUFLLENBQXNCO0lBQzNDLG9EQUFvRDtJQUNwQyxPQUFPLENBQXdCO0lBQy9DLG9EQUFvRDtJQUNwQyxTQUFTLENBQTRCO0lBQ3JELG9EQUFvRDtJQUNwQyxVQUFVLENBQTZCO0lBRXZEOztPQUVHO0lBQ0g7UUFDSSxrREFBa0Q7UUFDbEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUM5QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQXlDLENBQUM7WUFDekQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFdkMsT0FBTyxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUU7WUFDbkIsR0FBRyxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQ3pCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7T0FFRztJQUNJLFlBQVksQ0FBQyxNQUFxQixFQUFFLElBQVk7UUFDbkQsSUFBSSxJQUFJLEtBQUssU0FBUyxJQUFJLElBQUksS0FBSyxRQUFRLEVBQUU7WUFDekMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdkI7UUFFRCxJQUFJLElBQUksS0FBSyxNQUFNLEVBQUU7WUFDakIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ25EO1FBRUQsSUFBSSxJQUFJLEtBQUssT0FBTyxFQUFFO1lBQ2xCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNwRDtRQUVELElBQUssTUFBYyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNwQyxPQUFRLE1BQWMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDN0M7SUFDTCxDQUFDO0NBQ0o7QUFJRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBTSxFQUFFLENBQ2pDLElBQUksa0JBQWtCLEVBQXNCLENBQUMifQ==