youzanyun-devtool-worker
Version:
98 lines (97 loc) • 3.23 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const child_process_1 = require("child_process");
const spring4js_nodejs_1 = require("spring4js-nodejs");
let ExecuteService = class ExecuteService {
constructor() {
}
async start() {
}
promiseExec(cmd, options) {
return new Promise((resolve, reject) => {
options.windowsHide = true;
options.env = process.env;
(0, child_process_1.exec)(cmd, options, (error, stdout, stderr) => {
if (error) {
console.log('error', error);
reject(error);
return;
}
if (stderr) {
console.log('stderr', stderr);
reject(stderr);
return;
}
resolve(stdout);
});
});
}
promiseExecFile(file, args = [], options = {}) {
return new Promise((resolve, reject) => {
options.windowsHide = true;
options.env = process.env;
(0, child_process_1.execFile)(file, args, options, (error, stdout, stderr) => {
if (error) {
console.log('error', error);
reject(error);
return;
}
if (stderr) {
console.log('stderr', stderr);
reject(stderr);
return;
}
resolve(stdout);
});
});
}
promiseSpawm(cmd, args = [], options = {}, log) {
return new Promise((resolve, reject) => {
options.stdio = 'pipe';
options.windowsHide = true;
options.env = process.env;
let error_cache = '';
const ls = (0, child_process_1.spawn)(cmd, args, options);
ls.on('error', (err) => {
if (log) {
log.report(`err ${err}`);
}
console.log(err);
reject(err);
});
if (ls.stdout) {
ls.stdout.on('data', (data) => {
if (log) {
log.report(data.toString('utf-8'));
}
console.log(data.toString('utf-8'));
});
}
if (ls.stderr) {
ls.stderr.on('data', (data) => {
if (log) {
log.report(data.toString('utf-8'));
}
console.error(data.toString('utf-8'));
error_cache += data.toString('utf-8');
});
}
ls.on('close', (code) => {
if (log) {
log.report(`code:${code}`);
}
if (+code === 0) {
resolve(code);
}
else {
reject(error_cache);
}
});
});
}
};
ExecuteService = tslib_1.__decorate([
(0, spring4js_nodejs_1.Service)()
], ExecuteService);
exports.default = ExecuteService;