etildac-cli
v1.0.3
Published
CLI para la generación de templates del proyecto
Downloads
1
Readme
Estructura del proyecto
⚠️⚒️Work in progress ⚠️⚒️
Como utilizar el CLI
Instalar el paquete de manera global y luego utilizarlo
> npm install -g etildac-cli
> etildac-cli
O bien, directamente mediante npx
> npx etildac-cli
¿Como agregar un nuevo template?
- Agregar el template en el directorio
templates/
y darle un nombre (p.ej: myTemplate) - Dirigirse al archivo
src/types.d.ts
y agregar en el typeTemplateChoice
un string con el nombre del nuevo template. Debe ser igual al nombre de la carpeta que que se agregó entemplates/
.
Además, si el template tiene parámetros remplazables, se debe crear una interface con dichos parámetros:export type TemplateChoice = 'admin' | 'component' | ... | 'myTemplate'
export interface MyTemplateParams { param1: string, param2: string }
- Crear un archivo .ts en el directorio
src/controllers/
con el mismo nombre que tiene el template (p.ej: myTemplate.ts). En el archivo creado, agregar una clase que extienda de la clase abstracta "Controller
" que se encuentra ensrc/controllers/base.ts
e implementar dicha clase. Se debe implementar las propiedadesquestions
ytemplateName
y además el métodoprocessAnswers
. Opcionalmente se debe asignar una interface a laController
, el cual es una clase genérica. En este caso, se le asigna la interfaceMyTemplateParams
previamente creada.import inquirer from 'inquirer' import { TemplateChoice } from '../types' import { Controller } from './base' export class MyTemplate extends Controller<MyTemplateParams | any> { questions: inquirer.QuestionCollection<any> templateName: TemplateChoice constructor () { super() this.questions = [ { name: 'question-name', type: 'input', message: 'Esto es una mensaje de prueba', } ] this.templateName = 'myTemplate' } processAnswers (answers: any): void { const inputValueForUser: string = answers['question-name'] ... this.createDirectoryContents( componentNameChoice, { param1: 'value1', param2: 'value2' } ) } }
- Agregar la nueva clase en el archivo
index.ts
que se encuentra en el directoriosrc/controllers/
- Dirigirse al archivo
src/index.ts
y, en la propiedadcontrollers
, agregar un nuevo campo con el nombre del nuevo template. El valor de dicho campo debe ser una instancia de la clase previamente creada ensrc/controllers/
. - ¡Ejecutar el CLI y utilizar el nuevo template!
Nota: para parametrizar un template se utiliza la dependencia
ejs
. Se recomienda leer documentación o revisar los otros templates para poder parametrizar uno nuevo.