@vechain/connex.driver-nodejs
Version:
Connex framework driver implementation in NodeJS
39 lines • 2.32 kB
JavaScript
;
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=