mobile-cli-lib
Version:
common lib used by different CLI
35 lines (34 loc) • 1.39 kB
JavaScript
;
var ProcessService = (function () {
function ProcessService() {
this._listeners = [];
}
Object.defineProperty(ProcessService.prototype, "listenersCount", {
get: function () {
return this._listeners.length;
},
enumerable: true,
configurable: true
});
ProcessService.prototype.attachToProcessExitSignals = function (context, callback) {
var _this = this;
var callbackToString = callback.toString();
if (this._listeners.length === 0) {
_.each(ProcessService.PROCESS_EXIT_SIGNALS, function (signal) {
process.on(signal, function () { return _this.executeAllCallbacks.apply(_this); });
});
}
if (!_.some(this._listeners, function (listener) { return context === listener.context && callbackToString === listener.callback.toString(); })) {
this._listeners.push({ context: context, callback: callback });
}
};
ProcessService.prototype.executeAllCallbacks = function () {
_.each(this._listeners, function (listener) {
listener.callback.apply(listener.context);
});
};
ProcessService.PROCESS_EXIT_SIGNALS = ["exit", "SIGINT", "SIGTERM"];
return ProcessService;
}());
exports.ProcessService = ProcessService;
$injector.register("processService", ProcessService);