vue3-vant-mobile/plop-templates/view/prompt.js

51 lines
1.1 KiB
JavaScript

const { notEmpty } = require('../utils.js')
module.exports = {
description: 'generate a view',
prompts: [{
type: 'input',
name: 'name',
message: 'view name please',
validate: notEmpty('name'),
}, {
type: 'checkbox',
name: 'blocks',
message: 'Blocks:',
choices: [{
name: '<template>',
value: 'template',
checked: true,
}, {
name: '<script>',
value: 'script',
checked: true,
}, {
name: 'style',
value: 'style',
checked: true,
}],
validate(value) {
if (!value.includes('script') && !value.includes('template'))
return 'View require at least a <script> or <template> tag.'
return true
},
}],
actions: (data) => {
const name = '{{name}}'
const actions = [{
type: 'add',
path: `src/views/${name}/index.vue`,
templateFile: 'plop-templates/view/index.hbs',
data: {
name,
template: data.blocks.includes('template'),
script: data.blocks.includes('script'),
style: data.blocks.includes('style'),
},
}]
return actions
},
}