New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

run-versions

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

run-versions

Run a script across multiple versions of an npm package

latest
Source
npmnpm
Version
3.0.0
Version published
Maintainers
1
Created
Source

run-versions

Run a script across multiple versions of an npm package

Install

$ npm install --save run-versions

Usage

var run = require('run-versions')
run({
  name: 'xtend',
  command: 'npm ls xtend',
  versions: ['3.0.0', '4.0.0']
}, done)
//=> done(null, [{version: '3.0.0', passed: true}, {version: '4.0.0', passed: true}])

API

run(options, callback) -> eventEmitter

Iterates through the supplied versions, running the specified shell command at each version. For details on events, see the events documentation.

options

Required
Type: object

Configuration objects for the runner:

name

Required
Type: string

The name of the package to install.

command

Required
Type: string

The command to run on each version.

versions

Required
Type: array[string]

Versions to install and run against.

npm

Type: boolean
Default: false

Set to true to treat the command as an npm script.

child_process

Type: object
Default: {}

Options to pass to spawned child processes.

bail

Type: boolean
Default: false

Call the callback immediately with an error if any test fails.

callback

Required
Type: function
Arguments: err, results

A callback to be called when the run completes. Installation errors are considered fatal, while test errors are only fatal when options.bail is set.

results

Type: array[object]

An array of objects with properties version (string) and passed (boolean) indicating test results.

Events

A script runner is an EventEmitter and emits various events during its lifecycle. These events are:

  • preinstall
  • postinstall
  • prescript
  • postscript
  • result
  • preuninstall
  • postuninstall

All events receive the current version as the first argument. pre events receive the child process used to execute the installation/script/uninstallation as the second argument. The result event receives the test result (pass/fail) as the second argument. post events receive only one argument.

run(config, callback)
  .on('postinstall', function (version) {
    console.log('Installed', version)
  })
  .on('prescript', function (version, child) {
    child.stdout.pipe(process.stdout)
  })

Note that you can use {stdio: 'inherit'} in the child_process option if you'd prefer to pass through all output (install and uninstall logs), not just the script.

License

MIT © Ben Drucker

Keywords

versions

FAQs

Package last updated on 01 Aug 2022

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