split-cmd
💦 Split a command into an array or an object
Useful for splitting a command to use with NodeJS' child process methods, like spawn, exec, and execFile, as well with libs like execa. No external dependencies.
Install
npm install --save split-cmd
Examples
Splitting into an array
var split = require( 'split-cmd' ).split;
var arr = split( 'git commit -m "some message with spaces"' );
console.log( arr );
Splitting into an object
var splitToObject = require( 'split-cmd' ).splitToObject;
var obj = splitToObject( 'git commit -m "some message with spaces"' );
console.log( obj.command );
console.log( obj.args );
Using it with execa
const { splitToObject } = require( 'split-cmd' );
const execa = require( 'execa' );
const obj = splitToObject( 'echo "I see unicorns"' );
execa( obj.command, obj.args )
.then( result => console.log( result.stdout ) )
.catch( error => console.log( error ) );
[
'echo "I see unicorns"',
'mkdir foo',
'touch foo/bar.txt'
]
.map( s => splitToObject( s ) )
.forEach( obj => {
execa( obj.command, obj.args )
.then( result => console.log( result.stdout ) )
.catch( error => console.log( error ) );
} );
API
split( command: string ): string[]
splitToObject( command: string ): object
License
MIT © Thiago Delgado Pinto