@jdsalasc/solvejs-env
v1.7.1
Published
Zero-dependency JavaScript/TypeScript environment variable utilities for production: typed parsing, enum checks, and required key validation.
Downloads
105
Maintainers
Readme
@jdsalasc/solvejs-env
Zero-dependency environment variable parsing and validation utilities for JavaScript and TypeScript.
Utilities
getEnvStringgetEnvNumbergetEnvBooleangetEnvEnumgetEnvArraygetEnvJsongetEnvUrlgetEnvDsnvalidateRequiredEnv
When to use this package
Use it when you need safe startup checks for API/backend apps with typed environment parsing and clear failure messages.
Install
npm i @jdsalasc/solvejs-envQuick example
import {
getEnvArray,
getEnvBoolean,
getEnvDsn,
getEnvEnum,
getEnvJson,
getEnvNumber,
getEnvString,
getEnvUrl,
validateRequiredEnv
} from "@jdsalasc/solvejs-env";
const missing = validateRequiredEnv(["DATABASE_DSN", "JWT_SECRET"]);
if (missing.length > 0) {
throw new Error(`Missing env keys: ${missing.join(", ")}`);
}
const nodeEnv = getEnvEnum("NODE_ENV", ["development", "test", "production"], process.env, { defaultValue: "development" });
const port = getEnvNumber("PORT", process.env, { defaultValue: 3000, integer: true, min: 1, max: 65535 });
const jwtSecret = getEnvString("JWT_SECRET");
const enableCache = getEnvBoolean("ENABLE_CACHE", process.env, { defaultValue: false });
const corsOrigins = getEnvArray("CORS_ORIGINS", process.env, { defaultValue: ["http://localhost:3000"] });
const featureFlags = getEnvJson("FEATURE_FLAGS", process.env, { defaultValue: { newCheckout: false } });
const apiBaseUrl = getEnvUrl("API_BASE_URL", process.env, { defaultValue: "https://api.example.com", allowedProtocols: ["https"] });
const databaseDsn = getEnvDsn("DATABASE_DSN", process.env, { requireAuth: true });