UNPKG

utila

Version:
58 lines (50 loc) 1.31 kB
// Generated by CoffeeScript 1.6.3 var Emitter; module.exports = Emitter = (function() { function Emitter() { this._listeners = {}; } Emitter.prototype.on = function(eventName, listener) { if (this._listeners[eventName] == null) { this._listeners[eventName] = []; } this._listeners[eventName].push(listener); return this; }; Emitter.prototype.once = function(eventName, listener) { var cb, ran, _this = this; ran = false; cb = function() { if (ran) { return; } ran = true; listener(); return setTimeout(function() { return _this.off(eventName, cb); }, 0); }; this.on(eventName, cb); return this; }; Emitter.prototype.off = function(eventName, listener) { if (this._listeners[eventName] == null) { return this; } this._listeners[eventName].splice(this._listeners[eventName].indexOf(listener), 1); return this; }; Emitter.prototype._emit = function(eventName, data) { var listener, _i, _len, _ref; if (this._listeners[eventName] == null) { return; } _ref = this._listeners[eventName]; for (_i = 0, _len = _ref.length; _i < _len; _i++) { listener = _ref[_i]; listener.call(this, data); } }; return Emitter; })();