script-launcher
Version:
Script Launcher
72 lines (71 loc) • 3.16 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
var spawn = require("cross-spawn");
var logger_1 = require("./logger");
var common_1 = require("./common");
var Process = /** @class */ (function () {
function Process(childProcess) {
this.pid = childProcess.pid;
this.exitPromise = new Promise(function (resolve, reject) {
try {
childProcess.on('exit', function (code, signal) {
logger_1.Logger.debug(''.padEnd(64, '-'));
logger_1.Logger.debug('Process exited : pid=' + childProcess.pid + ' code=' + code + ' signal=' + signal);
logger_1.Logger.debug();
logger_1.Logger.debug();
resolve(code);
});
childProcess.on('error', function (error) {
logger_1.Logger.debug(''.padEnd(64, '-'));
logger_1.Logger.debug('Process error : pid=' + childProcess.pid + (" code=" + error));
logger_1.Logger.debug();
logger_1.Logger.debug();
reject(error);
});
}
catch (error) {
logger_1.Logger.debug(''.padEnd(64, '-'));
logger_1.Logger.error('Process failed : pid=' + childProcess.pid + (" failed to attach event emitters, " + error + "."));
logger_1.Logger.debug();
logger_1.Logger.debug();
reject(error);
}
});
}
Process.spawn = function (command, args, options) {
if (logger_1.Logger.level > 2 && options) {
options = __assign({}, options);
options.stdio = 'pipe';
}
var process = spawn(command, args, options);
logger_1.Logger.log('Spawn process : ' + common_1.Colors.Green + '"' + command + '"' + common_1.Colors.Normal, args);
logger_1.Logger.log('Process dir : ' + common_1.Colors.Green + '"' + options.cwd + '"' + common_1.Colors.Normal);
if (logger_1.Logger.level > 2) {
logger_1.Logger.debug('Process pid : ' + common_1.Colors.Yellow + process.pid + common_1.Colors.Normal);
logger_1.Logger.debug(''.padEnd(64, '-'));
Process.showOutputData(process);
}
return new Process(process);
};
Process.showOutputData = function (childProcess) {
childProcess.stdout.on('data', function (data) {
logger_1.Logger.debug(common_1.Colors.Dim + common_1.Colors.Italic + data.toString().trim() + common_1.Colors.Normal);
});
};
Process.prototype.wait = function () {
return this.exitPromise;
};
return Process;
}());
exports.Process = Process;