Why you should always add type safety to your environment variables?

Why you should always add type safety to your environment variables?

 1
 0
 4 minutes

A little background

If you have been coding for a while, you know the importance of environment variables and the role it plays, and also the pain of figuring out a bug which was caused just because a damn env variable wasn’t set in your project, lol!

Earlier this year, I worked at an product based startup as a Full stack developer intern. As the project grew, the number of env variables also grew. And, everybody was working on separate features on separate branches, so we had no idea if someone introduced some new env variable in their branch which later got merged into the main branch. This created problems when I tried to deploy my branches, I had know idea that a new env var has been added to the the project.

Then, later I got introduced to T3 stack and it had a brilliant solution for adding type safety to env variables. I didn’t even know such a solution even existed. It’s always feels good to learn something new when you least expect it. T3 stack uses and package to add type safety to your applications which I liked very much. After that, I made a commitment to always type-safe my env variables no matter what.

If you’re starting a new project, or already working in a team, I’d highly recommend you to please add type safety to your envs. Adding just this will save you your efforts for figuring out problems in your codebase.

Here’ how you can add it to your project. It’s fairly simple.

What is zod?

Zod is a lightweight, fast, schema declaration and validation library. A schema can be anything from a simple string, number to complex object type.

Basic usage


Creating a nested object schema


You can create a simple object schema or create nested objects schema.

What is t3-oss/env-nextjs?

It is simply a package which will help us add type safety to env variables

Let’s create type-safe env variables

Create a file at the root of your project.


Usage


If you hover your cursor above , you can see that that value is typed as string, that means our env variables are typed now.

We’ve added type safe env variables, but this will not run on every build time. we have to import our newly created file into our file. You can use package for that.

First, install the jiti pacakge from npm.


When working with , it provides the URL of the file you are currently working in. However, it includes a prefix, which you might not want. To remove that prefix, you can use the function from the module.

For example:


Now, if you do not have the required env variables, you will see an error like this -

image.png

How to add type-safety to env variables in Node.js Projects?


In Node.js projects we're going to be simply creating a zod schema and parsing it against our in order to check whether all the env variables are set or not.

Usage


That’s how you add type safety to your env variables. I hope you learnt something new in this tutorial.

Happy Coding!! 👋