Current File : /home/tradevaly/www/node_modules/pdfmake/src/traversalTracker.js |
'use strict';
function TraversalTracker() {
this.events = {};
}
TraversalTracker.prototype.startTracking = function (event, callback) {
var callbacks = this.events[event] || (this.events[event] = []);
if (callbacks.indexOf(callback) < 0) {
callbacks.push(callback);
}
};
TraversalTracker.prototype.stopTracking = function (event, callback) {
var callbacks = this.events[event];
if (!callbacks) {
return;
}
var index = callbacks.indexOf(callback);
if (index >= 0) {
callbacks.splice(index, 1);
}
};
TraversalTracker.prototype.emit = function (event) {
var args = Array.prototype.slice.call(arguments, 1);
var callbacks = this.events[event];
if (!callbacks) {
return;
}
callbacks.forEach(function (callback) {
callback.apply(this, args);
});
};
TraversalTracker.prototype.auto = function (event, callback, innerFunction) {
this.startTracking(event, callback);
innerFunction();
this.stopTracking(event, callback);
};
module.exports = TraversalTracker;