{"_id":"@alirezaaminzadeh/env-guard","name":"@alirezaaminzadeh/env-guard","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@alirezaaminzadeh/env-guard","version":"0.1.0","description":"Secure environment variable validation and loading for Node.js","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","scripts":{"build":"tsup","dev":"tsup --watch","lint":"eslint src --ext .ts","lint:fix":"eslint src --ext .ts --fix","format":"prettier --write \"src/**/*.ts\"","test":"vitest run","test:watch":"vitest"},"keywords":["env","environment","validation","security","config"],"author":{"name":"Alireza Aminzadeh","email":"syeedalireza@yahoo.com","url":"https://www.linkedin.com/in/alirezaaminzadeh"},"license":"MIT","dependencies":{"dotenv":"^16.3.1"},"devDependencies":{"@types/node":"^20.10.0","eslint":"^8.56.0","@typescript-eslint/eslint-plugin":"^6.15.0","@typescript-eslint/parser":"^6.15.0","eslint-config-prettier":"^9.1.0","prettier":"^3.1.1","tsup":"^8.0.1","typescript":"^5.3.3","vitest":"^1.1.0"},"engines":{"node":">=18.0.0"},"_id":"@alirezaaminzadeh/env-guard@0.1.0","_nodeVersion":"22.12.0","_npmVersion":"11.4.0","dist":{"integrity":"sha512-25PFmpl3YNb0cmeAxhDZmuyAc9aSyZ57UI0cnQcwaT0++x4FClRkTyNNwEopjJlpqHfswCskSxXN7QlZcajVbg==","shasum":"cad0e78b74fdbe74dfc822b8e100f04ad3c1d73a","tarball":"https://registry.npmjs.org/@alirezaaminzadeh/env-guard/-/env-guard-0.1.0.tgz","fileCount":9,"unpackedSize":31094,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD0ZToKKQSxrgYri5U0l7G8ZOhAGjWx9sqS4fCFhE8YuQIgNV2o9+yeGSqNvPgYYu77hgv0yBSJeGcysvPyPnsZ8kE="}]},"_npmUser":{"name":"syeedalireza","email":"syeedalireza@yahoo.com"},"directories":{},"maintainers":[{"name":"syeedalireza","email":"syeedalireza@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/env-guard_0.1.0_1771179481848_0.7655543507670566"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-15T18:18:01.792Z","0.1.0":"2026-02-15T18:18:01.993Z","modified":"2026-02-15T18:18:02.235Z"},"maintainers":[{"name":"syeedalireza","email":"syeedalireza@yahoo.com"}],"description":"Secure environment variable validation and loading for Node.js","keywords":["env","environment","validation","security","config"],"author":{"name":"Alireza Aminzadeh","email":"syeedalireza@yahoo.com","url":"https://www.linkedin.com/in/alirezaaminzadeh"},"license":"MIT","readme":"# env-guard\r\n\r\nSecure environment variable validation and loading for Node.js. Validates required vars, types, and provides fail-fast behavior with clear error messages.\r\n\r\n## Features\r\n\r\n- Schema-based validation (string, number, boolean, port)\r\n- Fail fast on missing or invalid vars\r\n- Type-safe access to validated values\r\n- Optional `.env` loading via `loadEnv()`\r\n- No hardcoded defaults for secrets (configurable per var)\r\n- Zero runtime dependencies beyond `dotenv` for `.env` loading\r\n\r\n## Install\r\n\r\n```bash\r\nnpm install @alirezaaminzadeh/env-guard\r\n```\r\n\r\n## Quick Start\r\n\r\n```ts\r\nimport { loadEnv, validateEnvOrThrow } from '@alirezaaminzadeh/env-guard';\r\n\r\n// Load .env into process.env (optional)\r\nloadEnv();\r\n\r\n// Validate and throw on failure\r\nconst env = validateEnvOrThrow({\r\n  PORT: { required: true, type: 'port' },\r\n  NODE_ENV: { required: false, default: 'development' },\r\n  API_KEY: { required: true, type: 'string' },\r\n});\r\n\r\nconsole.log(env.PORT);    // number (e.g. 3000)\r\nconsole.log(env.NODE_ENV); // string\r\nconsole.log(env.API_KEY);  // string\r\n```\r\n\r\n## API\r\n\r\n### `loadEnv(options?)`\r\n\r\nLoad environment variables from a `.env` file into `process.env`.\r\n\r\n```ts\r\nloadEnv();                    // Load from process.cwd()/.env\r\nloadEnv({ path: '.env.local' });\r\nloadEnv({ env: customObject }); // Use custom object instead of process.env\r\n```\r\n\r\n### `validateEnv(schema, envOverride?)`\r\n\r\nValidate env vars against a schema. Returns a result object.\r\n\r\n```ts\r\nconst result = validateEnv({\r\n  PORT: { required: true, type: 'port' },\r\n  DEBUG: { required: false, type: 'boolean', default: false },\r\n});\r\n\r\nif (result.success) {\r\n  console.log(result.env.PORT, result.env.DEBUG);\r\n} else {\r\n  console.error(result.errors);\r\n}\r\n```\r\n\r\n### `validateEnvOrThrow(schema, envOverride?)`\r\n\r\nSame as `validateEnv` but throws on failure. Use for fail-fast at startup.\r\n\r\n### Schema\r\n\r\n| Field     | Type              | Description                           |\r\n|-----------|-------------------|---------------------------------------|\r\n| `required`| `boolean`         | If true, var must be present          |\r\n| `type`    | `string \\| number \\| boolean \\| port` | Parse and validate type |\r\n| `default` | `string \\| number \\| boolean` | Used when optional and missing |\r\n\r\n## Supported Types\r\n\r\n- **string**: Any non-empty string (default)\r\n- **number**: Parsed as number; rejects NaN\r\n- **boolean**: Accepts `true/false`, `1/0`, `yes/no` (case-insensitive)\r\n- **port**: Number between 1 and 65535\r\n\r\n## License\r\n\r\nMIT\r\n","readmeFilename":"README.md","_rev":"1-a1f79e8eb4bfdc10fffce4fb5fd61bfa"}