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

curious-cli

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

curious-cli

Ask user for input from the command-line declaratively

  • 1.1.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
1
Maintainers
1
Weekly downloads
 
Created
Source

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.

Keywords

FAQs

Package last updated on 09 Jul 2016

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