0.3.2 • Published 6 years ago
email-prompt-ts v0.3.2
email-prompt
CLI email prompt featuring autocompletion and validation.
Powers 𝚫now --login.

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 demoOptions
start(String): the beginning of the prompt. Defaults to> Enter your email:domains(Set): domain names to autocomplete (asString). Defaults to:aol.comgmail.comgoogle.comyahoo.comymail.comhotmail.comlive.comoutlook.cominbox.commail.comgmx.comicloud.comzeit.co
forceLowerCase(Boolean): converts all input to lowercase. Defaults totrue.suggestionColor(String): a chalk color. Defaults tograyautocompleteChars(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 ↵returnabortChars(Set): a set of chars that abort the process. Defaults to Ctrl+CallowInvalidChars(Boolean): controls whether non-email chars are accepted. Defaults tofalse
Notes
Some important implementation details:
email-promptautomatically adapts the mode ofprocess.stdinfor you.- The
stdinstream isresumed andpaused upon the promise being settled. - When the promise resolves or rejects, the previous stdin mode is restored.
- The
ttymode is set toraw, which means all the caret interactions that you come to expect in a regularstdinprompt are simulated. This gives us fine-grained control over the output and powers the validation.
Authors
- Guillermo Rauch (@rauchg) - ▲ZEIT
- Leo Lamprecht (@notquiteleo) - ▲ZEIT
0.3.2
6 years ago