fix(ConfigProvider.fromEnv): use import.meta.env instead of process.env
Type
- [ ] Refactor
- [X] Feature
- [ ] Bug Fix
- [ ] Optimization
- [ ] Documentation Update
Description
The reason for this is that this allows using environment variables in the browser with vite. Vite has a feature where all environment variables that have a VITE_ prefix are exposed in import.meta.env. And even in node.js, import.meta.env is a alias to process.env so i don't see any reason why ConfigProvider.fromEnv only supported process.env
⚠️ No Changeset found
Latest commit: e5d229b53219f1d3459db747ba7d75010fdd01a7
Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.
This PR includes no changesets
When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types
Click here to learn what changesets are, and how to add one.
Click here if you're a maintainer who wants to add a changeset to this PR
Unfortunately import.meta.env is an es-module only feature, it doesn't work in CJS
This is a difficult problem because import.meta is a syntax error when running in CJS for some f reason, i think we can do some weird hacks like dynamically importing another file using the import() function which just exports import.meta so it works for both EJS and CJS.
This is a difficult problem because import.meta is a syntax error when running in CJS for some f reason, i think we can do some weird hacks like dynamically importing another file using the import() function which just exports import.meta so it works for both EJS and CJS.
in 4.0 we'll be publishing a single ESM module given that now node LTS supports sync loading of ESM modules so it won't be a problem any longer
Until then, just copy the code and replace it with import.meta.env in userland.