New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@tunnckocore/execa

Package Overview
Dependencies
Maintainers
1
Versions
82
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@tunnckocore/execa

Thin layer on top of `execa` that allows executing multiple commands in parallel or in sequence with control for concurrency

  • 4.5.1
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1.8K
decreased by-6.11%
Maintainers
1
Weekly downloads
 
Created
Source

@tunnckocore/execa

Thin layer on top of execa that allows executing multiple commands in parallel or in sequence with control for concurrency

Install

Requires Node.js v8.11+

yarn add @tunnckocore/execa

API

Generated using jest-runner-docs@v0.1.0.

.exec

Uses [execa][] v2, execa.command() method. As stated there, think of it as mix of child_process's .execFile and .spawn. It is pretty similar to the .shell method too, but only visually because it does not uses the system's shell, meaning it does not have access to the system's environment variables. You also can control concurrency by passing options.concurrency option. For example, pass concurrency: 1 to run in series instead of in parallel which is the default behavior.

Signature

function(cmds, options) 

Params

  • cmds - a commands to execute in parallel or series
  • options - directly passed to [execa][] and so to child_process
  • returns - resolved or rejected promises

It also can accept array of multiple strings of commands that will be executed in series or in parallel (default).

Example

import { exec } from '@tunnckocore/execa';
// or
// const { exec } = require('@tunnckocore/execa');

async function main() {
  await exec('echo "hello world"', { stdio: 'inherit' });

  // executes in series (because `concurrency` option is set to `1`)
  await exec([
    'prettier-eslint --write foobar.js',
    'eslint --format codeframe foobar.js --fix'
  ], { stdio: 'inherit', preferLocal: true, concurrency: 1 });
}

main();

.shell

Similar to exec, but also can access the system's environment variables from the command.

Signature

function(cmds, options) 

Params

  • cmds - a commands to execute in parallel or series
  • options - directly passed to execa
  • returns - resolved or rejected promises

Example

import { shell } from '@tunnckocore/execa';
// or
// const { shell } = require('@tunnckocore/execa');

async function main() {
  // executes in series
  await shell([
    'echo unicorns',
    'echo "foo-$HOME-bar"',
    'echo dragons'
  ], { stdio: 'inherit' });

  // exits with code 3
  try {
    await shell([
      'exit 3',
      'echo nah'
    ]);
  } catch (er) {
    console.error(er);
    // => {
    //  message: 'Command failed: /bin/sh -c exit 3'
    //  killed: false,
    //  code: 3,
    //  signal: null,
    //  cmd: '/bin/sh -c exit 3',
    //  stdout: '',
    //  stderr: '',
    //  timedOut: false
    // }
  }
}

main();

execa

Same as [execa][]'s default export, see its documentation. Think of this as a mix of child_process.execFile() and child_process.spawn().

Signature

function(file, args, options) 

Params

  • file - executable to run
  • args - arguments / flags to be passed to file
  • options - optional options, passed to child_process's methods

Example

import execa from '@tunnckocore/execa'
// or
// const execa = require('@tunnckocore/execa');

async function main() {
  await execa('npm', ['install', '--save-dev', 'react'], { stdio: 'inherit' });
}

main();

Keywords

FAQs

Package last updated on 03 Oct 2019

Did you know?

Socket

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
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc