Table of Contents

Descripción del cliente generate-dto

Para la facilidad de generación de contratos se ha visto la necesidad de escribir un pequeño CLI en node ubicado en packages/generate-dto

1josenapa@MacBook-Pro-de-Jose-oxxo app % yarn run generate-dto 2 3Usage: api-core <option> 4 5Options: 6 --version Show version number [boolean] 7 --all Generate All DTOs [boolean] 8 --service-name Generate specific service DTO [string] 9 --env Services Environment [string] [required] 10 --output DTOs Output dir [string] [required] 11 --help Show help [boolean] 12

Párametros que recibe el comando

Parametro

Descripción

required

all

Permite generar todos los contratos de todos los servicios definidos en el archivo swagger-doc-list.json

No

service-name

Permite generar todos los contratos de un solo servicio, importante que el servicio esté registrado dentro del archivo swagger-doc-list.json

No

env

Define el environment desde donde se va extraer la información de los contratos, puede ser dev o qa

Si

output

Define el directorio donde se van a escribir los archivos .d.ts generados de los contratos

Si

Generación de contratos

Para la generación de contratos, se han incluido 4 scripts dentro del package.json

1"api:generate": "generate-dto --env=dev --output=./src/api/models --all && prettier --write src/api/models", 2"api:generate:qa": "generate-dto --env=qa --output=./src/api/models --all && prettier --write src/api/models", 3"api:generate:single": "generate-dto --env=dev --output=./src/api/models $0 && prettier --write src/api/models", 4"api:generate:single:qa": "generate-dto --env=qa --output=./src/api/models $0 && prettier --write src/api/models",

Comando

Descripción

api:generate

este comando genera por defecto todos los contratos de todos los servicios publicados en dev

api:generate:qa

este comando genera por defecto todos los contratos de todos los servicios publicados en qa

api:generate:single

este comando genera por defecto todos los contratos de un servicio en especifico de dev

api:generate:single:qa

este contrato genera por defecto todos los contratos de un servicio en especifico de qa

Ejemplos

  • Generar todos los contratos de dev

    1yarn run api:generate


  • Generar todos los contratos de qa

    1yarn run api:generate:qa


  • Generar todos los contratos de un servicio especifico de dev

    1yarn run api:generate:single --service-name=transaction-service


  • Generar todos los contratos de un servicio especifico de QA

    1yarn run api:generate:single:qa --service-name=transaction-service


Agregar nuevos servicios para generar contratos

Cuando backend agrega un nuevo bloque de servicios, debemos registrarlo en el archivo swagger-doc-list.json ubicado en packages/generate-dto/src/data. Posterior al registro del nuevo servicio, se deben ejecutar los comandos para generar los DTOs.