sinotron
Version:
Simple framework for Typescript Electron projects
37 lines (36 loc) • 1.07 kB
JavaScript
import * as childProc from 'node:child_process';
import { logError } from './log.js';
export const ProcessUtil = {
spawn: async (command, args = [], opts) => {
let mOpts = {
cwd: process.cwd(),
...opts,
shell: true,
stdio: 'inherit'
};
return new Promise((resolve, reject) => {
const process = childProc.spawn(command, args, mOpts);
if (process.stdout) {
process.stdout.on('data', (data) => {
console.log(data);
});
}
if (process.stderr) {
process.stderr.on('data', (data) => {
logError(data);
});
}
process.on('error', (err) => {
logError(err.message);
});
process.on('close', (code) => {
if (code === 0) {
resolve();
}
else {
reject();
}
});
});
}
};