123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- const { notEmpty } = require("../utils.js");
- module.exports = {
- description: "generate vue component",
- prompts: [
- {
- type: "input",
- name: "name",
- message: "component 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.indexOf("script") === -1 &&
- value.indexOf("template") === -1
- ) {
- return "Components require at least a <script> or <template> tag.";
- }
- return true;
- }
- }
- ],
- actions: data => {
- const name = "{{properCase name}}";
- const actions = [
- {
- type: "add",
- path: `src/components/${name}/index.vue`,
- templateFile: "plop-templates/component/index.hbs",
- data: {
- name: name,
- template: data.blocks.includes("template"),
- script: data.blocks.includes("script"),
- style: data.blocks.includes("style")
- }
- }
- ];
- return actions;
- }
- };
|