pdfmake
Version:
Client/server side PDF printing in pure JavaScript
48 lines (36 loc) • 1.04 kB
JavaScript
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;
;