prompt.js 955 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. const { notEmpty, upperCamelCase } = require('../utils.js');
  2. module.exports = {
  3. description: 'generate a view',
  4. prompts: [
  5. {
  6. type: 'input',
  7. name: 'dir',
  8. message: '请输入文件夹路径',
  9. validate: notEmpty('name'),
  10. },
  11. {
  12. type: 'input',
  13. name: 'baseUrl',
  14. message: '请输入baseUrl',
  15. validate: notEmpty('name'),
  16. },
  17. ],
  18. actions: (data) => {
  19. const { dir, baseUrl } = data;
  20. const ApiName = `${upperCamelCase(baseUrl)}Api`;
  21. const actions = [
  22. {
  23. type: 'add',
  24. path: `src/views/${dir}/index.vue`,
  25. templateFile: 'plop-templates/view/index.hbs',
  26. data: {
  27. ApiName,
  28. },
  29. },
  30. {
  31. type: 'add',
  32. path: `src/views/${dir}/api/${ApiName}.ts`,
  33. templateFile: 'plop-templates/view/ModuleApi.hbs',
  34. data: {
  35. baseUrl,
  36. ApiName,
  37. },
  38. },
  39. ];
  40. return actions;
  41. },
  42. };