UNPKG

mobile-cli-lib

Version:
35 lines (34 loc) 1.39 kB
"use strict"; 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);