Only ask a question one time and store the answer.
npm install ask-once> Only ask a question one time and store the answer.
Install with npm
``sh`
$ npm i ask-once --save
`js`
var ask = require('ask-once')();
Ask a question
`js`
ask.once('May I have your username?', function (err, answer) {
console.log(answer);
});
The user's answer is saved, and the question won't be asked again unless:
* force: true is passed on the options, or
* the answer is deleted directly
Where are the answers stored?
The user's answers are saved on a global config store that is uniquely identified to the application using ask-once.
Can I change where answers are stored?
Yes, you can pass the name of a data-store with the cwd option set to whatever you want it to be. Here's an example:
`js
// pass the name of a data-store, so you can use
// whatever storage location you want
var ask = require('ask-once')({
store: {
name: 'foo',
cwd: 'bar'
}
});
ask.once('May I have your username?' function (err, answer) {
console.log(answer);
});
`
> To re-ask questions or reset the stored values:
* options.force: will re-ask the given question or questions, regardless of whether or not previously stored values exists.options.init
* : will delete the entire store and start over again.
Returns a question-asking function that only asks a question if the answer is not already stored, or if forced.
Params
* options {Object}options.questions
* {Object}: (optional) Options to be passed to question-cacheoptions.store
* {Object}: (optional) Options to be passed to data-store
Example
`js`
var ask = new Ask({questions: questions});
Set answer key with the given value. Answers are cached in memory on the ask.answers.data object, and they are also persisted to disk.
Params
* key {String}
Example
`js`
ask.set('a', 'b');
console.log(ask.answers.data.a)
//=> 'b'
Get answer key from the answer store.
Params
* key {String}
Example
`js`
ask.set('a', 'b');
ask.get('a');
//=> 'b'
Delete an answer from the answer store.
Params
* key {String|Array|Object}: Pass a string or array of keys, or {force: true} to wipe out the entire store.
Example
`js`
ask.del('foo');
ask.del(['foo', 'bar']);
// delete the entire store
ask.del({force: true});
Ask a question only if the answer is not already stored. If
the answer is passed on the options the question is bypassed
and the answer is be returned.
Params
* question {String}: Key of the question to ask.options
* {Object}: Answers or options to force re-asking questions.cb
* {Function}: Callback function with err and answer.
First time the program is run, the user is prompted to answer a question:

Additional runs of the program will skip prompting the user:

Passing the init option will delete all the stored answers and prompt the user to answer the question again:

Additional runs after clearing the stop will return the newly saved answer:

Passing the force option will force the question to be asked:

Additional runs after forcing the question, will return the newly saved answer:

* data-store: Easily get, set and persist config data. | homepage
* inquirer: A collection of common interactive command line user interfaces. | homepage
* question-cache: A wrapper around inquirer that makes it easy to create and selectively reuse questions. | homepage
* question-helper: Template helper that asks a question in the command line and resolves the template with… more | homepage
Install dev dependencies:
`sh``
$ npm i -d && npm test
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Brian Woodward
Copyright © 2015 Brian Woodward
Released under the MIT license.
*
_This file was generated by verb-cli on October 24, 2015._