{"_id":"@6cat/env","_rev":"4-28837484979eed28067fd83b7d4b75d2","name":"@6cat/env","dist-tags":{"latest":"0.3.2"},"versions":{"0.0.1":{"name":"@6cat/env","version":"0.0.1","type":"module","license":"MIT","main":"lib/index.js","types":"lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"}},"scripts":{"lint":"prettier --write .","test":"vitest","build":"tsc --declaration --declarationMap --sourceMap"},"devDependencies":{"expect-type":"^0.13.0","prettier":"^2.7.1","typescript":"^4.8.2","vitest":"^0.22.1"},"gitHead":"d79223a36936a86646c10e730c3ceea9f5313f5c","_id":"@6cat/env@0.0.1","_nodeVersion":"18.8.0","_npmVersion":"8.18.0","dist":{"integrity":"sha512-+8HwiYs54bkBYUij73vbWLDv9XEMAIeXuJp4Hw5zLwPRuSiDs+0Wr2a6PlsgPcSzJMFpwzve7Fv3fgMOSwrTQA==","shasum":"8e83a70abc3b3cabe93b5e7327d306f4b53ed44e","tarball":"https://registry.npmjs.org/@6cat/env/-/env-0.0.1.tgz","fileCount":51,"unpackedSize":30461,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDOTS95DyY2Zkn3/Tao7teHq1HU4Z7IX6yax0UjWI/yfQIgLcqYWRNkYRTZCdokWpY9yQKx3S0rz9+UYfZwbtv0bYM="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjFJwrACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp2qg//V6hxf7Dyw3RFi+byC21AGK9itDzYlecZ5d3Xfjp6uwtIQ/XO\r\nS9ABNxY3DQe/QEY0K+eCZWqVqJvget15TE6S4oPUPMITOf4r3OD0iwy3XlKK\r\nUdhmHI+WSCcUX0kNe467p77nTcCW/QRHvz7GUNH3N0CFp0WMwKfpECWoaooL\r\ndhouFeArOF2O4D/7+hUSzi8AXr9X4Je8ycgqZTyWaaNVp0ItJjvf+/KyTyDY\r\nkLsUBg3LriKghm7S8zSwxNv/5zIxyT18yalW8XgMfrjcKR4UkB/F1tq85G+Y\r\nWEXpbqnBqoCdKwOqQJiKLePBQLxWgFlBgOW6rrNvZWWxMt0c6oewxQZBK5Yl\r\nC9hBGf4qSRSJUCcV1VaG0YKQkJA/KQqaRwh8E1wwwEOCaPeNUsYHaPDdmkpi\r\nJpPp/yfopU8psY9Gv9nuS4Dn6RjD2nF5m8ET5hBh+SkKAJAbHsvOIdHyROf/\r\nxyyINr75OneYxq3PusxdpCZv/DqoTivzX2IQ1SrtS94M8TPuZdI9u2iEpPvM\r\nmo4CPjb5oo8d2rk8WffkZtGAP88Nnd8eaiOp80XIylxAf9takangfGVqO4Wx\r\nZ932ZfqZktg9oh+JXq/9V6uZeNT7JbpwJ5wB5apdzc59iwqS3ygIuHH4E1yY\r\nCPWkU+Uz5KoBN7oE2uqo/RmPjP1Gy+h9t6s=\r\n=NeEH\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntkoopman2","email":"n.t.koopman@nandoe.net"},"directories":{},"maintainers":[{"name":"ntkoopman2","email":"n.t.koopman@nandoe.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/env_0.0.1_1662295082919_0.6341805058842345"},"_hasShrinkwrap":false},"0.1.0":{"name":"@6cat/env","version":"0.1.0","type":"module","license":"MIT","types":"dist/index.d.ts","module":"dist/index.js","main":"dist/index.cjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"prettier --write .","test":"vitest","doc":"ts-node --esm doc.ts && prettier --write README.md","build":"tsc --project tsconfig.esm.json && tsup src/index.ts"},"devDependencies":{"expect-type":"^0.13.0","prettier":"^2.7.1","prettier-plugin-jsdoc":"^0.4.2","ts-node":"^10.9.1","tsup":"^6.2.3","typescript":"^4.8.2","vitest":"^0.22.1"},"gitHead":"e62a9789c278d1faa85de9d77af96a4105a780ac","description":"Create javascript objects from environment variables. If you are using TypeScript, the result is fully typed as well.","_id":"@6cat/env@0.1.0","_nodeVersion":"18.9.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-u2UjLeZZ927KstTvQMyJYy5W6WFJhZ3n0stc9BaDpKOenrBzldzHoBzJAlq9FtxwjROaoFxL+rwKhdk8Qa3reg==","shasum":"7bec7829ef4dc38754dacc76bfbe90a896b2e08e","tarball":"https://registry.npmjs.org/@6cat/env/-/env-0.1.0.tgz","fileCount":68,"unpackedSize":81863,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC0zc0Ton2kfamMIi+nQfoEvZ4LkIg3B8u/HpA+SCn7VAiEAnlfa0N3JysgGpZw8WaP1G5qajtnGvw1W3W1DthtCjH4="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjKxh+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoR7Q/+JbXn3u/K9Yv79ktN7u+FMLSf0EtopAs854j3KqxS0RA7WKXg\r\nKMzKnFAHrajh13dF9Zo6bTbGf19Rarx5qY9h64HY54eM6B96NVD3BJjOV5jW\r\n1RwbJxo9TPpM0QwoL6JspkqgpF5mXuaSyttqOwsyNK4CVlDCptRTFO8mqMHI\r\nN86kF3+MyK9hmApKI1twUoPIXQnPDeEahRLFpzpixldboaKmosPsL7nMGm9t\r\na2QV65X78+k5xHKTRD9rAbsLx47t7ehrCUiWgcNCmu1lV3E8vhAg3XPboUwz\r\nfjXhOEj+rfZzaFDbP+65JtNYeBjycrqF1MRXusji230ZycuKvykh7NcR1P/g\r\nY4Jw7zlzgrbsjaM5Ih43pghGScD87a34H98/0CJ2fb6etC/fI4R5hKEBGHMZ\r\nezWusl5s9FYZRh9rJsNg/7lXJBf24MmZ+6WJIevOV38t5ONyzKU5i791f35d\r\nsLIw5SbbmpLrZvjp2Y7SAPsY440z/5Y0JjHsmGGxtLL6R+dhl/EOnddmyE6z\r\ngYDPwG5vSbEPaLmFhdSe/npk+xRTHcWp6C4Xmlylilcf0yI40cMd0opba+ZS\r\nAF49f7DohA9BiwPDAjdO8pI+pLBcPFYLS2WNWv8xsMF1W5dIBsyiTnHjY2lf\r\nH/FbprPSxkEoS05OZA+qzeXbREE+79cn3gU=\r\n=40bN\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntkoopman2","email":"n.t.koopman@nandoe.net"},"directories":{},"maintainers":[{"name":"ntkoopman2","email":"n.t.koopman@nandoe.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/env_0.1.0_1663768702670_0.739501469140742"},"_hasShrinkwrap":false},"0.3.0":{"name":"@6cat/env","version":"0.3.0","type":"module","license":"MIT","types":"dist/index.d.ts","module":"dist/index.js","main":"dist/index.cjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"prettier --write . && yarn doc","test":"vitest","doc":"ts-node --esm doc.ts && prettier --write README.md","build":"tsc --project tsconfig.esm.json && tsup src/index.ts"},"devDependencies":{"expect-type":"^0.13.0","prettier":"^2.7.1","prettier-plugin-jsdoc":"^0.4.2","ts-node":"^10.9.1","tsup":"^6.2.3","typescript":"^4.8.2","vitest":"^0.22.1"},"gitHead":"6d9850dde5f64388bccd6f2716027c8e3b0852e3","description":"Create javascript objects from environment variables. If you are using TypeScript, the result is fully typed as well.","_id":"@6cat/env@0.3.0","_nodeVersion":"18.9.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-fo16tsptiVB+SAYqYiI1+eMH2UX3ouZ0GSe4xhLLvpbztSpHmVINkn/YVY/wek/zMvNIWRz0PDsRR0DJzSiy9Q==","shasum":"3dfe51b4d1d74bdd4eb61ae00abdf9869d9cbae2","tarball":"https://registry.npmjs.org/@6cat/env/-/env-0.3.0.tgz","fileCount":68,"unpackedSize":93183,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDpex4l7H5OHi/rNvXUOrci6QEEFkZjNn3e/AKs8HY4KgIgEH3RIhHEkpdVfd4QusXPaj2xfaWPLWBAAio86t3z6gw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNE88ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoTlxAAll7Hx6ZymMOAqVgQ2PdgwqHf07gWhwEg/lc102OhmLX64lG8\r\ntKunahKmR0qDQK5Ju/SGDyHfbBMun5y9KjD9pax7pxCf1g0FXdm/ok/pQuVP\r\nWTMBn8UhmYPgRjJ3WK+7v3acQZsLg8hTT1RxDl7rijYtXC2X4WgMJqqGv/G2\r\nLoBpRx69PKiQp0dbdYdnxZd3kCSaAjFKdEIH0tYcdkgdpY83hY/r38QTjYwA\r\nMbntcDPJfSMAISq+zITGIPHtOFm+1+TueN8RBkJN5hIn5AOD9+c3dp+MKFDc\r\n0mGO18QhVnpL0of5ULkK6jDdHabmBIN3oKWsI49pRwKgNjQjNjFSN9uKt1h5\r\nPSpFZ8DA2XsPgQ5UnXs9LqHLkeiOyENk1azSsnhlWj52a2MkPWwLJAU/rzM/\r\noxKw2nrwHLqOwbwky7jQZCmpDhj2v43fuTOYWTmm7bUDU8X1vRQA9WpI7DfN\r\nByz3Lyf/OE93JWPZ5u2rCUm+lgqhJjeN8hSldU/TvCIsuUsU/bSX2LmxEj2U\r\nfk+oKf/OuDSWCDgIxfxLtIw/pRw8K0yrIF5ncaaV3n03s3aGzfaXLV5jWsic\r\neSmebsWZwNB5dqKdNijC0phDiaW+R0UA/nhut1E8byurN6yPKfk4dARyNfHw\r\nci8uSkiewL4hBkIFYrd5s8AcMa4BNu1Nlp4=\r\n=TMlY\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntkoopman2","email":"n.t.koopman@nandoe.net"},"directories":{},"maintainers":[{"name":"ntkoopman2","email":"n.t.koopman@nandoe.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/env_0.3.0_1664372539828_0.6022624435450277"},"_hasShrinkwrap":false},"0.3.1":{"name":"@6cat/env","version":"0.3.1","type":"module","license":"MIT","types":"dist/index.d.ts","module":"dist/index.js","main":"dist/index.cjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"prettier --write . && yarn doc","test":"vitest","doc":"ts-node --esm doc.ts && prettier --write README.md","build":"tsc --project tsconfig.esm.json && tsup src/index.ts"},"devDependencies":{"expect-type":"^0.13.0","prettier":"^2.7.1","prettier-plugin-jsdoc":"^0.4.2","ts-node":"^10.9.1","tsup":"^6.2.3","typescript":"^4.8.2","vitest":"^0.22.1"},"gitHead":"0b0c0323b9c44418a7047f737e2fc320900a5794","description":"Create javascript objects from environment variables. If you are using TypeScript, the result is fully typed as well.","_id":"@6cat/env@0.3.1","_nodeVersion":"18.9.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-o4Za4NCPQAg+5cfk56eDu9+7dGXoDE+gVbkGtnrvWMxSEqdq5Q7V2Py+AAUg19U2p/75Xt0TiEeeNl5JN63TDA==","shasum":"6d5bf83a66c62991da345d3ea8186ab4126e889a","tarball":"https://registry.npmjs.org/@6cat/env/-/env-0.3.1.tgz","fileCount":68,"unpackedSize":93019,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICj4KbY1CFH3SVWTd58CvIWBtgwlD4gEaSBJcFgIk3yzAiEA47Eg9mSItaVvjixwz63E0XlZMURrpaagsvIv4kfHavU="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNFbAACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpW9w//YLyiryZiw3T0VWbYasa969aFBrS4enxT7+rE+cIho9K4bdp4\r\nGRnebOvQWAFZZUFgPq2RprCVwfd5kuxqImmPl+WEsgnsPnt8Cb8Gtv8+xTIw\r\nyu0BxoC/YrmoWq+KsFtpTotB/RKssOKMGWHLrbDX3p04lR9SwGAlKjz/UcKL\r\nHGG+/04Qc1UZBe516w2nB+EylctkAWmRbbWA+E3yTKldLwYE1xjCbk5HlFCe\r\nlioN4glDIQ3zP1JpuAAVopskacvDhvP/EqGFhoS4ZlsRS60lXHhY9u9HqCfB\r\nC2C6juQ1AOTxxhQoDcw11/dkICdQ7TMGMRbh3GbOK9lM49dxcUWQUycCcOHz\r\nirxTtzqr8KdCV/AWFKNzPcsxtQ/XZxnXhlnw0Q7SkX6EQ3I024PlFQWZlTMO\r\nSv8/yoGUZaj7RJcWdMXaHo79clzo5AJ9F2c/wj2qTX26ArXfP+swhP7O4W6/\r\nVhcd7QHQJ1gKE8XxEO3P8UW27d+iuvHo7c7m40RFpxcK3EEEjRdAc8NlsQ3c\r\nK0cXLTL1M3OOer2IYjO0H+XKwx6+TXIwmLlQOM1cZBMZanb6nGagqB1HOG28\r\n1ZGgun1McEpjgFY64vDLf9WnoHBHll+TmCiflElZpwnYkDI0JGtHEtrKUNUh\r\n3Ox1nXc0z0KtswKZP9SrzYBoOEXhpiCRCLE=\r\n=xLkC\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntkoopman2","email":"n.t.koopman@nandoe.net"},"directories":{},"maintainers":[{"name":"ntkoopman2","email":"n.t.koopman@nandoe.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/env_0.3.1_1664374463969_0.41105888704867977"},"_hasShrinkwrap":false},"0.3.2":{"name":"@6cat/env","version":"0.3.2","type":"module","license":"MIT","types":"dist/index.d.ts","module":"dist/index.js","main":"dist/index.cjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"lint":"prettier --write . && yarn doc","test":"vitest","doc":"ts-node --esm doc.ts && prettier --write README.md","build":"tsc --project tsconfig.esm.json && tsup src/index.ts"},"devDependencies":{"expect-type":"^0.13.0","prettier":"^2.7.1","prettier-plugin-jsdoc":"^0.4.2","ts-node":"^10.9.1","tsup":"^6.2.3","typescript":"^4.8.2","vitest":"^0.22.1"},"gitHead":"492c9594932acb9ebdd67f718e78d4658e0dc89a","description":"Create javascript objects from environment variables. If you are using TypeScript, the result is fully typed as well.","_id":"@6cat/env@0.3.2","_nodeVersion":"18.9.0","_npmVersion":"8.19.2","dist":{"integrity":"sha512-8HvoihXQkW5BFuOhOHEP9AuF+AtpVtZt+2BgaQOFzNrJLfugaOt/+c2+SLBt4ddKJklxcbLLvdVsuOw/a+dyYw==","shasum":"c4bb1500269b8db788b9e862bc8950a8f79ce7a5","tarball":"https://registry.npmjs.org/@6cat/env/-/env-0.3.2.tgz","fileCount":68,"unpackedSize":95639,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDSq7k16aRP/rya5JaQkBf6/idL3zzGfA8TaiwtvBmFTgIhALR16WsC8WIndA7e90F26B4IhUMDuHRy3ufU/8Ma9nGS"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJjNQ5HACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoBXw/+PkyjJPZZAqIC1Q7DUbuUDspyvYX72HawnY0+MIkT/X6dG3vl\r\notMjHufR/R+MNXpZzV8blV5P8WSXILzr/ZHO8E2LwUmbpAAOxRUkdmMhw27b\r\nDddI4WDtiv/lUEMpoMG3jzya+Ciul6eliCNA31rDhuhkK7tF9IQVLvQCP3VQ\r\nCoXyzf+dKo63+mE53v9HV8vXWzcot1X7MEY4mlWUCmNsOAkhYXsd4aaSVDnm\r\nF9eD6CXJieE878zhJmS4Uw+lz3HITnqUaKapu/HftwluzKz9Xp3rEINWt0jD\r\nv9kBh8E6WX/GraDy2hEOnxjyf5pHK37a0bdQzjS9uldSQVlIJcLqiDkPV70a\r\ngK5YWAc5nlL63ClL/+Mt9ljZvLuzSVIBiajTOC6BLnuYDfMKufWqwuOKQ/xM\r\ndvMhbLPHFltUy3GvWMhvtPG8iLZGLZiALKCpOzDy0CZSU9HvJHTxJO1N5EfN\r\n/hg507o1uen5D71hLMpWj/ZSrZ0z/9LkSXZEq26lJ9IxmCM7z/gb4kq59GLA\r\nZeyePBcEQgtpzWm7QiD16rqm3lK4zaAlr1bfXC6p4utBeXOADPhw7zvK3gDi\r\nTYVcAgYqAY950w49GxwrI1SyCT5z0gHz74OVD9NRMs8veUbV4QoX5rV+FkCa\r\nXg1ltNWIQ3PZRnUOBELSIJQbcge3X3nGno4=\r\n=CNTK\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"ntkoopman2","email":"n.t.koopman@nandoe.net"},"directories":{},"maintainers":[{"name":"ntkoopman2","email":"n.t.koopman@nandoe.net"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/env_0.3.2_1664421447302_0.4241896593702217"},"_hasShrinkwrap":false}},"time":{"created":"2022-09-04T12:38:02.864Z","0.0.1":"2022-09-04T12:38:03.069Z","modified":"2022-09-29T03:17:27.600Z","0.1.0":"2022-09-21T13:58:22.802Z","0.3.0":"2022-09-28T13:42:20.014Z","0.3.1":"2022-09-28T14:14:24.156Z","0.3.2":"2022-09-29T03:17:27.526Z"},"maintainers":[{"name":"ntkoopman2","email":"n.t.koopman@nandoe.net"}],"license":"MIT","readme":"# @6cat/env\n\nCreate javascript objects from environment variables. If you are using\nTypeScript, the result is fully typed as well.\n\n> **Warning** While environment variables names can theoretically contain any\n> character besides `=`, there are many tools that do not support anything\n> besides `A-Za-z0-9_` and it's therefore recommended that you limit yourself to\n> those characters.\n\n## Usage\n\n```ts\nimport { parseEnvironment, string, number } from \"@6cat/env\";\n\nconst env = parseEnvironment({\n  auth: {\n    bearerToken: string({ default: \"\" }),\n    requestLimit: number,\n  },\n});\n\nconsole.log(env.auth.bearerToken);\n```\n\nThis would read and log the value from environment variables named\n`AUTH_BEARER_TOKEN`, `AUTH_BEARERTOKEN`, `auth_bearerToken`, or\n`auth.bearerToken` (this last form is discouraged).\n\n<!--doc:src/env.ts#parseEnvironment-->\n\n### parseEnvironment\n\nRead environment variables\n\n`env`: Environment to use (default: process.env)\n\n`profiles`: Optional profiles\n\nIf specified, environment variables that start with these values will override\nany other keys. The first array value has the highest priority. Profile\nvariables can use the optional prefix `_` or `%`.\n\nFor example, this allows for configuring multiple environments:\n\n```ts\nlet env = parseEnvironment({ endpoint: string }, { profiles: [\"dev\"] });\n```\n\n```env\nENDPOINT=http://service.prod\n_DEV_ENDPOINT=http://service.dev\n_TEST_ENDPOINT=http://localhost:2000\n```\n\n`argv`: Whether command line arguments will be parsed as well\n\nIf true, in addition to environment variables, command line arguments will be\nparsed as well:\n\n```sh\nnode app.js --service.name=foo -Dservice.version=v1\n```\n\n```ts\nlet env = parseEnvironment(\n  { service: { name: string, version: string } },\n  { argv: true }\n);\n```\n\nIf a string is configured, it will be prefixed to any argument provided. (note\nthat this will effectively disable profile support for command line arguments)\n\n```sh\nnode action.js --name=foo\n```\n\n```ts\nlet env = parseEnvironment({ input: { name: string } }, { argv: \"input\" });\n```\n\n<!--/doc-->\n\n## Types\n\nThe following types are included in the package.\n\n<!--doc:src/array.ts#array-->\n\n### array\n\nRead an array\n\nArray values are comma separated by default:\n\n```text\nEXAMPLE_ARRAY=value,other value\n```\n\nIf you want to split values into multiple environment variables, you can use\nindexed entries:\n\n```text\nEXAMPLE_ARRAY_0=value\nEXAMPLE_ARRAY_1=other value\nexampleArray[2]=alternative syntax\n```\n\nYou can create arrays of complex objects, but it that case you can only use\nindexed entries:\n\n```ts\nlet env = parseEnvironment({ values: array({ url: string }) });\n```\n\n```text\nvalues_0_url=https://foo\nvalues_1_url=https://bar\n```\n\n<!--/doc-->\n\n<!--doc:src/boolean.ts#boolean-->\n\n### boolean\n\nRead a boolean\n\nSimilar to YAML, supported formats are `true`, `y`, `yes`, and `on`.\n\n`default`: A default value in case no environment variables is defined (default:\nundefined)\n\n`required`: Whether the value is required, in which case an error will be thrown\nif no value is provided (default: false)\n\n<!--/doc-->\n\n<!--doc:src/number.ts#number-->\n\n### number\n\nRead a number\n\n`default`: A default value in case no environment variables is defined (default:\nundefined)\n\n`required`: Whether the value is required, in which case an error will be thrown\nif no value is provided (default: false)\n\n<!--/doc-->\n\n<!--doc:src/record.ts#record-->\n\n### record\n\nRead a record\n\nStrings will always be converted to lowercase when used as keys, to avoid\nsurprises when switching keys between upper and lowercase.\n\nFor example,\n\n```ts\nconst env = parseEnvironment({ values: record(string, string) });\nconsole.log(env.values[\"test\"]);\n```\n\nWill read environment variables `VALUES_TEST` and `values.test`.\n\n<!--/doc-->\n\n<!--doc:src/string.ts#string-->\n\n### string\n\nRead a string\n\n`default`: A default value in case no environment variables is defined (default:\nundefined)\n\n`required`: Whether the value is required, in which case an error will be thrown\nif no value is provided (default: false)\n\n`trim`: Whether whitespace will be trimmed from the value (default: true)\n\n`trailingSlash`: Whether a trailing slash is automatically added or removed from\nthe value (default: no change)\n\n<!--/doc-->\n\n## Creating custom types\n\nThe easiest way to add support for a new type is by using the `Parser.forValue`\nmethod. For example, if you want to parse URLs:\n\n```ts\nimport { parseEnvironment, Parser } from \"@6cat/env\";\n\nfunction url() {\n  return Parser.forValue((value, ctx) => (value ? new URL(value) : undefined));\n}\n\nconst env = parseEnvironment({\n  endpoint: url,\n});\n```\n\nIf no environment variables matches, a value of `undefined` will be passed to\nthe parser, allowing you to set a default value.\n","readmeFilename":"README.md","description":"Create javascript objects from environment variables. If you are using TypeScript, the result is fully typed as well."}