inquiries.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /**
  2. * @license Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. 'use strict';
  6. const inquirer = require( 'inquirer' );
  7. const DEFAULT_PLUGIN_NAME_PREFIX = 'ckeditor5-';
  8. const DEFAULT_PLUGIN_VERSION = '0.0.1';
  9. const DEFAULT_GITHUB_URL_PREFIX = 'ckeditor/';
  10. module.exports = {
  11. getPluginName() {
  12. return new Promise( ( resolve ) => {
  13. inquirer.prompt( [ {
  14. name: 'pluginName',
  15. message: 'Enter plugin name without ' + DEFAULT_PLUGIN_NAME_PREFIX + ' prefix:',
  16. validate: ( input ) => {
  17. const regexp = /^[\w-]+$/;
  18. return regexp.test( input ) ? true : 'Please provide a valid plugin name.';
  19. }
  20. } ], ( answers ) => {
  21. resolve( DEFAULT_PLUGIN_NAME_PREFIX + answers.pluginName );
  22. } );
  23. } );
  24. },
  25. getPluginVersion( ) {
  26. return new Promise( ( resolve ) => {
  27. inquirer.prompt( [ {
  28. name: 'version',
  29. message: 'Enter plugin\'s initial version:',
  30. default: DEFAULT_PLUGIN_VERSION
  31. } ], ( answers ) => {
  32. resolve( answers.version );
  33. } );
  34. } );
  35. },
  36. getPluginGitHubUrl( pluginName ) {
  37. const defaultGitHubUrl = DEFAULT_GITHUB_URL_PREFIX + pluginName;
  38. return new Promise( ( resolve ) => {
  39. inquirer.prompt( [ {
  40. name: 'gitHubUrl',
  41. message: 'Enter plugin\'s GitHub URL:',
  42. default: defaultGitHubUrl
  43. } ], ( answers ) => {
  44. resolve( answers.gitHubUrl );
  45. } );
  46. } );
  47. }
  48. };