Socket
Socket
Sign inDemoInstall

prompt

Package Overview
Dependencies
0
Maintainers
0
Versions
38
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

prompt


Version published
Maintainers
0
Created

Package description

What is prompt?

The 'prompt' npm package is a powerful tool for creating command-line interfaces (CLI) that can interact with users by asking questions and receiving input. It supports various types of prompts, validation, and asynchronous operations.

What are prompt's main functionalities?

Basic Prompt

This feature allows you to prompt the user for basic input. The example code asks for a username and email, then logs the input to the console.

const prompt = require('prompt');
prompt.start();
prompt.get(['username', 'email'], function (err, result) {
  if (err) { return onErr(err); }
  console.log('Command-line input received:');
  console.log('  Username: ' + result.username);
  console.log('  Email: ' + result.email);
});
function onErr(err) {
  console.log(err);
  return 1;
}

Validation

This feature allows you to validate user input based on a schema. The example code ensures that the age input is a number.

const prompt = require('prompt');
prompt.start();
const schema = {
  properties: {
    age: {
      pattern: /^[0-9]+$/,
      message: 'Age must be a number',
      required: true
    }
  }
};
prompt.get(schema, function (err, result) {
  if (err) { return onErr(err); }
  console.log('Command-line input received:');
  console.log('  Age: ' + result.age);
});
function onErr(err) {
  console.log(err);
  return 1;
}

Asynchronous Prompts

This feature allows you to handle prompts asynchronously using async/await. The example code prompts for a username and email, then logs the input.

const prompt = require('prompt');
prompt.start();
async function getUserInput() {
  try {
    const result = await prompt.get(['username', 'email']);
    console.log('Command-line input received:');
    console.log('  Username: ' + result.username);
    console.log('  Email: ' + result.email);
  } catch (err) {
    console.error(err);
  }
}
getUserInput();

Other packages similar to prompt

Readme

Source

PROMPT

What:

A way to request information from the user while a node.js script is running, on the command line, without invoking a REPL. Many languages have something very simple for this sort of thing built-in--for instance, you may have something like this in an early BASIC-ish program:

r = input( 'Give me a radius: ' );
print( 'Your area is '+ pi*r**2  + '!');

To my surprise, node.js didn't have anything quite like this, though it had the tools (process.openStdin) to make something like it. So, with a lot of help, I did.

Install:

npm install prompt

Usage:

There are two ways you can use this module:

1. Like it's 1995

The way most inspired by BASIC, etc. is only different in that it uses callbacks instead of synchronous assignment:

var Prompt = require('prompt');
Prompt('Give me a radius: ', function(r) {
    console.log('Your area is '+ pi*r*r  + '!');
});

As you can see, this mirrors the BASIC style pretty well.

2. Like it's the 2000's

If, however, you want to ask more than one question and would like to avoid nested callbacks, this module also supports method chaining! For example:

var Prompt = require('./prompt');

Prompt()
    .ask('What is your name?', 'name')
    .tap(function (vars) {
        console.log('You said: ' + vars.name);
    })
    .ask('What is your quest?', 'quest')
    .tap(function (vars) {
        console.log('You said: ' + vars.quest);
    })
    .ask('What is your favorite color?', 'color')
    .tap(function (vars) {
        console.log('You said: ' + vars.color);
        console.log('Okay, you may pass!');
    })
    .end();

This variation is much more flexible, and is the recommended way to use Prompt for anything more than a single question. In fact, the BASIC-style may go away soon depending.

Bone-Picking:

Make a github issue and/or pull, write something (even a test that breaks Prompt) and request that I pull.

Authors:

  • Joshua Holbrook ( http://jesusabdullah.github.com/ )
  • Peteris Krumins ( http://catonmat.net )

Licensing:

            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
                    Version 2, December 2004

 Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>

 Everyone is permitted to copy and distribute verbatim or modified
 copies of this license document, and changing it is allowed as long
 as the name is changed.

            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. You just DO WHAT THE FUCK YOU WANT TO.

FAQs

Last updated on 18 Mar 2011

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc