helper-prompt
v1.3.1
Published
Async helper that prompts the user for input then uses the answers to render templates. Must be registered with a library that supports async helpers, like assemble or generate. After that it should work with handlebars, lo-dash or any other node.js engin
Downloads
3
Maintainers
Readme
helper-prompt
Async helper that prompts the user for input then uses the answers to render templates. Must be registered with a library that supports async helpers, like assemble or generate. After that it should work with handlebars, lo-dash or any other node.js engine that supports helper functions.
Install
Install with npm:
$ npm install --save helper-prompt
How it works
- Prompts you for input
- If "answered", a second prompt asks if you want to save the answer (this can be skipped)
- If "yes", the answer is persisted to a local data store, and the prompt will be skipped the next time the same question is asked.
This is really simple and basic at the moment, it would probably be good to keep it that way. There are lots of interesting things we can do with prompts and templates, but it would be better to do those things with custom implementations.
Usage
Register as an async helper with assemble, generate, templates or any library that uses async-helpers.
var prompt = require('helper-prompt');
var assemble = require('assemble');
var app = assemble();
// "app" can be any of the mentioned libraries above
app.asyncHelper('prompt', prompt());
Example
var templates = require('templates');
var app = templates();
app.engine('hbs', require('engine-handlebars'));
app.asyncHelper('prompt', prompt({save: false}));
app.create('pages');
app.page('example.hbs', 'My name is: {{prompt "What is your name?"}}');
app.render('example.hbs', function(err, view) {
if (err) {
console.log(err);
process.exit(1);
}
console.log(view.contents.toString());
//=> 'My name is: Jon'
});
Prompt types
Currently only the following prompt types are supported:
Any prompt options may be defined using hash arguments.
Options
options.save
Type: boolean
Default: undefined
By default, you will be prompted to confirm whether or not an answer value should be persisted. You can disable this by setting options.save
to false.
var prompt = require('helper-prompt');
var assemble = require('assemble');
var app = assemble();
app.asyncHelper('prompt', prompt({save: false}));
options.prompt
Type: boolean
Default: undefined
Don't skip the prompt, regardless of whether or not the answer was persisted. This is especially useful when argv
is passed to helper options.
This is different from save
in that it forces the prompt to be presented, it does not have any effect on whether or not the answer value is persisted.
var prompt = require('helper-prompt');
var minimist = require('minimist')(process.argv.slice(2));
var assemble = require('assemble');
var app = assemble();
// $ your-app --prompt
app.asyncHelper('prompt', prompt(argv));
Data store
Answer values are persisted using data-store. Options are passed to that library, so you'll need to visit the data-store docs to see all available options and features.
Here is an example of how to change the path of the data store:
// persist answers to a local folder in "data/prompt-answers.json"
prompt({path: 'data/prompt-answers.json'});
About
Related projects
- enquirer: Intuitive, plugin-based prompt system for node.js. Much faster and lighter alternative to Inquirer, with all… more | homepage
- prompt-base: Base prompt module used for creating custom prompts. | homepage
- prompt-checkbox: Multiple-choice/checkbox prompt. Can be used standalone or with a prompt system like [Enquirer]. | homepage
- prompt-confirm: Confirm (yes/no) prompt. Can be used standalone or with a prompt system like [Enquirer]. | homepage
Contributing
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Please read the contributing guide for advice on opening issues, pull requests, and coding standards.
Building docs
(This project's readme.md is generated by verb, please don't edit the readme directly. Any changes to the readme must be made in the .verb.md readme template.)
To generate the readme, run the following command:
$ npm install -g verbose/verb#dev verb-generate-readme && verb
Running tests
Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
$ npm install && npm test
Author
Jon Schlinkert
License
Copyright © 2017, Jon Schlinkert. Released under the MIT License.
This file was generated by verb-generate-readme, v0.6.0, on May 28, 2017.