{"_id":"@b2wads/env-o-loader","_rev":"22-1357912ec6cbd6e49bb79ab3205aa8b0","name":"@b2wads/env-o-loader","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@b2wads/env-o-loader","version":"1.0.0","description":"config loader with envvar support","main":"index.js","types":"index.d.ts","typings":"index.d.ts","engines":{"node":">= 6.10.0"},"scripts":{"clean":"find test -name \"*.js\" -delete","build":"npm run clean && tsc -p test","lint":"eslint --env es6 --env node --no-eslintrc index.js","test":"npm run lint && npm run build && mocha --reporter dot"},"author":{"name":"B2WADS","email":"<dev@b2wads.com"},"repository":{"type":"git","url":"git+ssh://git@bitbucket.org/b2wads/env-o-loader.git"},"bugs":{"url":"https://github.com/b2wads/env-o-loader/issues"},"license":"BSD-3-Clause","devDependencies":{"@types/chai":"^4.0.1","@types/mocha":"^2.2.41","@types/node":"^8.0.8","@types/should":"^8.3.0","@types/underscore":"^1.8.1","chai":"^4.1.1","mocha-co":"^1.17.2","should":"^11.2.1","typescript":"^2.4.1"},"dependencies":{"callsites":"^2.0.0","iso8601-duration":"^1.0.6","js-yaml":"^3.10.0","qs":"^6.5.0","underscore":"^1.8.3"},"gitHead":"726a5ada74b752d342ea613dcce1bafc0744ce18","homepage":"https://bitbucket.org/b2wads/env-o-loader#readme","_id":"@b2wads/env-o-loader@1.0.0","_nodeVersion":"10.17.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-qt3BiyzWtmpqBLa1U7jkoevVHNqN5l7JM5H+2pzHO4D0QAYk9AR2rBWBFIek4oq00agd2LsxLS5puxk0zMjTuA==","shasum":"56a68dc26d7ac8d1f2a2718acfbefb71f5c1ebbb","tarball":"https://registry.npmjs.org/@b2wads/env-o-loader/-/env-o-loader-1.0.0.tgz","fileCount":14,"unpackedSize":28781,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeinPVCRA9TVsSAnZWagAA7bAP/A7PFZ0yCUwC705T1MJD\nPqonIeA1D2m2vQw9dNnKebTRQe8Mlvazll0tS463pq9hvg1lzGa2rrrPwtAh\nUG1n1mHPMQL6PiQf/kDAKa5HcVrVr95Qkc1FIbhL63u9JUbNOy1RZsct656I\n3PuuZR9at/qys7ogyUg5P1He/DWUva6qpNoiEiiyYQ29JEyQmvb3/GD7HOHl\n5PZPKjr1pGnVvcTFQYDUysvWMmER6eDLBAcQTwlVfhBUXgF3uyCXPxWRqRpQ\nYaK3LigUp6LzEypjxXMgsfIHC6PKh3zvOXK1XlOuVfpin2HT95oNmfxJyGw9\nP6SYbYyyANzMfD+8TorEmeT72XzuLyUHtj4OWHBYUERgIQd93GLQBkZQi9ma\nITr5+B+CMIGhwQHKclfP23EePtKAfH8lKzL2iaxYIisoL5bukoQ6oi471CAA\nPPENyrqaNLymbeZKP7RkAYZ+ukT+wIP9PFNmq1Issb3kXiQ+OACOaYZletsw\n3vV2CaGln9BI6Pm3xiww55MXCpVLsYe2f1TQAa7KiSGP3WDwIHkeVRO3hvz4\nG0scoV67JT8XuVAgcAaZnh9IeF6V0D6ubfzg9/BvmevY01uJ7ybVfrbHPe4I\ngsjXYeeYIwp+QAwkGvtxfr9LpUPB6dm8e992YnByy13QrJ7siy5xKBik9L3S\nyufx\r\n=WBpW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICL6f0eFHzRFVwTZI8DmF6CMH14ifYc5J06cPzlWwO1xAiAN8Pi+XKipYR9cSduZyQouNLfTiMgfyffk4Fo70TLt5g=="}]},"maintainers":[{"name":"dehmirandac2","email":"dehmirandac2@gmail.com"},{"name":"lucasdomi","email":"lucasdomi@gmail.com"},{"name":"pabarros","email":"paulo.alfredo.barros@gmail.com"},{"name":"apfzvd","email":"apfzvd@gmail.com"},{"name":"igorgcosta","email":"igorgabriel@outlook.com"},{"name":"dentxinho","email":"raul_baldner_junior@hotmail.com"},{"name":"luizzamboni","email":"luizamboni2002@hotmail.com"},{"name":"george-veras","email":"george.veras.valentim@gmail.com"}],"_npmUser":{"name":"pabarros","email":"paulo.alfredo.barros@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/env-o-loader_1.0.0_1586131924830_0.3257286037170575"},"_hasShrinkwrap":false},"1.0.1":{"name":"@b2wads/env-o-loader","version":"1.0.1","description":"config loader with envvar support","main":"index.js","types":"index.d.ts","typings":"index.d.ts","engines":{"node":">= 6.10.0"},"scripts":{"clean":"find test -name \"*.js\" -delete","build":"npm run clean && tsc -p test","lint":"eslint --env es6 --env node --no-eslintrc index.js","test":"npm run lint && npm run build && mocha --reporter dot"},"author":{"name":"B2WADS","email":"<dev@b2wads.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/b2wads/env-o-loader.git"},"bugs":{"url":"https://github.com/b2wads/env-o-loader/issues"},"license":"BSD-3-Clause","devDependencies":{"@types/chai":"^4.0.1","@types/mocha":"^2.2.41","@types/node":"^8.0.8","@types/should":"^8.3.0","@types/underscore":"^1.8.1","chai":"^4.1.1","mocha-co":"^1.17.2","should":"^11.2.1","typescript":"^2.4.1"},"dependencies":{"callsites":"^2.0.0","iso8601-duration":"^1.0.6","js-yaml":"^3.10.0","qs":"^6.5.0","underscore":"^1.8.3"},"gitHead":"2d40a350edcf58c80277c5d5fd569c3aa9de15c8","homepage":"https://github.com/b2wads/env-o-loader#readme","_id":"@b2wads/env-o-loader@1.0.1","_nodeVersion":"10.17.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-sDXgm0bgPMnUYtUqOnfP9/QbWBVbewBeMa4XmJzj2+n3J4h5gB55gI9idpFNenEkqPch15r08WirmEMoYXPhrw==","shasum":"ab670b6a032327b498861049636a152eda51dce6","tarball":"https://registry.npmjs.org/@b2wads/env-o-loader/-/env-o-loader-1.0.1.tgz","fileCount":14,"unpackedSize":28778,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeinRnCRA9TVsSAnZWagAAcssP/3iYF8cJ0sGsg4B5RD3v\nFAWit8FGehecY5hQiYksJ0O5Vds8McoImtxuHv9s/BWLdOh3M24RpwAo9PN7\nsGgz/w1Dxk+mIviow09r7kWgw/q3kVIhUZbcWXa2mVIY1zWQqneDes6MxTFi\n52SkU+nzdh95hRc1xHtT7fEtKxn2d3bcLR3/acyXbV7KNBL81WiZBDr1qJYj\nTaTw3mrm43209UGsgbr0AMnvQX1MZr9ppe7tCLAK23MybYHPWKjzQdgI/iGh\nWDqRY4/sbFP/Eeqd5dOft4hIjQ6QDjcReF09m/9+lXP1JDVBGxhyf3vSLQWY\nOY30KzJTTsDypKQX5OTJsSXb5L2M909a+ZRZOPUDgQ2/tf5FcZ/7Cb+H1z2K\nr2enowlSx7yEbzXK3iDYnM9DqGUfdFcaT+mlBSUNn5X7DftDXnbWilH0oTGq\ngTAv3rglRgt4pS7Vx9SkP8vZCdZefsyWTl72WvRbBmj6dTIeVWzXGz5rR7Lv\nbwwwqspoRehYpG1ofPiNJaB/WLIxfavVTX4Hw7V0iLlMUiIOTMQJlbFhgNDf\ne9KiUfYliPk2rrJlMOrx+nkxlhC2SfXukdZHlu7ldro98nJKbFUl8F9292Pn\nxHGFaUA//x/FudD6HAfcNRHhbO4Mn5Cf2AsL4S83ShFgm8IQeKRKWwOXLxTd\n0lPL\r\n=Vmnh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfQsT0nrmWQeZUjtyAqafJsDpUAhpx6LWSAlNpkIZwyAIhAJEiSITCEj6Z6Y+sNJcFh6ZGzmrRGAlqqUNMv0nqGmN9"}]},"maintainers":[{"name":"apfzvd","email":"apfzvd@gmail.com"},{"name":"dehmirandac2","email":"dehmirandac2@gmail.com"},{"name":"dentxinho","email":"raul_baldner_junior@hotmail.com"},{"name":"george-veras","email":"george.veras.valentim@gmail.com"},{"name":"igorgcosta","email":"igorgabriel@outlook.com"},{"name":"lucasdomi","email":"lucasdomi@gmail.com"},{"name":"luizzamboni","email":"luizamboni2002@hotmail.com"},{"name":"pabarros","email":"paulo.alfredo.barros@gmail.com"}],"_npmUser":{"name":"pabarros","email":"paulo.alfredo.barros@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/env-o-loader_1.0.1_1586132070916_0.06769616679334112"},"_hasShrinkwrap":false},"1.0.2":{"name":"@b2wads/env-o-loader","version":"1.0.2","description":"config loader with envvar support","main":"index.js","types":"index.d.ts","typings":"index.d.ts","engines":{"node":">= 6.10.0"},"scripts":{"clean":"find test -name \"*.js\" -delete","build":"npm run clean && tsc -p test","lint":"eslint --env es6 --env node --no-eslintrc index.js","test":"npm run lint && npm run build && mocha --reporter dot"},"author":{"name":"B2WADS","email":"<dev@b2wads.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/b2wads/b2wads-env-o-loader.git"},"bugs":{"url":"https://github.com/b2wads/b2wads-env-o-loader/issues"},"license":"BSD-3-Clause","devDependencies":{"@types/chai":"^4.0.1","@types/mocha":"^2.2.41","@types/node":"^8.0.8","@types/should":"^8.3.0","@types/underscore":"^1.8.1","chai":"^4.1.1","mocha-co":"^1.17.2","should":"^11.2.1","typescript":"^2.4.1"},"dependencies":{"callsites":"^2.0.0","iso8601-duration":"^1.0.6","js-yaml":"^3.10.0","qs":"^6.5.0","underscore":"^1.8.3"},"gitHead":"0a0111aada1229fbcf57aa43146e4930cc4ae81e","homepage":"https://github.com/b2wads/b2wads-env-o-loader#readme","_id":"@b2wads/env-o-loader@1.0.2","_nodeVersion":"10.17.0","_npmVersion":"6.11.3","dist":{"integrity":"sha512-qmzgMQ/r2BCz7xjn2fCnyyUu91Oq3iI6fs48JXESWYPSCILLmaZ44LbC21VN1ykdbQtCGlZRAg3US0z/LkTtFg==","shasum":"54bed004ad65577c0cead1a48408ee1a55004669","tarball":"https://registry.npmjs.org/@b2wads/env-o-loader/-/env-o-loader-1.0.2.tgz","fileCount":14,"unpackedSize":28872,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejPAOCRA9TVsSAnZWagAAkCYP/2VXXxMnWjE3CtKBrxxk\nv8MPUyrurc0/+lJpxzOAyZSFfJIXM5t+Va3wpfl8LzwN0+OyOVnWhJZmp1NF\nQPbCAAl0ozr51M0JaaijKge66ClDR1Jx/1WtH2Ds5BUce2SRRXE4bf0tS8NU\nJHyS4NIBSKPq4vrpklD7aNW8COO7yy9COTp8ht5/R2G9n1gJvCWpd0Kj9Lvh\n2hu1Su4d731wJgFo3EbcAca9IYq/dYGQiAjhp/2VRZZTt1rjlqaA9WeoQS6g\n8KLG7899/2NAjQgMvwJtfCOerPd1YWDKjm6A/d7jjxy3W+KSjGYWnqG5FOXK\n9sucUzqrWY3+ghv38y5HR6dSNKLcSSvANZrjy7tQy6WHXyPEAnrn/Qlcraic\n6x55J+N1uMPRO8ucMO5RoRjxzJi/PsfS2MgZ2owh1263AmvLUscIuEX5v1Ix\n7uOdeKeVm0of7y+FBsuED3iXHEZXHfdEwdQi2G+67bMTi14i3bKsRmejHiIQ\nvckRdCUsSaBFIQypX1RERognfvt12MdrYlzKmJL0IysU3t/FyzTvBaJODA03\nOEWY3PKI4rIstvByAvIpFIqQyOy0M8wWIkNPPb8hP6mt4DKG91PgSDouKo20\nWnVVKPweKy7g5UjPVXX6/tkeYmI+gToJJFnCamhrrEpYKaeN2wJVAJ4l6kgH\n9//d\r\n=L4r6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGyWmVfSxkhBKycx+vC3GxC3wXvBeFdyJ0pk93Ut5PZJAiEA2cjdkGX3RHaU3r9PkVeWfYBb5adAUZ/iXwNq3VtCpxE="}]},"maintainers":[{"name":"apfzvd","email":"apfzvd@gmail.com"},{"name":"dehmirandac2","email":"dehmirandac2@gmail.com"},{"name":"dentxinho","email":"raul_baldner_junior@hotmail.com"},{"name":"george-veras","email":"george.veras.valentim@gmail.com"},{"name":"igorgcosta","email":"igorgabriel@outlook.com"},{"name":"lucasdomi","email":"lucasdomi@gmail.com"},{"name":"luizzamboni","email":"luizamboni2002@hotmail.com"},{"name":"pabarros","email":"paulo.alfredo.barros@gmail.com"}],"_npmUser":{"name":"pabarros","email":"paulo.alfredo.barros@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/env-o-loader_1.0.2_1586294797748_0.990619759874027"},"_hasShrinkwrap":false}},"time":{"created":"2020-04-06T00:12:04.589Z","1.0.0":"2020-04-06T00:12:04.980Z","modified":"2023-05-29T14:24:28.920Z","1.0.1":"2020-04-06T00:14:31.117Z","1.0.2":"2020-04-07T21:26:37.944Z"},"maintainers":[{"email":"jean.michel@americanas.io","name":"mikeofic"},{"email":"raul_baldner_junior@hotmail.com","name":"dentxinho"},{"email":"atila.santos@b2wdigital.com","name":"atila.santos"},{"email":"gabriel.hssantos@b2wdigital.com","name":"gabrielhenriques"},{"email":"carlos.cmelo@b2wdigital.com","name":"carlosmeloads"}],"description":"config loader with envvar support","homepage":"https://github.com/b2wads/b2wads-env-o-loader#readme","repository":{"type":"git","url":"git+ssh://git@github.com/b2wads/b2wads-env-o-loader.git"},"author":{"name":"B2WADS","email":"<dev@b2wads.com"},"bugs":{"url":"https://github.com/b2wads/b2wads-env-o-loader/issues"},"license":"BSD-3-Clause","readme":"# @b2wads/env-o-loader\n\n[b2wads]: http://www.b2wads.com/\n[iso8601]: https://en.wikipedia.org/wiki/ISO_8601\n[license]: https://opensource.org/licenses/BSD-3-Clause\n[json]: http://json.org/\n[yaml]: http://www.yaml.org/\n\nThis is a helper to make easier loading enviroment-oriented settings.\n\n## Genesis\n\nThis code was born inside B2WADS code base, and it made sense to\nrelease this as [open source](./COPYING).\n\n## Install\n```sh\nnpm install @b2wads/env-o-loader\n```\n\n## Use\n\nSimply import the module and call it as a function:\n\n```javascript\nconst loader = require(\"@b2wads/env-o-loader\")\nconst settings = loader(require(\"config/my-app\"))\n```\n\nThe configuration object must have a `defaults` key at least, and should have a\nkey for each environment you intent to work with.\n\n### Environments as primitive values\n\nLet’s take the following JSON settings file:\n\n```json\n{\n  \"defaults\": \"some default value\",\n  \"test\": \"test environment\",\n  \"production\": \"env:MY_VAR\"\n}\n```\n\n`@b2wads/env-o-loader` will select the environment according to the `NODE_ENV` envvar\ncontent, defaults to `development`.\n\n- If `NODE_ENV` is `test`, `@b2wads/env-o-loader` returns `\"test environment\"`;\n- If `NODE_ENV` is `production`, `@b2wads/env-o-loader` returns the content of the\n  `MY_VAR` envvar;\n- If `NODE_ENV` is something else, `@b2wads/env-o-loader` returns `\"some default value\"`.\n\nYou also can supply the environment you want as second parameter:\n\n```javascript\nloader(require(\"./config\"), \"sandbox\")\n```\n\n### Environments as object\n\nThe object environment advantage is that the `defaults` value fullfills the\nundefined keys.\n\nFor example:\n\n```json\n{\n  \"defaults\": {\n    \"x\": 3,\n    \"y\": 4\n  },\n  \"development\": {\n    \"z\": 5\n  }\n}\n```\n\nUnder development environment, `@b2wads/env-o-loader` returns the following object:\n\n```javascript\n{ x: 3, y: 4, z: 5 }\n```\n\n### Nested keys\n\nYou can use nested keys. For example, the sample above can be written as:\n\n```json\n{\n  \"defaults\": {\n    \"x\": 3,\n    \"y\": 4\n  },\n  \"development.z\": 5\n}\n```\n\nWith the same result.\n\nNested keys can be multilevel:\n\n```json\n{\n  \"defaults\": {},\n  \"development\": {\n    \"foo.bar.a\": true,\n    \"foo.bar.b\": false,\n    \"foo.baaz\": null\n  }\n}\n```\n\nLeading to:\n\n```javascript\n{\n  foo: {\n    bar: { a: true, b: false },\n    baaz: null,\n  },\n}\n```\n\nAnd can be compound with unnested one:\n\n```json\n{\n  \"defaults\": {},\n  \"development\": {\n    \"foo\": { \"baaz\": null },\n    \"foo.bar\": { \"a\": true },\n    \"foo.bar.b\": false\n  }\n}\n```\n\n### Data from envvar\n\nUsing the `env:` prefix, `@b2wads/env-o-loader` loads the content from an envvar.\n\nTo load objects from envvar, use querystring format:\n\n```json\n{\n  \"defaults\": {},\n  \"production\": \"env:SETTINGS\"\n}\n```\n\n```sh\nenv SETTINGS=\"x=3&y=4&foo[]=bar&foo[]=baaz\"\n```\n\nNested objects can be got like:\n\n```sh\nenv SETTINGS=\"v[x]=3&v[y]=4\"\n```\n\n### Other types\n\nIf you must load settings from JSON or envvar, `@b2wads/env-o-loader` supports more types\nthan those formats, serialised as string.\n\n- Date: use [ISO 8601][iso8601]: `2010-10-10` for October 10, 2010.\n- Time: use [ISO 8601][iso8601]: `2010-10-10T12:30:00Z` for October 10, 2010,\n  12:30 UTC.\n- Duration: use [ISO 8601][iso8601]: `P3Y6M4DT12H30M5S` for 3 year, 6 months,\n  four days, 12 hours, 30 minutes, and 5 seconds.\n- Regular expressions: write the regex inside a string. For example:\n  `\"/\\\\w(cde)?/i\"` means `/\\w(cde)?/i`.\n\nExtras only in querystring:\n\n- `null` string resolves to `null`\n- `true` string resolves to `true`\n- `false` string resolves to `false`\n- anything parseable to number resolves to number\n\nTo force string, you must prefix the value with `raw:`:\n\n- `raw:null` resolves to `\"null\"`\n- `raw:2010-10-10` resolves to `\"2010-10-10\"`\n- `raw:PT12H` resolves to `\"PT12H\"`\n- `raw:42` resolves to `\"42\"`\n- `raw:env:HOME` resolves to `\"env:HOME\"`\n- `raw:raw:` resolves to `\"raw:\"`\n\n### Loading files\n\n`@b2wads/env-o-loader` can load files by its names. The supported types are [JSON][json]\nand [YAML][yaml].\n\nThe JSON file string **must** ends with `.json`, and the YAML file string\n**must** ends with `.yaml` or `.yml`.\n\nExamples:\n\n- `loader(\"./config/data.json\")`\n- `loader(\"../../settings.yaml\")`\n\n## License\n\nThis code is licensed under [the 3-Clause BSD License][license].\n","readmeFilename":"README.md"}