\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12837}{}\doxysection{Inquirer.\+js}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12837}
\href{http://badge.fury.io/js/inquirer}{\texttt{ }} \href{http://travis-ci.org/SBoudrias/Inquirer.js}{\texttt{ }} \href{https://codecov.io/gh/SBoudrias/Inquirer.js}{\texttt{ }} \href{https://app.fossa.com/projects/git\%2Bgithub.com\%2FSBoudrias\%2FInquirer.js?ref=badge_shield}{\texttt{ }}

A collection of common interactive command line user interfaces.\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12838}{}\doxysubsection{Table of Contents}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12838}

\begin{DoxyEnumerate}
\item \href{\#documentation}{\texttt{ Documentation}}
\begin{DoxyEnumerate}
\item \href{\#installation}{\texttt{ Installation}}
\item \href{\#examples}{\texttt{ Examples}}
\item \href{\#methods}{\texttt{ Methods}}
\item \href{\#objects}{\texttt{ Objects}}
\item \href{\#questions}{\texttt{ Questions}}
\item \href{\#answers}{\texttt{ Answers}}
\item \href{\#separator}{\texttt{ Separator}}
\item \href{\#prompt}{\texttt{ Prompt Types}}
\end{DoxyEnumerate}
\item \href{\#layouts}{\texttt{ User Interfaces and Layouts}}
\begin{DoxyEnumerate}
\item \href{\#reactive}{\texttt{ Reactive Interface}}
\end{DoxyEnumerate}
\item \href{\#support}{\texttt{ Support}}
\item \href{\#issues}{\texttt{ Known issues}}
\end{DoxyEnumerate}
\begin{DoxyEnumerate}
\item \href{\#news}{\texttt{ News}}
\item \href{\#contributing}{\texttt{ Contributing}}
\item \href{\#license}{\texttt{ License}}
\item \href{\#plugins}{\texttt{ Plugins}}
\end{DoxyEnumerate}\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12839}{}\doxysubsection{Goal and Philosophy}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12839}
$\ast$$\ast${\ttfamily Inquirer.\+js}$\ast$$\ast$ strives to be an easily embeddable and beautiful command line interface for \href{https://nodejs.org/}{\texttt{ Node.\+js}} (and perhaps the \char`\"{}\+CLI \mbox{[}\+Xanadu\mbox{]}(https\+://en.\+wikipedia.\+org/wiki/\+Citizen\+\_\+\+Kane)\char`\"{}).

$\ast$$\ast${\ttfamily Inquirer.\+js}$\ast$$\ast$ should ease the process of


\begin{DoxyItemize}
\item providing {\itshape error feedback}
\item {\itshape asking questions}
\item {\itshape parsing} input
\item {\itshape validating} answers
\item managing {\itshape hierarchical prompts}
\end{DoxyItemize}

\begin{quote}
{\bfseries{Note\+:}} $\ast$$\ast${\ttfamily Inquirer.\+js}$\ast$$\ast$ provides the user interface and the inquiry session flow. If you\textquotesingle{}re searching for a full blown command line program utility, then check out \href{https://github.com/visionmedia/commander.js}{\texttt{ commander}}, \href{https://github.com/dthree/vorpal}{\texttt{ vorpal}} or \href{https://github.com/leo/args}{\texttt{ args}}. \end{quote}
\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12840}{}\doxysubsection{$<$a href=\char`\"{}\#documentation\char`\"{}$>$\+Documentation$<$/a$>$}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12840}
\label{_documentation}%
\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12841}{}\doxysubsubsection{Installation}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12841}
\label{_installation}%



\begin{DoxyCode}{0}
\DoxyCodeLine{npm install inquirer }

\end{DoxyCode}



\begin{DoxyCode}{0}
\DoxyCodeLine{var inquirer = require('inquirer');}
\DoxyCodeLine{inquirer}
\DoxyCodeLine{  .prompt([}
\DoxyCodeLine{    /* Pass your questions in here */}
\DoxyCodeLine{  ])}
\DoxyCodeLine{  .then(answers => \{}
\DoxyCodeLine{    // Use user feedback for... whatever!!}
\DoxyCodeLine{  \})}
\DoxyCodeLine{  .catch(error => \{}
\DoxyCodeLine{    if(error.isTtyError) \{}
\DoxyCodeLine{      // Prompt couldn't be rendered in the current environment}
\DoxyCodeLine{    \} else \{}
\DoxyCodeLine{      // Something else when wrong}
\DoxyCodeLine{    \}}
\DoxyCodeLine{  \}); }

\end{DoxyCode}


\label{_examples}%
\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12842}{}\doxysubsubsection{Examples (\+Run it and see it)}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12842}
Check out the \href{https://github.com/SBoudrias/Inquirer.js/tree/master/packages/inquirer/examples}{\texttt{ {\ttfamily packages/inquirer/examples/}}} folder for code and interface examples.


\begin{DoxyCode}{0}
\DoxyCodeLine{node packages/inquirer/examples/pizza.js}
\DoxyCodeLine{node packages/inquirer/examples/checkbox.js}
\DoxyCodeLine{\# etc... }

\end{DoxyCode}
\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12843}{}\doxysubsubsection{Methods}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12843}
\label{_methods}%
\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12844}{}\doxyparagraph{$<$tt$>$inquirer.\+prompt(questions) -\/$>$ promise$<$/tt$>$}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12844}
Launch the prompt interface (inquiry session)


\begin{DoxyItemize}
\item {\bfseries{questions}} (Array) containing \href{\#question}{\texttt{ Question Object}} (using the \href{\#reactive-interface}{\texttt{ reactive interface}}, you can also pass a {\ttfamily Rx.\+Observable} instance)
\item returns a {\bfseries{Promise}}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12845}{}\doxyparagraph{$<$tt$>$inquirer.\+register\+Prompt(name, prompt)$<$/tt$>$}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12845}
Register prompt plugins under {\ttfamily name}.


\begin{DoxyItemize}
\item {\bfseries{name}} (string) name of the this new prompt. (used for question {\ttfamily type})
\item {\bfseries{prompt}} (object) the prompt object itself (the plugin)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12846}{}\doxyparagraph{$<$tt$>$inquirer.\+create\+Prompt\+Module() -\/$>$ prompt function$<$/tt$>$}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12846}
Create a self contained inquirer module. If you don\textquotesingle{}t want to affect other libraries that also rely on inquirer when you overwrite or add new prompt types.


\begin{DoxyCode}{0}
\DoxyCodeLine{var prompt = inquirer.createPromptModule();}
\DoxyCodeLine{}
\DoxyCodeLine{prompt(questions).then(/* ... */); }

\end{DoxyCode}
\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12847}{}\doxysubsubsection{Objects}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12847}
\label{_objects}%
\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12848}{}\doxyparagraph{Question}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12848}
\label{_questions}%
 A question object is a {\ttfamily hash} containing question related values\+:


\begin{DoxyItemize}
\item {\bfseries{type}}\+: (String) Type of the prompt. Defaults\+: {\ttfamily input} -\/ Possible values\+: {\ttfamily input}, {\ttfamily number}, {\ttfamily confirm}, {\ttfamily list}, {\ttfamily rawlist}, {\ttfamily expand}, {\ttfamily checkbox}, {\ttfamily password}, {\ttfamily editor}
\item {\bfseries{name}}\+: (String) The name to use when storing the answer in the answers hash. If the name contains periods, it will define a path in the answers hash.
\item {\bfseries{message}}\+: (String$\vert$\+Function) The question to print. If defined as a function, the first parameter will be the current inquirer session answers. Defaults to the value of {\ttfamily name} (followed by a colon).
\item {\bfseries{default}}\+: (String$\vert$\+Number$\vert$\+Boolean$\vert$\+Array$\vert$\+Function) Default value(s) to use if nothing is entered, or a function that returns the default value(s). If defined as a function, the first parameter will be the current inquirer session answers.
\item {\bfseries{choices}}\+: (Array$\vert$\+Function) Choices array or a function returning a choices array. If defined as a function, the first parameter will be the current inquirer session answers. Array values can be simple {\ttfamily numbers}, {\ttfamily strings}, or {\ttfamily objects} containing a {\ttfamily name} (to display in list), a {\ttfamily value} (to save in the answers hash), and a {\ttfamily short} (to display after selection) properties. The choices array can also contain \href{\#separator}{\texttt{ a {\ttfamily Separator}}}.
\item {\bfseries{validate}}\+: (Function) Receive the user input and answers hash. Should return {\ttfamily true} if the value is valid, and an error message ({\ttfamily String}) otherwise. If {\ttfamily false} is returned, a default error message is provided.
\item {\bfseries{filter}}\+: (Function) Receive the user input and answers hash. Returns the filtered value to be used inside the program. The value returned will be added to the {\itshape Answers} hash.
\item {\bfseries{transformer}}\+: (Function) Receive the user input, answers hash and option flags, and return a transformed value to display to the user. The transformation only impacts what is shown while editing. It does not modify the answers hash.
\item {\bfseries{when}}\+: (Function, Boolean) Receive the current user answers hash and should return {\ttfamily true} or {\ttfamily false} depending on whether or not this question should be asked. The value can also be a simple boolean.
\item {\bfseries{page\+Size}}\+: (Number) Change the number of lines that will be rendered when using {\ttfamily list}, {\ttfamily raw\+List}, {\ttfamily expand} or {\ttfamily checkbox}.
\item {\bfseries{prefix}}\+: (String) Change the default {\itshape prefix} message.
\item {\bfseries{suffix}}\+: (String) Change the default {\itshape suffix} message.
\item {\bfseries{ask\+Answered}}\+: (Boolean) Force to prompt the question if the answer already exists.
\item {\bfseries{loop}}\+: (Boolean) Enable list looping. Defaults\+: {\ttfamily true}
\end{DoxyItemize}

{\ttfamily default}, {\ttfamily choices}(if defined as functions), {\ttfamily validate}, {\ttfamily filter} and {\ttfamily when} functions can be called asynchronously. Either return a promise or use {\ttfamily this.\+async()} to get a callback you\textquotesingle{}ll call with the final value.


\begin{DoxyCode}{0}
\DoxyCodeLine{\{}
\DoxyCodeLine{  /* Preferred way: with promise */}
\DoxyCodeLine{  filter() \{}
\DoxyCodeLine{    return new Promise(/* etc... */);}
\DoxyCodeLine{  \},}
\DoxyCodeLine{}
\DoxyCodeLine{  /* Legacy way: with this.async */}
\DoxyCodeLine{  validate: function (input) \{}
\DoxyCodeLine{    // Declare function as asynchronous, and save the done callback}
\DoxyCodeLine{    var done = this.async();}
\DoxyCodeLine{}
\DoxyCodeLine{    // Do async stuff}
\DoxyCodeLine{    setTimeout(function() \{}
\DoxyCodeLine{      if (typeof input !== 'number') \{}
\DoxyCodeLine{        // Pass the return value in the done callback}
\DoxyCodeLine{        done('You need to provide a number');}
\DoxyCodeLine{        return;}
\DoxyCodeLine{      \}}
\DoxyCodeLine{      // Pass the return value in the done callback}
\DoxyCodeLine{      done(null, true);}
\DoxyCodeLine{    \}, 3000);}
\DoxyCodeLine{  \}}
\DoxyCodeLine{\} }

\end{DoxyCode}
\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12849}{}\doxysubsubsection{Answers}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12849}
\label{_answers}%
 A key/value hash containing the client answers in each prompt.


\begin{DoxyItemize}
\item {\bfseries{Key}} The {\ttfamily name} property of the {\itshape question} object
\item {\bfseries{Value}} (Depends on the prompt)
\begin{DoxyItemize}
\item {\ttfamily confirm}\+: (Boolean)
\item {\ttfamily input} \+: User input (filtered if {\ttfamily filter} is defined) (String)
\item {\ttfamily number}\+: User input (filtered if {\ttfamily filter} is defined) (Number)
\item {\ttfamily rawlist}, {\ttfamily list} \+: Selected choice value (or name if no value specified) (String)
\end{DoxyItemize}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12850}{}\doxysubsubsection{Separator}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12850}
\label{_separator}%
 A separator can be added to any {\ttfamily choices} array\+:


\begin{DoxyCode}{0}
\DoxyCodeLine{// In the question object}
\DoxyCodeLine{choices: [ "{}Choice A"{}, new inquirer.Separator(), "{}choice B"{} ]}
\DoxyCodeLine{}
\DoxyCodeLine{// Which'll be displayed this way}
\DoxyCodeLine{[?] What do you want to do?}
\DoxyCodeLine{ > Order a pizza}
\DoxyCodeLine{   Make a reservation}
\DoxyCodeLine{   -\/-\/-\/-\/-\/-\/-\/-\/}
\DoxyCodeLine{   Ask opening hours}
\DoxyCodeLine{   Talk to the receptionist }

\end{DoxyCode}


The constructor takes a facultative {\ttfamily String} value that\textquotesingle{}ll be use as the separator. If omitted, the separator will be {\ttfamily -\/-\/-\/-\/-\/-\/-\/-\/}.

Separator instances have a property {\ttfamily type} equal to {\ttfamily separator}. This should allow tools façading Inquirer interface from detecting separator types in lists.

\label{_prompt}%
\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12851}{}\doxysubsubsection{Prompt types}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12851}
\DoxyHorRuler{0}


\begin{quote}
{\bfseries{Note\+:}}\+: \+\_\+allowed options written inside square brackets ({\ttfamily \mbox{[}\mbox{]}}) are optional. Others are required.\+\_\+ \end{quote}
\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12853}{}\doxyparagraph{List -\/ ‘\{type\+: \textquotesingle{}list’\}\`{}}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12853}
Take {\ttfamily type}, {\ttfamily name}, {\ttfamily message}, {\ttfamily choices}\mbox{[}, {\ttfamily default}, {\ttfamily filter}, {\ttfamily loop}\mbox{]} properties. (Note that default must be the choice {\ttfamily index} in the array or a choice {\ttfamily value})



\DoxyHorRuler{0}
\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12855}{}\doxyparagraph{Raw List -\/ ‘\{type\+: \textquotesingle{}rawlist’\}\`{}}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12855}
Take {\ttfamily type}, {\ttfamily name}, {\ttfamily message}, {\ttfamily choices}\mbox{[}, {\ttfamily default}, {\ttfamily filter}, {\ttfamily loop}\mbox{]} properties. (Note that default must be the choice {\ttfamily index} in the array)



\DoxyHorRuler{0}
\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12857}{}\doxyparagraph{Expand -\/ ‘\{type\+: \textquotesingle{}expand’\}\`{}}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12857}
Take {\ttfamily type}, {\ttfamily name}, {\ttfamily message}, {\ttfamily choices}\mbox{[}, {\ttfamily default}\mbox{]} properties. (Note that default must be the choice {\ttfamily index} in the array. If {\ttfamily default} key not provided, then {\ttfamily help} will be used as default choice)

Note that the {\ttfamily choices} object will take an extra parameter called {\ttfamily key} for the {\ttfamily expand} prompt. This parameter must be a single (lowercased) character. The {\ttfamily h} option is added by the prompt and shouldn\textquotesingle{}t be defined by the user.

See {\ttfamily examples/expand.\+js} for a running example.

 

\DoxyHorRuler{0}
\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12859}{}\doxyparagraph{Checkbox -\/ ‘\{type\+: \textquotesingle{}checkbox’\}\`{}}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12859}
Take {\ttfamily type}, {\ttfamily name}, {\ttfamily message}, {\ttfamily choices}\mbox{[}, {\ttfamily filter}, {\ttfamily validate}, {\ttfamily default}, {\ttfamily loop}\mbox{]} properties. {\ttfamily default} is expected to be an Array of the checked choices value.

Choices marked as {\ttfamily \{checked\+: true\}} will be checked by default.

Choices whose property {\ttfamily disabled} is truthy will be unselectable. If {\ttfamily disabled} is a string, then the string will be outputted next to the disabled choice, otherwise it\textquotesingle{}ll default to {\ttfamily \char`\"{}\+Disabled\char`\"{}}. The {\ttfamily disabled} property can also be a synchronous function receiving the current answers as argument and returning a boolean or a string.



\DoxyHorRuler{0}
\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12861}{}\doxyparagraph{Confirm -\/ ‘\{type\+: \textquotesingle{}confirm’\}\`{}}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12861}
Take {\ttfamily type}, {\ttfamily name}, {\ttfamily message}, \mbox{[}{\ttfamily default}\mbox{]} properties. {\ttfamily default} is expected to be a boolean if used.



\DoxyHorRuler{0}
\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12863}{}\doxyparagraph{Input -\/ ‘\{type\+: \textquotesingle{}input’\}\`{}}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12863}
Take {\ttfamily type}, {\ttfamily name}, {\ttfamily message}\mbox{[}, {\ttfamily default}, {\ttfamily filter}, {\ttfamily validate}, {\ttfamily transformer}\mbox{]} properties.



\DoxyHorRuler{0}
\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12865}{}\doxyparagraph{Input -\/ ‘\{type\+: \textquotesingle{}number’\}\`{}}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12865}
Take {\ttfamily type}, {\ttfamily name}, {\ttfamily message}\mbox{[}, {\ttfamily default}, {\ttfamily filter}, {\ttfamily validate}, {\ttfamily transformer}\mbox{]} properties.

\DoxyHorRuler{0}
\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12867}{}\doxyparagraph{Password -\/ ‘\{type\+: \textquotesingle{}password’\}\`{}}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12867}
Take {\ttfamily type}, {\ttfamily name}, {\ttfamily message}, {\ttfamily mask},\mbox{[}, {\ttfamily default}, {\ttfamily filter}, {\ttfamily validate}\mbox{]} properties.



\DoxyHorRuler{0}


Note that {\ttfamily mask} is required to hide the actual user input.\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12869}{}\doxyparagraph{Editor -\/ ‘\{type\+: \textquotesingle{}editor’\}\`{}}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12869}
Take {\ttfamily type}, {\ttfamily name}, {\ttfamily message}\mbox{[}, {\ttfamily default}, {\ttfamily filter}, {\ttfamily validate}\mbox{]} properties

Launches an instance of the users preferred editor on a temporary file. Once the user exits their editor, the contents of the temporary file are read in as the result. The editor to use is determined by reading the \$\+VISUAL or \$\+EDITOR environment variables. If neither of those are present, notepad (on Windows) or vim (Linux or Mac) is used.

\label{_layouts}%
\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12870}{}\doxysubsubsection{Use in Non-\/\+Interactive Environments}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12870}
{\ttfamily prompt()} requires that it is run in an interactive environment. (I.\+e. \href{https://nodejs.org/docs/latest-v12.x/api/process.html\#process_a_note_on_process_i_o}{\texttt{ One where {\ttfamily process.\+stdin.\+is\+TTY} is {\ttfamily true}}}). If {\ttfamily prompt()} is invoked outside of such an environment, then {\ttfamily prompt()} will return a rejected promise with an error. For convenience, the error will have a {\ttfamily is\+Tty\+Error} property to programmatically indicate the cause.\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12871}{}\doxysubsection{User Interfaces and layouts}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12871}
Along with the prompts, Inquirer offers some basic text UI.\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12872}{}\doxyparagraph{Bottom Bar -\/ $<$tt$>$inquirer.\+ui.\+Bottom\+Bar$<$/tt$>$}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12872}
This UI present a fixed text at the bottom of a free text zone. This is useful to keep a message to the bottom of the screen while outputting command outputs on the higher section.


\begin{DoxyCode}{0}
\DoxyCodeLine{var ui = new inquirer.ui.BottomBar();}
\DoxyCodeLine{}
\DoxyCodeLine{// pipe a Stream to the log zone}
\DoxyCodeLine{outputStream.pipe(ui.log);}
\DoxyCodeLine{}
\DoxyCodeLine{// Or simply write output}
\DoxyCodeLine{ui.log.write('something just happened.');}
\DoxyCodeLine{ui.log.write('Almost over, standby!');}
\DoxyCodeLine{}
\DoxyCodeLine{// During processing, update the bottom bar content to display a loader}
\DoxyCodeLine{// or output a progress bar, etc}
\DoxyCodeLine{ui.updateBottomBar('new bottom bar content'); }

\end{DoxyCode}


\label{_reactive}%
\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12873}{}\doxysubsection{Reactive interface}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12873}
Internally, Inquirer uses the \href{https://github.com/ReactiveX/rxjs}{\texttt{ JS reactive extension}} to handle events and async flows.

This mean you can take advantage of this feature to provide more advanced flows. For example, you can dynamically add questions to be asked\+:


\begin{DoxyCode}{0}
\DoxyCodeLine{var prompts = new Rx.Subject();}
\DoxyCodeLine{inquirer.prompt(prompts);}
\DoxyCodeLine{}
\DoxyCodeLine{// At some point in the future, push new questions}
\DoxyCodeLine{prompts.next(\{}
\DoxyCodeLine{  /* question... */}
\DoxyCodeLine{\});}
\DoxyCodeLine{prompts.next(\{}
\DoxyCodeLine{  /* question... */}
\DoxyCodeLine{\});}
\DoxyCodeLine{}
\DoxyCodeLine{// When you're done}
\DoxyCodeLine{prompts.complete(); }

\end{DoxyCode}


And using the return value {\ttfamily process} property, you can access more fine grained callbacks\+:


\begin{DoxyCode}{0}
\DoxyCodeLine{inquirer.prompt(prompts).ui.process.subscribe(onEachAnswer, onError, onComplete); }

\end{DoxyCode}
\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12874}{}\doxysubsection{Support (\+OS Terminals)}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12874}
\label{_support}%


You should expect mostly good support for the CLI below. This does not mean we won\textquotesingle{}t look at issues found on other command line -\/ feel free to report any!


\begin{DoxyItemize}
\item {\bfseries{Mac OS}}\+:
\begin{DoxyItemize}
\item Terminal.\+app
\item i\+Term
\end{DoxyItemize}
\item {\bfseries{Windows (\href{\#issues}{\texttt{ Known issues}})}}\+:
\begin{DoxyItemize}
\item \href{https://conemu.github.io/}{\texttt{ Con\+Emu}}
\item cmd.\+exe
\item Powershell
\item Cygwin
\end{DoxyItemize}
\item {\bfseries{Linux (Ubuntu, open\+SUSE, Arch Linux, etc)}}\+:
\begin{DoxyItemize}
\item gnome-\/terminal (Terminal GNOME)
\item konsole
\end{DoxyItemize}
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12875}{}\doxysubsection{Know issues}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12875}
\label{_issues}%


Running Inquirer together with network streams in Windows platform inside some terminals can result in process hang. Workaround\+: run inside another terminal. Please refer to the \href{https://github.com/nodejs/node/issues/21771}{\texttt{ https\+://github.\+com/nodejs/node/issues/21771}}\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12876}{}\doxysubsection{News on the march (\+Release notes)}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12876}
\label{_news}%


Please refer to the \href{https://github.com/SBoudrias/Inquirer.js/releases}{\texttt{ Git\+Hub releases section for the changelog}}\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12877}{}\doxysubsection{Contributing}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12877}
\label{_contributing}%


{\bfseries{Unit test}} Unit test are written in \href{https://mochajs.org/}{\texttt{ Mocha}}. Please add a unit test for every new feature or bug fix. {\ttfamily npm test} to run the test suite.

{\bfseries{Documentation}} Add documentation for every API change. Feel free to send typo fixes and better docs!

We\textquotesingle{}re looking to offer good support for multiple prompts and environments. If you want to help, we\textquotesingle{}d like to keep a list of testers for each terminal/\+OS so we can contact you and get feedback before release. Let us know if you want to be added to the list (just tweet to \href{https://twitter.com/Vaxilart}{\texttt{ @vaxilart}}) or just add your name to \href{https://github.com/SBoudrias/Inquirer.js/wiki/Testers}{\texttt{ the wiki}}\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12878}{}\doxysubsection{License}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12878}
\label{_license}%


Copyright (c) 2016 Simon Boudrias (twitter\+: \href{https://twitter.com/Vaxilart}{\texttt{ @vaxilart}}) Licensed under the MIT license.\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12879}{}\doxysubsection{Plugins}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12879}
\label{_plugins}%
\hypertarget{md_sfcode_node_modules_inquirer_README_autotoc_md12880}{}\doxysubsubsection{Prompts}\label{md_sfcode_node_modules_inquirer_README_autotoc_md12880}
\href{https://github.com/mokkabonna/inquirer-autocomplete-prompt}{\texttt{ {\bfseries{autocomplete}}}}~\newline
 Presents a list of options as the user types, compatible with other packages such as fuzzy (for search)~\newline
 ~\newline
 

\href{https://github.com/faressoft/inquirer-checkbox-plus-prompt}{\texttt{ {\bfseries{checkbox-\/plus}}}}~\newline
 Checkbox list with autocomplete and other additions~\newline
 ~\newline
 

\href{https://github.com/DerekTBrown/inquirer-datepicker-prompt}{\texttt{ {\bfseries{datetime}}}}~\newline
 Customizable date/time selector using both number pad and arrow keys~\newline
 ~\newline
 

\href{https://github.com/adam-golab/inquirer-select-line}{\texttt{ {\bfseries{inquirer-\/select-\/line}}}}~\newline
 Prompt for selecting index in array where add new element~\newline
 ~\newline
 

\href{https://github.com/sullof/inquirer-command-prompt}{\texttt{ {\bfseries{command}}}}~\newline
 Simple prompt with command history and dynamic autocomplete~\newline


\href{https://github.com/adelsz/inquirer-fuzzy-path}{\texttt{ {\bfseries{inquirer-\/fuzzy-\/path}}}}~\newline
 Prompt for fuzzy file/directory selection.~\newline
 ~\newline
 

\href{https://github.com/tannerntannern/inquirer-emoji}{\texttt{ {\bfseries{inquirer-\/emoji}}}}~\newline
 Prompt for inputting emojis.~\newline
 ~\newline
 

\href{https://github.com/LitoMore/inquirer-chalk-pipe}{\texttt{ {\bfseries{inquirer-\/chalk-\/pipe}}}}~\newline
 Prompt for input chalk-\/pipe style strings~\newline
 ~\newline
 

\href{https://github.com/clinyong/inquirer-search-checkbox}{\texttt{ {\bfseries{inquirer-\/search-\/checkbox}}}}~\newline
 Searchable Inquirer checkbox~\newline


\href{https://github.com/robin-rpr/inquirer-search-list}{\texttt{ {\bfseries{inquirer-\/search-\/list}}}}~\newline
 Searchable Inquirer list~\newline
 ~\newline
 

\href{https://github.com/olistic/inquirer-prompt-suggest}{\texttt{ {\bfseries{inquirer-\/prompt-\/suggest}}}}~\newline
 Inquirer prompt for your less creative users.~\newline
 ~\newline
 

\href{https://github.com/HQarroum/inquirer-s3}{\texttt{ {\bfseries{inquirer-\/s3}}}}~\newline
 An S3 object selector for Inquirer.~\newline
 ~\newline
 

\href{https://github.com/yaodingyd/inquirer-autosubmit-prompt}{\texttt{ {\bfseries{inquirer-\/autosubmit-\/prompt}}}}~\newline
 Auto submit based on your current input, saving one extra enter~\newline


\href{https://github.com/anc95/inquirer-file-tree-selection}{\texttt{ {\bfseries{inquirer-\/file-\/tree-\/selection-\/prompt}}}}~\newline
 Inquirer prompt for to select a file or directory in file tree~\newline
 ~\newline
 

\href{https://github.com/eduardoboucas/inquirer-table-prompt}{\texttt{ {\bfseries{inquirer-\/table-\/prompt}}}}~\newline
 A table-\/like prompt for Inquirer.~\newline
 ~\newline
  