1.1.1 • Published 9 years ago

curious-cli v1.1.1

Weekly downloads
3
License
MIT
Repository
github
Last release
9 years ago

Curious

Curious is a tiny library for asking for user input without the hassle of opening readline and avoids callback hell by asking for input declaratively.

npm install curious-cli

Examples

Package initialization

const semver = require('semver')

let config = await curious.askObject({
  name: {
    description: "Name",
    required: true,
    validate: (val) => val.match(/[a-z0-9-]+/) != -1
  },
  version: {
    description: "Version",
    defaultValue: "1.0.0",
    validate: semver.valid
  },
  desription: {
    description: "Description"
  },
  repository: {
    description: "Repository",
  }
})

Terminal output:

Name: 
Description:
Version [1.0.0]: 
Repository: 

Result:

{ name: "foobar", 
  description: "Foobar is the most awesome package you will ever see.",
  version: "1.0.0",
  repository: "http://github.com/foobarjs/foobar" }

Ask for some URLs

let urls = await curious.askList("Enter a URL: ", {
  value: {
    required: true
  },
  terminator: '.' // implicit
})
console.log(urls)

API

All functions return a promise that resolves to the validated value the user entered.

curious.askElement(question, array, prettyfier?)

Let the user pick an element out of the given array, using the optionally specified prettyfier to pretty-print the elements.

curious.askValue(definition)

Ask the user for a single primitive value. definition is an object with the following attributes:

  • description: text to display required
  • required: are empty values allowed? default: false
  • validate: extra predicate for checking validity of input

curious.askObject(description)

Ask the user for a JavaScript object. The description is an object mapping keys to type definitions as seen in curious.askValue.

curious.askList(description)

Ask the user for several values of the same type.

:warning: This method is currently not working as described.

  • terminator: value to enter to terminate the list default .
  • value: a type definition as described in curious.askValue.

curious.confirm(question)

Confirm a certain action, with question being the text that is displayed. A boolean value indicates if the user confirmed (true) or unconfirmed (false).

Support

If you found a bug or want an extra feature please open an issue on GitHub.

1.1.1

9 years ago

1.1.0

9 years ago

1.0.4

9 years ago

1.0.3

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago