Executando verificação de segurança...
4

Nessa caso é melhor usar Zod, é mais fácil de entender e você pode verificar se o que está sendo passado está correto.

import { z } from 'zod';

// Definindo o schema com Zod
const planetSchema = z.object({
  name: z.string(),
  weather: z.string(),
  terrain: z.string(),
  population: z.number(),
  stellarSystemId: z.string()
}).strict(); // O .strict() impede propriedades adicionais

// Uso no código
const result = planetSchema.safeParse(req.body);

if (!result.success) {
  throw new InvalidRequestBody(
    "Corpo da requisição inválido. planet deve conter somente 'name', 'weather', 'terrain', 'population' e 'stellarSystemId'."
  );
}

const { name, weather, terrain, population, stellarSystemId } = result.data;

Se você quiser validações mais específicas, pode adicionar regras como:

const planetSchema = z.object({
  name: z.string().min(1).max(100),
  weather: z.string().min(1),
  terrain: z.string().min(1),
  population: z.number().min(0),
  stellarSystemId: z.string().uuid()
}).strict();
Carregando publicação patrocinada...
2

Man, que bacana. Não conhecia o Zod ainda e estava me restringindo usar IA para pesquisar. Me parece que isso serve bem, então vou dar uma pesquisada e tentar implementar no projeto.🚀