Rust-like Command wrapper over node.js child_process
It provides simple & unified builder for Node.js child_process
- Inherits parent's environment.
- Inherits parent's current directory.
-
spawn - Equal to
child_process.spawn
orchild_process.spawnSync
. -
exec - Equal to
child_process.exec
orchild_process.execSync
. -
execFile - Equal to
child_process.execFile
orchild_process.execFileSync
. -
output - Equal to
child_process.spawnSync
but returns only status, stdout and stderr. -
status - Equal to
child_process.execSync
but returns only status.
By default Command executes asynchronously.
In order to configure command for synchronous execution you need to call method sync
For example to perform exec synchronously:
const status = require('lazy-command.js')('git -status').sync().exec()
For asynchronous version you need to omit sync.
const status = require('lazy-command.js')('git -status').exec()
Setting of callback is optional but method callback can be used to provide it.
The signature of callback is the same as for any corresponding child_process functions.
For example:
const cb = (err, stdout, stderr) => {
console.log("Err=%s | stdout=%s | stderr=%s", err, stdout, stderr);
};
const status = require('lazy-command.js')('git -status').callback(cb).exec()
const Command = require('lazy-command.js');
const result = Command("git -status").encoding('utf-8').output();
console.log("status=% | stdout=%s | stderr=%s",
result.status, result.stdout, result.stderr);
const Command = require('lazy-command.js');
const result = Command("git -status").stdio_ignore().status();;
console.log("Status=%s", result);
const Command = require('lazy-command.js');
const result = Command("git").stdio_ignore()
.arg("-status")
.current_dir("lib/");
.timeout(1000)
.status();;
console.log("Status=%s", result);