121 lines
4.1 KiB
JavaScript
Executable File
121 lines
4.1 KiB
JavaScript
Executable File
(function(f) {
|
|
if (typeof exports === "object" && typeof module !== "undefined") {
|
|
module.exports = f()
|
|
} else if (typeof define === "function" && define.amd) {
|
|
define([], f)
|
|
} else {
|
|
var g;
|
|
if (typeof window !== "undefined") {
|
|
g = window
|
|
} else if (typeof global !== "undefined") {
|
|
g = global
|
|
} else if (typeof self !== "undefined") {
|
|
g = self
|
|
} else {
|
|
g = this
|
|
}
|
|
g.TinyEmitter = f()
|
|
}
|
|
}
|
|
)(function() {
|
|
var define, module, exports;
|
|
return (function e(t, n, r) {
|
|
function s(o, u) {
|
|
if (!n[o]) {
|
|
if (!t[o]) {
|
|
var a = typeof require == "function" && require;
|
|
if (!u && a)
|
|
return a(o, !0);
|
|
if (i)
|
|
return i(o, !0);
|
|
var f = new Error("Cannot find module '" + o + "'");
|
|
throw f.code = "MODULE_NOT_FOUND",
|
|
f
|
|
}
|
|
var l = n[o] = {
|
|
exports: {}
|
|
};
|
|
t[o][0].call(l.exports, function(e) {
|
|
var n = t[o][1][e];
|
|
return s(n ? n : e)
|
|
}, l, l.exports, e, t, n, r)
|
|
}
|
|
return n[o].exports
|
|
}
|
|
var i = typeof require == "function" && require;
|
|
for (var o = 0; o < r.length; o++)
|
|
s(r[o]);
|
|
return s
|
|
}
|
|
)({
|
|
1: [function(require, module, exports) {
|
|
function E() {// Keep this empty so it's easier to inherit from
|
|
// (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)
|
|
}
|
|
|
|
E.prototype = {
|
|
on: function(name, callback, ctx) {
|
|
var e = this.e || (this.e = {});
|
|
|
|
(e[name] || (e[name] = [])).push({
|
|
fn: callback,
|
|
ctx: ctx
|
|
});
|
|
|
|
return this;
|
|
},
|
|
|
|
once: function(name, callback, ctx) {
|
|
var self = this;
|
|
function listener() {
|
|
self.off(name, listener);
|
|
callback.apply(ctx, arguments);
|
|
}
|
|
;
|
|
listener._ = callback
|
|
return this.on(name, listener, ctx);
|
|
},
|
|
|
|
emit: function(name) {
|
|
var data = [].slice.call(arguments, 1);
|
|
var evtArr = ((this.e || (this.e = {}))[name] || []).slice();
|
|
var i = 0;
|
|
var len = evtArr.length;
|
|
|
|
for (i; i < len; i++) {
|
|
evtArr[i].fn.apply(evtArr[i].ctx, data);
|
|
}
|
|
|
|
return this;
|
|
},
|
|
|
|
off: function(name, callback) {
|
|
var e = this.e || (this.e = {});
|
|
var evts = e[name];
|
|
var liveEvents = [];
|
|
|
|
if (evts && callback) {
|
|
for (var i = 0, len = evts.length; i < len; i++) {
|
|
if (evts[i].fn !== callback && evts[i].fn._ !== callback)
|
|
liveEvents.push(evts[i]);
|
|
}
|
|
}
|
|
|
|
// Remove event from queue to prevent memory leak
|
|
// Suggested by https://github.com/lazd
|
|
// Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910
|
|
|
|
(liveEvents.length) ? e[name] = liveEvents : delete e[name];
|
|
|
|
return this;
|
|
}
|
|
};
|
|
|
|
module.exports = E;
|
|
module.exports.TinyEmitter = E;
|
|
|
|
}
|
|
, {}]
|
|
}, {}, [1])(1)
|
|
});
|