UNPKG

on-one

Version:

Subscribe to one or more events and accept the first emitted

33 lines 1.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return onOne; } }); var isArray = Array.isArray || function(x) { return Object.prototype.toString.call(x) === '[object Array]'; }; function onOne(emitter, nameOrNames, fn) { var names = isArray(nameOrNames) ? nameOrNames : [ nameOrNames ]; var called = false; function wrapper() { if (called) return; called = true; // cleanup names.forEach(function(name) { return emitter.removeListener(name, wrapper); }); // biome-ignore lint/complexity/noArguments: Apply arguments return fn.apply(null, arguments); } names.forEach(function(name) { return emitter.on(name, wrapper); }); } /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }