micro-typed-events
Version:
micro-typed-events
34 lines (30 loc) • 992 B
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
function createEvents() {
var listeners = [];
return {
subscribe: function (listener) {
listeners.push(listener);
return function () {
var index = listeners.indexOf(listener);
if (index > -1) {
listeners.splice(index, 1);
}
};
},
emit: function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
// take care of user trying to unsub inside a listener
listeners.slice().forEach(function (listener) {
if (listeners.indexOf(listener) > -1) {
listener.apply(void 0, args);
}
});
},
};
}
exports.createEvents = createEvents;
//# sourceMappingURL=index.js.map