"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Valide suas variáveis ​​de ambiente com Zod

Valide suas variáveis ​​de ambiente com Zod

Publicado em 2024-08-20
Navegar:871

Validate your environment variables with Zod

Zod é a biblioteca de validação mais famosa do ecossistema TypeScript. Com Zod, você cria um esquema e valida seus dados de acordo com o esquema. Observe o esquema abaixo:

import { z } from 'zod'

const UserSchema = z.object({
  name: z.string().min(1),
  age: z.number({ coerce: true }).min(18),
  email: z.string().email(),
})

Este esquema pode ser usado para validar um objeto da seguinte forma:

const data = {
  name: 'John Doe',
  age: 18,
  email: '[email protected]',
}

// If there is a validation error, it throws an error
const validatedData = UserSchema.parse(data)

// If there is a validation error, it returns an error object for you to handle later
const safeValidatedData = UserSchema.safeParse(data)
// => { success: false; error: ZodError }
// => { success: true; data: 'billie' }

Zod é capaz de realizar vários tipos de validações em seus dados, portanto, leia a documentação para obter mais detalhes.

Validando variáveis ​​de ambiente

Podemos usar Zod para validar os valores presentes em process.env e até processá-los antes de usar as variáveis ​​de ambiente em nossa aplicação. Normalmente gosto de criar um arquivo Environment.ts, como no exemplo abaixo:

import { z } from 'zod'

const environmentSchema = z.object({
  // Define the possible values for NODE_ENV, always leaving a default value:
  NODE_ENV: z.enum(['test', 'development', 'production']).default('production'),
  // Environment variables are always defined as strings. Here, convert the string to a number and set a default value:
  PORT: z.number({ coerce: true }).default(3000),
})

export const env = environmentSchema.parse(process.env)

Depois, basta importar a variável e utilizá-la em toda a minha aplicação:

import Fastify from 'fastify'
import { env } from './environment.js'

const app = Fastify({ logger: true })
app.listen({ port: env.PORT }, (err) => {
  if (err) {
    app.log.error(err)
    process.exit(1)
  }
})
Declaração de lançamento Este artigo está reproduzido em: https://dev.to/douglasdemoura/validate-your-environment-variables-with-zod-2gna?1 Caso haja alguma infração, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3