UNPKG

script-launcher

Version:
72 lines (71 loc) 3.16 kB
"use strict"; 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;