JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 3525
  • Score
    100M100P100Q122122F
  • License MIT

CLI email prompt with autocompletion and built-in validation

Package Exports

  • email-prompt

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (email-prompt) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

email-prompt

CLI email prompt featuring autocompletion and validation. Powers vercel --login.

prompt

Usage

import emailPrompt from 'email-prompt';

let email;

try {
  email = await emailPrompt({
    /* options */
  });
} catch (err) {
  console.log('\n> Aborted!');
  return;
}

console.log('\n> Hello ' + email);

To run the demo, clone the project and run:

npm install
node demo

Options

  • start (String): the beginning of the prompt. Defaults to > Enter your email:
  • domains (Set): domain names to autocomplete (as String). Defaults to:
    • aol.com
    • gmail.com
    • google.com
    • yahoo.com
    • ymail.com
    • hotmail.com
    • live.com
    • outlook.com
    • inbox.com
    • mail.com
    • gmx.com
    • icloud.com
    • hey.com
    • zeit.co
    • vercel.com
  • forceLowerCase (Boolean): converts all input to lowercase. Defaults to true.
  • suggestionColor (String): a chalk color. Defaults to gray
  • autocompleteChars (Set): a set of chars that trigger autocompletion. Defaults to:
    • ↹ Tab
    • ↵ Return (enter)
    • → Right arrow
  • resolveChars (Set): a set of chars that resolve the promise. Defaults to ↵return
  • abortChars (Set): a set of chars that abort the process. Defaults to Ctrl+C
  • allowInvalidChars (Boolean): controls whether non-email chars are accepted. Defaults to false

Notes

Some important implementation details:

  • email-prompt automatically adapts the mode of process.stdin for you.
  • The stdin stream is resumed and paused upon the promise being settled.
  • When the promise resolves or rejects, the previous stdin mode is restored.
  • The tty mode is set to raw, which means all the caret interactions that you come to expect in a regular stdin prompt are simulated. This gives us fine-grained control over the output and powers the validation.

Authors