Comments (10)
We can't detect if undefined
is passed explicitly or left out. So either special casing null
or a new option is the way to go
from envalid.
SGTM. If @af wants it, I can send a PR for it
from envalid.
Rather than add a new option, I think it'd be better to support setting default: undefined
, which would be the same as required: false
. Right now setting default: undefined
will trigger a validation error, but we should be able to change it so that passing undefined
explicitly works this way instead. Thoughts?
from envalid.
from envalid.
(we could do Object.keys
and count, but that feels way too fragile)
from envalid.
default: null
also seems like a fine solution to me.
from envalid.
You could use Object#hasOwnProperty
to detect if the property is defined on the object, but that breaks if the user passes in config that inherits from a prototype. I'm not sure why somebody would do that, but I don't see a reason to prevent it.
from envalid.
Yeah I was thinking about hasOwnProperty()
; I believe if ('default' in spec)
should also work for these purposes. The latter is a bit more readable to me. There is the prototype gotcha, but I can't think of a case where anyone would use a prototype-based config, so I'm comfortable with going this way.
from envalid.
^ the commit above is a stab at how I was thinking this would work. It fails a test, plus I want to add new test(s) to cover the new use case, so it's not ready for prime-time yet. Could someone take a look and let me know if there's anything obviously wrong with this approach?
from envalid.
It looks fine to me 🙂
from envalid.
Related Issues (20)
- Add parse options to str() HOT 1
- array validator HOT 1
- 7.3.0 breaking change? HOT 11
- Add option to load validator specs from .example.env file HOT 1
- Access value of env object by name HOT 1
- envalid in react-native for preview crashes without giving description of missing env HOT 2
- testOnly setting variable to Symbol instead of failing HOT 5
- Pick from validators HOT 2
- str({ devDefault: undefined }) generates an incorrect type HOT 2
- Require environment variables only if `NODE_ENV` is not set to `test` HOT 2
- Skipping env var validation in tests HOT 1
- Prevent process exit during tests HOT 1
- makeExactValidator is not exported HOT 1
- Combine envalid with Docker secrets
- Issue with envalid in test. HOT 1
- Typescript, typing the environment variables returns never HOT 1
- Waiting for an async reporter callback HOT 3
- How to see description and help for optional env? HOT 4
- Add a warn option
- devDefault does not work when NODE_ENV is undefined HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from envalid.