|
@@ -0,0 +1,62 @@
|
|
|
+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
|
|
|
+ }
|
|
|
+}
|