zhi-env
a cross-platform env config lib
Usage
For simple use
import { Env } from "zhi-env"
const env = new Env({
"some-key": "some-value",
})
const val = env.getEnv("some-key")
console.log("val=>", val)
For vite
import { Env } from "zhi-env"
const env = new Env(import.meta.env)
const val = env.getEnv("some-key")
console.log("val=>", val)
For Nuxt
framework
import { Env } from "zhi-env"
const nuxtEnv = useRuntimeConfig()
const env = new Env(nuxtEnv)
const val = env.getEnv("some-key")
console.log("val=>", val)
For Astro framework or other libs
import { Env } from "zhi-env"
const envMeta = import.meta.env
const env = new Env(import.meta.env)
const val = env.getEnv("some-key")
console.log("val=>", val)
For unit tests
describe("zhiEnv", () => {
it("test env", () => {
const env = new Env(import.meta.env)
expect(env.getEnv(EnvConstants.NODE_ENV_KEY)).toEqual("test")
})
})
import { getNormalizedEnvDefines } from "../../../packages/esbuild-config-custom/esmUtils"
describe("zhiEnv", () => {
const NOT_EXIST_KEY = "NOT_EXIST_KEY"
getNormalizedEnvDefines(["NODE", "VITE_"])
it("test env", () => {
const env = new Env(import.meta.env)
expect(env.getEnv(EnvConstants.NODE_ENV_KEY)).toEqual("test")
})
it("test debug mode", () => {
const env = new Env(import.meta.env)
expect(env.getEnv(EnvConstants.VITE_DEBUG_MODE_KEY)).toEqual("true")
})
})
Deps
## Congregations! zhi-env need no deps, it is just pure js code 🎉
Dev
pnpm dev -F zhi-env
Build
pnpm build -F zhi-env
Api
pnpm doc -F zhi-env
pnpm md -F zhi-env
Test
Execute the unit tests via vitest
pnpm test -F zhi-env
Publish
pnpm publish -F zhi-env --tag latest