@nexload-sdk/env
v3.0.0
Published
Type-safe, modern, and extensible environment variable manager for JS/TS applications — with built-in validation, composable presets, and advanced logging. Perfect for Next.js, Node.js, and API/CMS stacks.
Maintainers
Readme
@nexload-sdk/env
Type-safe environment variable reader with schema definitions, presets, and a small merge utility.
Install
pnpm add @nexload-sdk/envExports
EnvManagermerge- presets from
@nexload-sdk/env/presets
Quick Start
import { EnvManager } from "@nexload-sdk/env";
const env = new EnvManager({
PORT: { type: "number", default: 3000 },
NODE_ENV: { type: "string", default: "development" },
DEBUG: { type: "boolean", default: false },
JWT_SECRET: { type: "string" }
});
const port = env.$("PORT");
const debug = env.$("DEBUG");
const secret = env.$("JWT_SECRET");Presets
import { EnvManager, merge } from "@nexload-sdk/env";
import { $ApiServicePreset, $NodePreset } from "@nexload-sdk/env/presets";
const env = new EnvManager(
merge($NodePreset, $ApiServicePreset, {
FEATURE_FLAG: { type: "boolean", default: true }
})
);Built-in presets:
$NodePreset$WebServicePreset$ApiServicePreset$CmsServicePreset
API
new EnvManager(schema)
Creates an env manager and immediately:
- validates the declared keys against
process.env - loads all declared values into an internal cache
env.$(key, cache = true)
Returns a cached typed value (string | number | boolean) based on the field definition.
merge(...schemas)
Merges multiple env schemas while preserving TypeScript inference.
Notes / Caveats
- Validation logs warnings/errors but does not throw.
- Values are read from
process.envand coerced by the declaredtype. - Logging is guarded by a global flag (
globalThis.envFirstLogging), which isfalseby default in this package.
