UNPKG

@aurora-cli/utils

Version:

aurora-cli utils

83 lines (71 loc) 1.75 kB
'use strict'; const cp = require('child_process'); const spawn = require('cross-spawn'); const fs = require('fs'); const Spinner = require('cli-spinner').Spinner; function isObject(o) { return Object.prototype.toString.call(o) === '[object Object]'; } function spinnerStart(msg, spinnerString = '|/-\\') { const spinner = new Spinner(`${msg} %s`); spinner.setSpinnerString(spinnerString); spinner.start(); return spinner; } async function sleep(timeout = 1000) { return await new Promise(resolve => setTimeout(resolve, timeout)); } // function spawn(command, args, options) { // const win32 = process.platform === 'win32'; // if (win32) { // command = 'cmd'; // args = ['/c'].concat(command, args); // } // return cp.spawn(command, args, options); // } function spawnAsync(command, args, options) { // return new Promise((resolve, reject) => { // const p = spawn(command, args, options); // p.on('error', (e) => { // reject(e); // }); // p.on('exit', (c) => { // resolve(c); // }); // }); return spawn.sync(command, args, options); } function readFile(path, options = {}) { if (path && fs.existsSync(path)) { const buffer = fs.readFileSync(path); if (buffer) { if (options.toJson) { return buffer.toJSON(); } else { return buffer.toString(); } } } return null; } function writeFile(path, data, { rewrite = true } = {}) { if (fs.existsSync(path)) { if (rewrite) { fs.writeFileSync(path, data); return true; } return false; } else { fs.writeFileSync(path, data); return true; } } module.exports = { isObject, spinnerStart, sleep, spawn, spawnAsync, readFile, writeFile, };