"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const emittery_1 = __importDefault(require("emittery")); class AsyncEventEmitter extends emittery_1.default { constructor({ captureRejections = false } = {}) { super(); this.captureRejections = captureRejections; } once(event, listener) { if (!listener) return super.once(event); const unsubscribe = this.on(event, async (data) => { unsubscribe(); return listener(data); }); return Promise.resolve(); } emit(eventName, ...args) { const emitPromise = super.emit(eventName, ...args); if (this.captureRejections && eventName !== 'error') emitPromise.catch(reason => this.emit('error', reason)); return emitPromise; } } exports.default = AsyncEventEmitter; module.exports = exports.default; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtZXZlbnQtZW1pdHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9hc3luYy1ldmVudC1lbWl0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsd0RBQWdDO0FBRWhDLE1BQXFCLGlCQUFrQixTQUFRLGtCQUFRO0lBR25ELFlBQW9CLEVBQUUsaUJBQWlCLEdBQUcsS0FBSyxFQUFFLEdBQUcsRUFBRTtRQUNsRCxLQUFLLEVBQUUsQ0FBQztRQUVSLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztJQUMvQyxDQUFDO0lBRU0sSUFBSSxDQUFFLEtBQWEsRUFBRSxRQUFtQjtRQUMzQyxJQUFJLENBQUMsUUFBUTtZQUNULE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUMsSUFBSSxFQUFDLEVBQUU7WUFDNUMsV0FBVyxFQUFFLENBQUM7WUFFZCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTSxJQUFJLENBQUUsU0FBaUIsRUFBRSxHQUFHLElBQWU7UUFDOUMsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUVuRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxTQUFTLEtBQUssT0FBTztZQUMvQyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUU1RCxPQUFPLFdBQVcsQ0FBQztJQUN2QixDQUFDO0NBQ0o7QUE5QkQsb0NBOEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEVtaXR0ZXJ5IGZyb20gJ2VtaXR0ZXJ5JztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQXN5bmNFdmVudEVtaXR0ZXIgZXh0ZW5kcyBFbWl0dGVyeSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXB0dXJlUmVqZWN0aW9uczogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciAoeyBjYXB0dXJlUmVqZWN0aW9ucyA9IGZhbHNlIH0gPSB7fSkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMuY2FwdHVyZVJlamVjdGlvbnMgPSBjYXB0dXJlUmVqZWN0aW9ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgb25jZSAoZXZlbnQ6IHN0cmluZywgbGlzdGVuZXI/OiBGdW5jdGlvbik6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGlmICghbGlzdGVuZXIpXG4gICAgICAgICAgICByZXR1cm4gc3VwZXIub25jZShldmVudCk7XG5cbiAgICAgICAgY29uc3QgdW5zdWJzY3JpYmUgPSB0aGlzLm9uKGV2ZW50LCBhc3luYyBkYXRhID0+IHtcbiAgICAgICAgICAgIHVuc3Vic2NyaWJlKCk7XG5cbiAgICAgICAgICAgIHJldHVybiBsaXN0ZW5lcihkYXRhKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBlbWl0IChldmVudE5hbWU6IHN0cmluZywgLi4uYXJnczogdW5rbm93bltdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGVtaXRQcm9taXNlID0gc3VwZXIuZW1pdChldmVudE5hbWUsIC4uLmFyZ3MpO1xuXG4gICAgICAgIGlmICh0aGlzLmNhcHR1cmVSZWplY3Rpb25zICYmIGV2ZW50TmFtZSAhPT0gJ2Vycm9yJylcbiAgICAgICAgICAgIGVtaXRQcm9taXNlLmNhdGNoKHJlYXNvbiA9PiB0aGlzLmVtaXQoJ2Vycm9yJywgcmVhc29uKSk7XG5cbiAgICAgICAgcmV0dXJuIGVtaXRQcm9taXNlO1xuICAgIH1cbn1cbiJdfQ==