será que não é uma boa criar um adapter pro zod? se esse vídeo fosse de uns anos atrás ctz que teria usado yup, mais anos teria usado joi meio arriscado depender 100% da lib
Nesse caso específico, acho que não seria necessário, tendo em vista que ele esta exportando a constante `env` como um objeto, sendo assim, seria apenas trocar a lib de validaçáo e continuar retornando o mesmo objeto, que o código funcionaria, e a manutenção é simples, apenas um arquivo tu conseguiria fazer a alterçao.
diego blz man te pergunta meio burro né mais seria legal se tu ou alguém aqui falasse ai isso pra mim... seguinte o zod por exemplo, da pra fazer tipo DTO's ou alguma class né sla pode ser demais uma função seria melhor, mas pensando em arquitetura mesmo, aquelas coisas chaaata para um caraleleo, aonde eu colocaria ele saka qual seria o melhor lugar pra ele pensando numa clean arch da vida, só que sem obedecer 100% a clean arch. ( na minha opinião tem coisas ótimas ali mas assim, tem coisas que né vira abstração demais arquivo demais e dava pra fazer em 2 linhas sksks ) mas é uma opinião minha e só ksksks mas enfim, tipo numa "arquitetura" aonde eu jogo o zod e a execução dele. e sim gostei dele simples bem intuitivo tbm desde que vc mostrou ele gostei dele muito ksksk e era isso vlw flw brigado ksks
Daria pra fazer assim e não precisar pegar do export, tiparia o process.env export type EnvTypes = z.infer declare global { namespace NodeJS { interface ProcessEnv extends EnvTypes { } } }
@@GuilhermeAugusto01Acredito que se você nao importar o arquivo em outro lugar, o parse nem chega a ser executado, ai funcionaria apenas a inferencia de tipos
Essa é uma solução muito elegante para executar parsing de variáveis de ambientes. Com certeza irei usar em meus projetos.
Oloko, vou começar usar hoje mesmo essa técnica, poder ter um autocomplete das envs é show
Há um bom tempo venho utilizando dessa prática, isso me garante bem mais segurança para uso de env. Realmente vale a pena o uso
Costumo usar o envalid. Além de validar e fazer parse, ele permite adicionar descrição, documentação e valores default.
Boa ideia transferir o process para uma constante com essa validação, vou utilizar aqui!
Muito bom. Tem como fazer um vídeo sobre Index entre tabelas? Obrigado.
Onde acompanho essas lives?
ttv/dieegosf
Na Twitch, o perfil é dieegosf
Na Twitch, ele e o Mayk estão fazendo bastante lá
será que não é uma boa criar um adapter pro zod?
se esse vídeo fosse de uns anos atrás ctz que teria usado yup, mais anos teria usado joi
meio arriscado depender 100% da lib
Sim, daria pra criar um adapter tranquilamente se você julga ser uma escolha arquitetural relevante pro seu projeto
Poderia elaborar como seria isso?
Dá pra criar se tu julgar necessário, mas não tem o menor sentido em trocar o zod.
@ Hoje não tem, daqui 2 anos a coisa muda kk
Nesse caso específico, acho que não seria necessário, tendo em vista que ele esta exportando a constante `env` como um objeto, sendo assim, seria apenas trocar a lib de validaçáo e continuar retornando o mesmo objeto, que o código funcionaria, e a manutenção é simples, apenas um arquivo tu conseguiria fazer a alterçao.
Povo bão o da Rocketseat! Sucesso!!!
ótimas dica!
tentei fazer isso pra salvar a baseURL do axios, mas qdo vou usar a um erro no zod dizendo que recebeu undefined, não to entendendo oq ta errado
pode ser duas coisas:
1 - Sua versão do node não é maior ou igual a 20.6;
2 - Seu script de execução não está apontando para o seu .env
Essas lives passam aonde?
Lives na roxinha
Quando esses vídeos são gravados?
Lives na roxinha
🤯🤯🤯
diego blz man te pergunta meio burro né mais seria legal se tu ou alguém aqui falasse ai isso pra mim... seguinte o zod por exemplo, da pra fazer tipo DTO's ou alguma class né sla pode ser demais uma função seria melhor, mas pensando em arquitetura mesmo, aquelas coisas chaaata para um caraleleo, aonde eu colocaria ele saka qual seria o melhor lugar pra ele pensando numa clean arch da vida, só que sem obedecer 100% a clean arch. ( na minha opinião tem coisas ótimas ali mas assim, tem coisas que né vira abstração demais arquivo demais e dava pra fazer em 2 linhas sksks ) mas é uma opinião minha e só ksksks mas enfim, tipo numa "arquitetura" aonde eu jogo o zod e a execução dele. e sim gostei dele simples bem intuitivo tbm desde que vc mostrou ele gostei dele muito ksksk e era isso vlw flw brigado ksks
Adonis na versao 5 ja faz isso
Daria pra fazer assim e não precisar pegar do export, tiparia o process.env
export type EnvTypes = z.infer
declare global { namespace NodeJS { interface ProcessEnv extends EnvTypes { } } }
mas ai seria só inferência, no caso dele tem validação também
funciona mas não valida, se não tiver uma env definida ou estiver com tipo errado vai dar ruim
Ou melhor, fazer assim: infisical run -- pnpm run dev
@@ursochurrasqueira antes de atribuir o tipo eu parseio com envSchema.parse(process.env)
@@GuilhermeAugusto01Acredito que se você nao importar o arquivo em outro lugar, o parse nem chega a ser executado, ai funcionaria apenas a inferencia de tipos
seria bom se ele tipasse automaticamente tbm kk
first