24 lines
		
	
	
		
			846 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			846 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
"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
 |