You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
846 B
24 lines
846 B
"use strict"; |
|
Object.defineProperty(exports, "__esModule", { value: true }); |
|
function once(emitter, name, { signal } = {}) { |
|
return new Promise((resolve, reject) => { |
|
function cleanup() { |
|
signal === null || signal === void 0 ? void 0 : signal.removeEventListener('abort', cleanup); |
|
emitter.removeListener(name, onEvent); |
|
emitter.removeListener('error', onError); |
|
} |
|
function onEvent(...args) { |
|
cleanup(); |
|
resolve(args); |
|
} |
|
function onError(err) { |
|
cleanup(); |
|
reject(err); |
|
} |
|
signal === null || signal === void 0 ? void 0 : signal.addEventListener('abort', cleanup); |
|
emitter.on(name, onEvent); |
|
emitter.on('error', onError); |
|
}); |
|
} |
|
exports.default = once; |
|
//# sourceMappingURL=index.js.map
|