split-cmd
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

npm (tag) Build Status License npm

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.

⚡ Just 0.4 KB uncompressed, no external dependencies.

🎯 Version 1.1+ works with NodeJS, DenoJS and browsers. JavaScript and TypeScript.

Installation

npm i split-cmd

Usage

Splitting into an array

import { split } from 'split-cmd';

const arr = split( 'git commit -m "some message with spaces"' );

console.log( arr ); // [ "git", "commit", "-m", "some message with spaces" ]

Splitting into an object

import { splitToObject } from 'split-cmd';

const obj = splitToObject( 'git commit -m "some message with spaces"' );

console.log( obj.command ); // git
console.log( obj.args ); // [ "commit", "-m", "some message with spaces" ]

Using it with execa

import { splitToObject } from 'split-cmd';
import { execa } from 'execa';

// Executing a single command
const obj = splitToObject( 'echo "I see unicorns"' );
execa( obj.command, obj.args )
    .then( result => console.log( result.stdout ) ) // I see unicorns
    .catch( error => console.log( error ) );

// Executing multiple commands in batch
[
    '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 a command into an array.
 *
 * @param {string} command Command to split.
 * @returns {Array}
 */
split( command: string ): string[]

/**
 * Split a command into an object with the attributes `command` and `args`.
 *
 *
 * @param {string} command Command to split.
 * @returns {object}
 */
splitToObject( command: string ): { command?: string, args?: string[] }

License

MIT © Thiago Delgado Pinto

Package Sidebar

Install

npm i split-cmd

Weekly Downloads

958

Version

1.1.0

License

MIT

Unpacked Size

9.54 kB

Total Files

9

Last publish

Collaborators

  • thiagodp