Skip to content

NestJS LatamDomain-Driven Design para NestJS

Agregados que acumulan sus propias reglas rotas, value objects que se validan solos y un CLI que lee tu código. En español, con el fuente a la vista.

NestJS Latam

Cinco minutos

bash
npm i @nestjslatam/ddd-lib @nestjs/cqrs
ts
import { StringValueObject, BrokenRulesException } from '@nestjslatam/ddd-lib';

export class Name extends StringValueObject {
  static create(value: string): Name {
    const name = new Name(value);

    // La validación RECOLECTA reglas rotas y nunca lanza.
    // Si no compruebas aquí, create() te devuelve un objeto inválido.
    if (!name.isValid) {
      throw new BrokenRulesException('Name', name.brokenRules.getBrokenRules());
    }

    return name;
  }

  override addValidators(): void {
    super.addValidators(); // sin esta línea los validadores base desaparecen
    this.validatorRules.add(new NameLengthValidator(this));
  }
}

Esas dos líneas comentadas son el 80 % de los errores que verás al empezar. La guía explica por qué.

Una advertencia honesta

La API todavía se mueve y ha roto en más de una versión: clava una versión exacta en tu package.json. Cada repositorio dice en su README qué está probado y qué no, con números medidos y no prometidos.

Preferimos que lo sepas antes y no después.

Esto es una comunidad

La documentación vive en nestjslatam/docs y cada página tiene un enlace «Editar esta página en GitHub» al final. Si algo está mal, mal explicado o simplemente te costó entenderlo, corrígelo — no hace falta pedir permiso.

Las conversaciones, artículos y novedades de la comunidad están en nestjslatam.dev.

Publicado con licencia MIT. Hecho en Perú 🇵🇪 · Impulsado por BeyondNetCode