Validado JSONs no Javascript/Typescript/NodeJS

O Javascript e o Typescript não contam com ferramentas de validação de JSONs vindos de fora do sistema, ou seja, aquele JSON enviado para sua aplicação em NodeJS e configurado em um objeto não tem suas propriedades e tipos validados, e isso é muito sério.

Há algumas bibliotecas que podem ajudar nisso, a que me parece mais interessante é a Zod.

https://github.com/colinhacks/zod

  • Zod
  • Joi
  • YUP
  • io-ts
  • Runtypes
  • Ow

Breve descrição das bibliotecas

Zod

Me parece ser a mais fácil de usar e compatível com typescript e variáveis opcionais.

Joi

É uma das bibliotecas mais antigas e tradicionais, focada em Javascript puro.

Class Validator + Class Transformer

Class Validator
https://www.npmjs.com/package/class-validator

Class Transformer
https://www.npmjs.com/package/class-transformer

Tutoriais

Validando entradas
https://ichi.pro/pt/validar-a-entrada-json-em-node-js-e-typescript-e-cobrir-esses-cenarios-de-validacao-com-testes-de-unidade-205044753886897

Comparação de diferentes bibliotecas

Comparação de performance
https://github.com/moltar/typescript-runtime-type-benchmarks

Comparação de popularidade
https://www.npmtrends.com/ajv-vs-class-validator-vs-joi-vs-yup-vs-zod

Tutoriais