fiado-type-kit
Descripción
fiado-type-kit es una biblioteca TypeScript diseñada para facilitar el desarrollo de funciones AWS Lambda al proporcionar un conjunto estructurado de Data Transfer Objects (DTOs), enumeraciones y constantes. Está organizada por dominios específicos (card, account, directory, otros) para mejorar la modularidad y la reutilización del código en proyectos de AWS Lambda.
Estructura del Proyecto
fiado-type-kit/
📁 /src - Contiene el código fuente TypeScript, organizado por dominios.
- 📁
card - Funciones y tipos relacionados con tarjetas.
- 📁
dtos - Data Transfer Objects para card.
- 📄
cardRequest.dto.ts
- 📄
cardResponse.dto.ts
- 📁
enums - Enumeraciones específicas de card.
- 📁
constants - Constantes de card.
- 📄
index.ts - Exporta los elementos de card.
- 📁
account - Funciones y tipos relacionados con cuentas.
- [Repita la estructura similar a
card]
- 📁
user - Funciones y tipos relacionados con usuarios.
- [Repita la estructura similar a
card]
📁 /bin - Contiene los archivos transpilados y listos para producción.
📁 /test - Incluye pruebas para los distintos componentes de la biblioteca.
📄 package.json
📄 tsconfig.json
📄 README.md
Convenciones de Nombres y Validaciones
Convenciones de Nombres para DTOs
Para mantener la coherencia y claridad en nuestros DTOs (Data Transfer Objects), seguimos una convención de nombres estricta. Los nombres de los archivos DTO deben reflejar claramente su propósito y el dominio al que pertenecen. Por ejemplo, para card:
- Solicitudes: El nombre debe comenzar con la entidad a la que pertenece, seguir con la acción y terminar con Request. Ejemplo: CardActivateRequest.ts, CardCreateRequest.ts, CardUpdateRequest.ts, CardDeleteRequest.ts.
- Respuestas: Debe comenzar con la entidad y terminar con Response. Ejemplo: CardBalanceResponse.ts. CardResponse.ts
Uso de class-validator en DTOs
Al definir DTOs de solicitud, es esencial aplicar validaciones a todas las propiedades de la clase para garantizar que los datos recibidos cumplan con nuestras expectativas y restricciones. Usamos class-validator para este propósito:
- Solicitudes: Todas las propiedades de las clases de solicitud deben tener decoradores de class-validator para validar la entrada.
- Respuestas: Las clases de respuesta no deben incluir validaciones de class-validator, ya que son utilizadas solo para enviar datos al cliente.
Ejemplo de un DTO de Solicitud con class-validator:
import { IsNotEmpty, IsString, IsNumber } from 'class-validator';
export class CardActivateRequest {
@IsNotEmpty()
@IsString()
readonly userId: string;
@IsNotEmpty()
@IsNumber()
readonly cardId: number;
}
Uso
Para utilizar fiado-type-kit en tu proyecto, asegúrate de importar los componentes específicos que necesitas de cada dominio. Por ejemplo:
import { AccountResponse, AccountCreateRequest } from "@fiado/type-kit/bin/account";
import { CardRequest } from 'fiado-type-kit/dist/card/dtos/cardRequest.dto';
import { AccountType } from 'fiado-type-kit/dist/account/enums/accountType.enum';
Instalación
Para instalar la biblioteca fiado-type-kit en tu proyecto, ejecuta el siguiente comando usando npm:
npm i @fiado/type-kit