Skip to content

If argument is not present ask for it. Returns a promise.

Notifications You must be signed in to change notification settings

codealchemist/askument

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

askument

If argument is not present ask for it. Returns a promise.

Install

npm install --save askument

Usage

  • Will ask for missing param 'id':
const params = {}
const promise = askument('id', 'Provide an ID:', params) // asks: Provide an ID:
  • Will ask default question for missing param 'id':
const params = {}
const promise = askument('id', params) // asks: id?
  • Will resolve to existing value without asking:
const params = {id: 'xer389i9ads8'}
const promise = askument('id', 'Provide an ID:', params) // doesn't ask, resolves to 'xer389i9ads8'

Plays well with minimist

askument is a good companion for minimist. See both of them in action:

const args = require('minimist')(process.argv.slice(2))
const askument = require('askument')

// ask for id if not set in arguments, or resolve to provided value when set
askument('id', args).then((id) => {
  console.log(`Provided ID: ${id}`)
})

Resolving multiple arguments

When you want to get multiple arguments you need to ensure they run in series because you can't read from the command line more than once at a time. Luckily for us there's p-series, a good friend of askument, which will help us get each argument in series.

Example:

const promises = [
  () => askument('id', args),
  () => askument('range', args),
  () => askument('title', args)
]

// Ensure we get required arguments resolving promises in series.
series(promises).then((results) => {
  const id = results[0]
  const range = results[1]
  const title = results[2]
  console.log('- Provided ID:', id)
  console.log('- Provided Range:', range)
  console.log('- Provided Title:', title)
})

Why?

I wanted a dead simple way to ensure an argument is provided letting the user input it interactively instead of displaying the typical usage description.

About

If argument is not present ask for it. Returns a promise.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published