Releases: af/envalid
v8.1.0
It's been a little while, but a new stable release is here! Thanks to contributors for the following additions and fixes:
- Support for "yes" and "no" as valid boolean values (#224)
- Support for conditionally required fields using the requiredWhen validator option (#223)
- Fix: catch EnvMissingError and send error to reporter when no default value is provided in dev (#225)
In addition, there have been some behind-the-scenes improvements:
- various devDependency package updates
- migrate to vitest for faster, simpler unit tests
- migrate to biome for formatting and linting
v8.0.0
After a long wait, version 8 is here!
v7.1.0
v7.0.0
Version 7 is a major release with several breaking changes. If you've been using the recommended "strict mode" from previous releases, the migration should be fairly straightforward as it's now turned on by default (you can remove the strict: true option). Below are the list of changes:
- All code rewritten in TypeScript
- Removed all runtime dependencies (check out the difference in code size)
- The mode-formerly-known-as-
strictis removed, and its behavior is enabled by default. This means:- The env object will only contain the env vars that were specified by your
validators. - Any attempt to access an invalid/missing property on the env object will cause a thrown error.
- Any attempt to mutate the cleaned env object will cause a thrown error.
You can still opt-out of strict mode by disabling thestrictProxyMiddleware, but it's not
recommended (see "Custom Middleware", in the README).
- The env object will only contain the env vars that were specified by your
- The
dotenvpackage is no longer shipped as part of this library. You can easily use it directly
by installing it and runningrequire('dotenv').config()before you invoke envalid'scleanEnv() - The
transformervalidator option is gone, replaced by the ability to add custom middleware - The
hostandipvalidators are now slightly less exhaustive. If you need these to be airtight, use
your own custom validator instead - When you try to access an invalid property on the cleaned env object, the error will no longer
suggest an env variable that you may have intended. You can re-implement the old behavior with a custom
middleware if you wish NODE_ENVsupport is now less opinionated, and an error is no longer thrown if a value other
thanproduction/development/testis passed in. You can provide your own validator forNODE_ENV
to get exactly the behavior you want. TheisDev,isProduction, etc properties still work as
before, and are implemented as middleware so you can override their behavior as needed.
v7.0.0 beta 1
Version 7 of Envalid is finally ready for public consumption. Thanks to @KATT and @SimenB for their help and feedback on the (long-running) PR.
Please try it out in your project with npm install [email protected] or yarn add [email protected] and report any bugs, errors, or unexpected behavior (after reading the changes below!). A stable release will follow once any bugs are shaken out.
- All code rewritten in TypeScript
- Removed all runtime dependencies (check out the difference in code size)
- The mode-formerly-known-as-
strictis removed, and its behavior is enabled by default. This means:- The env object will only contain the env vars that were specified by your
validators. - Any attempt to access an invalid/missing property on the env object will cause a thrown error.
- Any attempt to mutate the cleaned env object will cause a thrown error.
You can still opt-out of strict mode by disabling thestrictProxyMiddleware, but it's not
recommended (see "Custom Middleware", below).
- The env object will only contain the env vars that were specified by your
- The
dotenvpackage is no longer shipped as part of this library. You can easily use it directly
by installing it and runningrequire('dotenv').config()before you invoke envalid'scleanEnv() - The
transformervalidator option is gone, replaced by the ability to add custom middleware - The
hostandipvalidators are now slightly less exhaustive. If you need these to be airtight, use
your own custom validator instead - When you try to access an invalid property on the cleaned env object, the error will no longer
suggest an env variable that you may have intended. You can re-implement the old behavior with a custom
middleware if you wish NODE_ENVsupport is now less opinionated, and an error is no longer thrown if a value other
thanproduction/development/testis passed in. You can provide your own validator forNODE_ENV
to get exactly the behavior you want. TheisDev,isProduction, etc properties still work as
before, and are implemented as middleware so you can override their behavior as needed.
v6.0.1
v6
v5.0.0 – Restore type inference for use from TypeScript
- Restore type inference & type safety to TypeScript definitions (#98, thanks @lostfictions !)
- Minimum TypeScript version for the type definitions is now 3.0
This is a breaking (but worthwhile) change if you use TypeScript. If you use regular JS it's a very minor update.