Validação Type-Safe, Result Pattern e DDD para TypeScript
Biblioteca TypeScript para validação de schemas com inferência automática de tipos, error handling funcional via Result pattern, building blocks de Domain-Driven Design, exceções RFC 7807, entre outros. Uma única dependência runtime.
npm i @navegar-sistemas/tyforge
O que Está Incluso
Result Pattern
Error handling funcional sem exceções em hot paths. ok/err, map, flatMap, fold, match, all, getOrElse, toPromise, entre outros combinadores. Singleton OK_TRUE para zero alocação em validações.
Schema Builder
Compile schemas uma vez, reutilize em todas as validações. Inferência automática de tipos de entrada (JSON) e saída (TypeField instances) sem anotações manuais, entre outros.
25+ Type Fields
Validadores pré-construídos para email, senha, UUID v7, datas ISO 8601, JWT Bearer, API Key, assinaturas Base64, PEM, entre outros. Cada um com create(), getValue(), toJson() e mais.
Domain Models (DDD)
Entity, ValueObject, Aggregate e Dto prontos para uso. Serialização automática com toJson(), comparação por identidade ou estrutura, domain events, entre outros.
Exceções RFC 7807
6 tipos especializados: Validation, Business, NotFound, Auth, Db e Unexpected. Cada um com factory methods, lazy stack traces, campo retriable, metadata adicional, entre outros.
Leve e Sem Dependências Pesadas
Apenas uuid como dependência runtime. TypeScript 5.7, target ES2022, compatível com Node 18+. Build com tsc + tsc-alias para resolução de paths.
Ideal Para
Devs TypeScript Backend
Construa APIs com validação type-safe, error handling explícito e schemas que inferem tipos automaticamente, entre outros benefícios.
Praticantes de DDD
Entity, ValueObject, Aggregate e Dto prontos para uso com serialização, comparação e domain events integrados.
Equipes com Type Safety
Elimine bugs de validação em tempo de compilação. Schemas compilados garantem que input e output estão sempre tipados corretamente.
Projetos com Error Handling Explícito
Substitua try/catch por Result pattern. Erros são valores tipados que você compõe, transforma e trata de forma funcional.
Perguntas Frequentes
O que é o TyForge?
É uma biblioteca TypeScript que combina validação de schemas com inferência automática de tipos, error handling funcional via Result pattern, building blocks de DDD como Entity, ValueObject e Aggregate, exceções padronizadas RFC 7807, entre outros.
Precisa de Zod ou Yup junto?
Não. O TyForge tem seu próprio Schema Builder com Type Fields que validam e inferem tipos automaticamente. Ele substitui Zod/Yup para validação e ainda adiciona Result pattern, domain models e exceções padronizadas.
Funciona no frontend?
O foco é backend Node.js, mas os módulos de Result pattern, Type Fields e Schema Builder funcionam em qualquer ambiente TypeScript. Os domain models e exceções são mais úteis no backend.
Qual a diferença do Result pattern pra try/catch?
Com try/catch, erros são implícitos — você não sabe quais funções podem falhar nem com quais tipos de erro. Com Result, o retorno da função é explicitamente ok(valor) ou err(erro), com tipo definido. Isso permite composição funcional com map, flatMap, fold, entre outros.
Quais runtimes são suportados?
Node.js 18 ou superior. O build gera CommonJS (ES2022 target) com declarações de tipo (.d.ts). A única dependência runtime é o pacote uuid.
Como contribuir?
O projeto é open source sob licença MIT. Contribuições são bem-vindas via pull requests no GitHub. A documentação de contribuição está disponível no repositório.
Experimente o TyForge
Open source, gratuito e pronto para usar.