index.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. var inq = require('inquirer'),
  2. es = require('event-stream');
  3. module.exports = {
  4. prompt: function(questions, callback){
  5. var prompted = false;
  6. return es.map(function(file, cb){
  7. if(prompted===true){
  8. cb(null,file);
  9. return;
  10. }
  11. if(!questions instanceof Array){
  12. questions = [questions];
  13. }
  14. if(typeof callback !== 'function'){
  15. callback = function(){};
  16. }
  17. inq.prompt(questions, function(res){
  18. callback(res);
  19. cb(null, file);
  20. });
  21. prompted = true;
  22. });
  23. },
  24. confirm: function(options){
  25. var prompted = false;
  26. return es.map(function(file, cb){
  27. if(prompted===true){
  28. cb(null,file);
  29. return;
  30. }
  31. var opts = {
  32. type: 'confirm',
  33. name: 'val',
  34. message: 'Are you sure?',
  35. default: false
  36. };
  37. if(typeof options === 'string'){
  38. opts.message = options;
  39. }
  40. if(typeof options !== 'object'){
  41. options = {};
  42. }
  43. opts.message = options.message || opts.message;
  44. opts.default = options.default || opts.default;
  45. inq.prompt([opts], function(res){
  46. if(res.val){
  47. cb(null, file);
  48. }
  49. });
  50. prompted = true;
  51. });
  52. },
  53. inq: inq
  54. };