UNPKG

@vechain/connex.driver-nodejs

Version:

Connex framework driver implementation in NodeJS

39 lines 2.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /** class to make promise interruptable */ class PromInt { constructor() { this.rejectors = new Set(); } /** * interrupt all wrapped promises */ interrupt() { const rejectors = this.rejectors; this.rejectors = new Set(); rejectors.forEach(r => r(new InterruptedError())); } /** * wrap the promise * @param p the given promise * @returns the wrapped promise which will raise InterruptedError on interruption */ wrap(p) { return new Promise((resolve, reject) => { const rejectors = this.rejectors; rejectors.add(reject); p.then(resolve) .catch(reject) .then(() => rejectors.delete(reject)); }); } } exports.PromInt = PromInt; class InterruptedError extends Error { constructor() { super('promise interrupted'); } } exports.InterruptedError = InterruptedError; InterruptedError.prototype.name = 'InterruptedError'; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWludC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9taW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsMENBQTBDO0FBQzFDLE1BQWEsT0FBTztJQUFwQjtRQUNZLGNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBd0IsQ0FBQTtJQTJCdkQsQ0FBQztJQXpCRzs7T0FFRztJQUNJLFNBQVM7UUFDWixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFBO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQTtRQUUxQixTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDckQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxJQUFJLENBQUksQ0FBYTtRQUN4QixPQUFPLElBQUksT0FBTyxDQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ3RDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUE7WUFDaEMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUVyQixDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztpQkFDVixLQUFLLENBQUMsTUFBTSxDQUFDO2lCQUNiLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUE7UUFDN0MsQ0FBQyxDQUFDLENBQUE7SUFDTixDQUFDO0NBQ0o7QUE1QkQsMEJBNEJDO0FBRUQsTUFBYSxnQkFBaUIsU0FBUSxLQUFLO0lBQ3ZDO1FBQ0ksS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUE7SUFDaEMsQ0FBQztDQUNKO0FBSkQsNENBSUM7QUFFRCxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLGtCQUFrQixDQUFBIn0=