|
- const { notEmpty } = require('../utils.js')
-
- module.exports = {
- description: 'generate store',
- prompts: [{
- type: 'input',
- name: 'name',
- message: 'store name please',
- validate: notEmpty('name')
- },
- {
- type: 'checkbox',
- name: 'blocks',
- message: 'Blocks:',
- choices: [{
- name: 'state',
- value: 'state',
- checked: true
- },
- {
- name: 'mutations',
- value: 'mutations',
- checked: true
- },
- {
- name: 'actions',
- value: 'actions',
- checked: true
- }
- ],
- validate(value) {
- if (!value.includes('state') || !value.includes('mutations')) {
- return 'store require at least state and mutations'
- }
- return true
- }
- }
- ],
- actions(data) {
- const name = '{{name}}'
- const { blocks } = data
- const options = ['state', 'mutations']
- const joinFlag = `,
- `
- if (blocks.length === 3) {
- options.push('actions')
- }
-
- const actions = [{
- type: 'add',
- path: `src/store/modules/${name}.js`,
- templateFile: 'plop-templates/store/index.hbs',
- data: {
- options: options.join(joinFlag),
- state: blocks.includes('state'),
- mutations: blocks.includes('mutations'),
- actions: blocks.includes('actions')
- }
- }]
- return actions
- }
- }
|