{"id":18818117,"url":"https://github.com/joshuaavalon/read-env-vars","last_synced_at":"2026-01-24T03:07:29.649Z","repository":{"id":63017878,"uuid":"564192497","full_name":"joshuaavalon/read-env-vars","owner":"joshuaavalon","description":"Read environment variables to JSON","archived":false,"fork":false,"pushed_at":"2023-09-11T04:00:29.000Z","size":201,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-27T13:42:34.601Z","etag":null,"topics":["env","environment-variables","json"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joshuaavalon.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-11-10T07:30:20.000Z","updated_at":"2024-03-10T08:26:12.000Z","dependencies_parsed_at":"2022-11-11T01:46:10.359Z","dependency_job_id":"45afd23d-2198-4110-9df2-a71ffa87ffc4","html_url":"https://github.com/joshuaavalon/read-env-vars","commit_stats":{"total_commits":9,"total_committers":2,"mean_commits":4.5,"dds":"0.33333333333333337","last_synced_commit":"fea392e30c0ec7e294837abde264546dc0dd5e0c"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshuaavalon%2Fread-env-vars","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshuaavalon%2Fread-env-vars/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshuaavalon%2Fread-env-vars/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshuaavalon%2Fread-env-vars/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joshuaavalon","download_url":"https://codeload.github.com/joshuaavalon/read-env-vars/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248795362,"owners_count":21162756,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["env","environment-variables","json"],"created_at":"2024-11-08T00:15:06.040Z","updated_at":"2026-01-24T03:07:29.614Z","avatar_url":"https://github.com/joshuaavalon.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# read-env-vars\n\n[![Version](https://badge.fury.io/js/read-env-vars.svg)](https://www.npmjs.com/package/read-env-vars)\n[![npm](https://img.shields.io/npm/dt/read-env-vars.svg)](https://www.npmjs.com/package/read-env-vars)\n[![License](https://img.shields.io/github/license/joshuaavalon/read-env-vars)](./LICENSE)\n\n## Getting Started\n\n```sh\nnpm i read-env-vars\n```\n\n## Usage\n\n```typescript\nimport readEnvVars from \"read-env-vars\";\n/**\n *  PREFIX__KEY1=1\n *  PREFIX__KEY2=a\n *  PREFIX__KEY3__KEY=b\n *  PREFIX__KEY4_0=c\n */\n/**\n * {\n *    \"key1\": 1,\n *    \"key2\": \"a\",\n *    \"key3\": { \"key\": \"b\" },\n *    \"key4\": [\"c\"]\n * }\n */\nconst vars = readEnvVars(\"PREFIX\");\n```\n\nEvery variables **MUST** start with the prefix and separator (default to `__`).\nAlso, the key will be converted to camel-case (Can be changed).\n\n### Scalar\n\n```ini\n# Mapped as `{ \"key1\": 1 }`\nPREFIX__KEY1=1\n# Mapped as `{ \"key2\": \"a\" }`\nPREFIX__KEY2=a\n# Mapped as `{ \"key3\": true }`\nPREFIX__KEY3=true\n```\n\n### Object\n\nBy using the separator, the key will be considered nested as an object.\n\n```ini\n# Mapped as `{ \"key1\": { \"key2\": \"a\" } }`\nPREFIX__KEY1__KEY2=a\n```\n\n### Array\n\nBy ending a key with `_\u003cnumber\u003e`, it will be considered as an array.\n\n```ini\n# Mapped as `{ \"key1\": [\"a\"] }`\nPREFIX__KEY1_0=a\n```\n\n## Options\n\n#### `source`\n\n- Type: `Record\u003cstring, string | undefined\u003e`\n- Default: `process.env`\n\nSource of the environment variables\n\n#### `separator`\n\n- Type: `string`\n- Default: `__`\n\nSeparator of object key\n\n#### `camelCase`\n\n- Type: `camelcase.Options`\n- Default: `undefined`\n\n[Options][camelcase-api] passed to [camelcase].\n\n[camelcase]: https://github.com/sindresorhus/camelcase\n[camelcase-api]: https://github.com/sindresorhus/camelcase#api\n\n#### `onEmpty`\n\nValue set when handle empty value\n\n- Type: `\"null\" | \"undefined\" | \"empty\" | \"ignored\"`\n- Default: `ignored`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoshuaavalon%2Fread-env-vars","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoshuaavalon%2Fread-env-vars","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoshuaavalon%2Fread-env-vars/lists"}