Socket
Socket
Sign inDemoInstall

split-cmd

Package Overview
Dependencies
0
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    split-cmd

💦Split a command into an array or an object


Version published
Weekly downloads
660
decreased by-46.69%
Maintainers
1
Install size
9.32 kB
Created
Weekly downloads
 

Readme

Source

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

Keywords

FAQs

Last updated on 21 Dec 2023

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc