Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

action-selector

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

action-selector

Select actions from the given configuration

  • 1.0.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1.6K
increased by2.99%
Maintainers
1
Weekly downloads
 
Created
Source

action-selector v1.0.2

CI codecov

Select actions from the given configuration

Install

npm install action-selector

Usage

See the example below:

const { select } = require('action-selector')
const argv = require('minimist')(process.argv.slice(2))

const actions = {
  'action:help': () => showHelpMessage(),
  'action:version': () => showVersionNumber(),
  'action:build': () => buildSomething(),
}

select(actions, {
  help: argv.help || argv._[0] === 'help',
  version: argv.version || argv._[0] === 'version',
  [argv._[0]]: true,
})
.on('action', action => action(argv))
.on('no-action', name => console.log(`No such action: ${name}`))

With the above example, the command maps like the below:

node command.js --help    # => help action
node command.js help      # => help action
node command.js --version # => version action
node command.js version   # => version action
node command.js build     # => build action
node command.js explode   # => No such action: explode

API

const { select } = require('action-selector')

select(object, config)

  • @param {Object} object The object from which the selector look up the action
  • @param {Object} config The config by which the selector look up the action
  • @return {EventEmitter}

The selector look up the function in object.

The rule is:

  • Checks each key of config from the top
  • The first key which has truthy value in config is the name of the chosen action.
  • Then check action:${actionName} key in object.
  • If action:${actionName} exists in object then that is the action and emits action event with it.
  • If action:${actionName} doesn't exist in object then emits no-action event with the missing action's name.

History

  • 2017-06-19 v1.0.1 Support node.js v4.

License

MIT

Keywords

FAQs

Package last updated on 21 Jul 2020

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