You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

68 lines
1.8 KiB

"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.installCustomExitHook = installCustomExitHook;
exports.installExitHooks = installExitHooks;
function _xdl() {
const data = require("xdl");
_xdl = function () {
return data;
};
return data;
}
function _log() {
const data = _interopRequireDefault(require("../../log"));
_log = function () {
return data;
};
return data;
}
function _ora() {
const data = require("../../utils/ora");
_ora = function () {
return data;
};
return data;
}
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function installExitHooks(projectRoot) {
const killSignals = ['SIGINT', 'SIGTERM'];
for (const signal of killSignals) {
process.on(signal, () => {
const currentSpinner = _log().default.getSpinner();
if (currentSpinner) {
currentSpinner.fail();
_log().default.setSpinner(null);
}
const currentProgress = _log().default.getProgress();
if (currentProgress) {
currentProgress.terminate();
_log().default.setBundleProgressBar(null);
}
const spinner = (0, _ora().ora)({
text: 'Stopping server',
color: 'white'
}).start();
_log().default.setSpinner(spinner);
_xdl().Project.stopAsync(projectRoot).then(() => {
spinner.stopAndPersist({
text: 'Stopped server',
symbol: `\u203A`
});
process.exit();
}).catch(error => {
spinner.fail('Failed to stop server');
_log().default.error(error);
});
});
}
}
function installCustomExitHook(listener) {
const killSignals = ['SIGINT', 'SIGTERM'];
for (const signal of killSignals) {
process.on(signal, listener);
}
}
//# sourceMappingURL=installExitHooks.js.map