dl_mer_mer_admin/plop-templates/view/prompt.js
2025-03-04 15:59:12 +08:00

60 lines
1.3 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: '<wxTemplate>',
value: 'template',
checked: true,
},
{
name: '<script>',
value: 'script',
checked: true,
},
{
name: 'style',
value: 'style',
checked: true,
},
],
validate(value) {
if (value.indexOf('script') === -1 && value.indexOf('template') === -1) {
return 'View require at least a <script> or <wxTemplate> 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: name,
template: data.blocks.includes('template'),
script: data.blocks.includes('script'),
style: data.blocks.includes('style'),
},
},
];
return actions;
},
};