Plantilla para módulos
This commit is contained in:
parent
c5ed10b8fd
commit
520224e508
26
plopfile.js
26
plopfile.js
@ -1,26 +0,0 @@
|
|||||||
export default function (plop) {
|
|
||||||
plop.setGenerator("module", {
|
|
||||||
description: "Crea un nuevo módulo ERP con plantilla base",
|
|
||||||
prompts: [
|
|
||||||
{
|
|
||||||
type: "input",
|
|
||||||
name: "name",
|
|
||||||
message: "Nombre del módulo (kebab-case):",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: "input",
|
|
||||||
name: "plural",
|
|
||||||
message: "Nombre plural para las rutas (kebab-case):",
|
|
||||||
default: (answers) => `${plop.getHelper("kebabCase")(answers.name)}s`,
|
|
||||||
},
|
|
||||||
],
|
|
||||||
actions: [
|
|
||||||
{
|
|
||||||
type: "addMany",
|
|
||||||
destination: "modules/{{kebabCase name}}",
|
|
||||||
base: "templates/new-module",
|
|
||||||
templateFiles: "templates/new-module/**",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
});
|
|
||||||
}
|
|
||||||
44
plopfile.mjs
Normal file
44
plopfile.mjs
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
/**
|
||||||
|
* Generador de módulos ERP
|
||||||
|
* - module: bounded context (carpeta en modules/)
|
||||||
|
* - name: agregado principal (usa placeholders en plantillas)
|
||||||
|
* - plural: rutas/tabla (override del plural generado)
|
||||||
|
*/
|
||||||
|
export default function (plop) {
|
||||||
|
plop.setGenerator("module", {
|
||||||
|
description: "Crea un nuevo módulo (bounded context) con un agregado principal",
|
||||||
|
prompts: [
|
||||||
|
{
|
||||||
|
type: "input",
|
||||||
|
name: "module",
|
||||||
|
message: "Nombre del bounded context (kebab-case, p.ej. 'billing'):",
|
||||||
|
validate: (v) =>
|
||||||
|
(!!v && /^[a-z0-9\-]+$/.test(v)) || "Usa kebab-case (letras, números y guiones).",
|
||||||
|
filter: (v) => plop.getHelper("kebabCase")(v),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "input",
|
||||||
|
name: "name",
|
||||||
|
message: "Nombre del agregado principal (kebab-case, p.ej. 'customer-invoice'):",
|
||||||
|
validate: (v) =>
|
||||||
|
(!!v && /^[a-z0-9\-]+$/.test(v)) || "Usa kebab-case (letras, números y guiones).",
|
||||||
|
filter: (v) => plop.getHelper("kebabCase")(v),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: "input",
|
||||||
|
name: "plural",
|
||||||
|
message: "Nombre plural para las rutas/tabla (kebab-case):",
|
||||||
|
default: (answers) => `${plop.getHelper("kebabCase")(answers.name)}s`,
|
||||||
|
filter: (v) => plop.getHelper("kebabCase")(v),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
actions: [
|
||||||
|
{
|
||||||
|
type: "addMany",
|
||||||
|
destination: "modules/{{kebabCase module}}",
|
||||||
|
base: "templates/new-module",
|
||||||
|
templateFiles: "templates/new-module/**",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user