From 041b53c0b659174a6acb9cb3cefa63bc2b36dcf4 Mon Sep 17 00:00:00 2001 From: Nguyen Tuan Linh Date: Fri, 3 Nov 2023 15:47:44 +0700 Subject: [PATCH 1/2] Merge remote-tracking branch 'starter/master' into dev --- .coveralls.yml.example | 7 + .github/workflows/build.yml | 33 ++ .gitignore | 1 + .npmignore | 3 + README.md | 6 +- package-lock.json | 496 +++--------------------- package.json | 12 +- tests/index.js | 733 +++++++++++++++++++++--------------- 8 files changed, 551 insertions(+), 740 deletions(-) create mode 100644 .coveralls.yml.example create mode 100644 .github/workflows/build.yml diff --git a/.coveralls.yml.example b/.coveralls.yml.example new file mode 100644 index 0000000..8ab631e --- /dev/null +++ b/.coveralls.yml.example @@ -0,0 +1,7 @@ +service_name: $CI_NAME +service_job_id: $CI_JOB_ID +service_build_url: $CI_BUILD_URL +service_branch: $CI_BRANCH +service_pull_request: $CI_PULL_REQUEST + +repo_token: $COVERALLS_REPO_TOKEN diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..79ef596 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,33 @@ +name: build +run-name: ${{ github.actor }} is making a build +on: + push: + branches: + - master +jobs: + test-coverage: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: 20.x + - name: Information + run: | + echo "Node.js" + node -v + echo "npm" + npm -v + - name: Install + run: npm ci + - name: Test + run: | + npm test + mkdir coverage + npm run test:report > coverage/test.lcov + - name: Publish test result to Coveralls + uses: coverallsapp/github-action@v2 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 3c8d565..1b79f3a 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,7 @@ lerna-debug.log* *.sw? # Test results +.coveralls.yml .nyc_output coverage diff --git a/.npmignore b/.npmignore index 1cee673..c0148a6 100644 --- a/.npmignore +++ b/.npmignore @@ -19,6 +19,7 @@ lerna-debug.log* # Test results .nyc_output +.coveralls.yml coverage # Common @@ -41,6 +42,8 @@ babel.config.* .nycrc .nycrc.* nyc.config.js +.coveralls.yml.example .travis.yml +.github /tests /src diff --git a/README.md b/README.md index 9413200..94a36cd 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # dotenv-conversion [![NPM version](https://img.shields.io/npm/v/dotenv-conversion.svg?style=flat-square)](https://www.npmjs.com/package/dotenv-conversion) -[![Travis (.org)](https://img.shields.io/travis/com/linhntaim/dotenv-conversion?style=flat-square)](https://app.travis-ci.com/github/linhntaim/dotenv-conversion) -[![Coveralls github](https://img.shields.io/coveralls/github/linhntaim/dotenv-conversion?style=flat-square)](https://coveralls.io/github/linhntaim/dotenv-conversion) -[![NPM](https://img.shields.io/npm/l/dotenv-conversion?style=flat-square)](https://github.com/linhntaim/dotenv-conversion/blob/master/LICENSE) +[![Github Actions](https://img.shields.io/github/actions/workflow/status/linhntaim/dotenv-conversion/build.yml?style=flat-square)](https://github.com/linhntaim/dotenv-conversion/actions/workflows/build.yml) +[![Coveralls](https://img.shields.io/coveralls/github/linhntaim/dotenv-conversion?style=flat-square)](https://coveralls.io/github/linhntaim/dotenv-conversion) +[![License](https://img.shields.io/npm/l/dotenv-conversion?style=flat-square)](https://github.com/linhntaim/dotenv-conversion/blob/master/LICENSE) `dotenv-conversion` adds variable conversion on top of `dotenv`. If you find yourself needing to convert/transform environment variables to anything more useful than strings, diff --git a/package-lock.json b/package-lock.json index 42de42b..e03e6ae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "dotenv-conversion", - "version": "3.0.1", + "version": "3.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "dotenv-conversion", - "version": "3.0.1", + "version": "3.1.0", "license": "MIT", "devDependencies": { "@babel/cli": "^7.23.0", @@ -15,7 +15,7 @@ "@babel/register": "^7.22.15", "babel-plugin-add-module-exports": "^1.0.4", "chai": "^4.3.10", - "coveralls": "^3.1.1", + "coveralls-next": "^4.2.0", "dotenv": "^16.3.1", "dotenv-expand": "^10.0.0", "dotenv-flow": "^4.0.0", @@ -1688,9 +1688,9 @@ } }, "node_modules/@babel/traverse": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.0.tgz", - "integrity": "sha512-t/QaEvyIoIkwzpiZ7aoSKK8kObQYeF7T2v+dazAYCb8SXtp58zEVkWW7zAnju8FNKNdr4ScAOEDmMItbyOmEYw==", + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.2.tgz", + "integrity": "sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw==", "dev": true, "dependencies": { "@babel/code-frame": "^7.22.13", @@ -1867,22 +1867,6 @@ "node": ">=8" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -1953,24 +1937,6 @@ "sprintf-js": "~1.0.2" } }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dev": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, "node_modules/assertion-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", @@ -1986,21 +1952,6 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==", - "dev": true - }, "node_modules/babel-plugin-add-module-exports": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-1.0.4.tgz", @@ -2052,15 +2003,6 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dev": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -2195,12 +2137,6 @@ } ] }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==", - "dev": true - }, "node_modules/chai": { "version": "4.3.10", "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz", @@ -2373,29 +2309,64 @@ "url": "https://opencollective.com/core-js" } }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", - "dev": true - }, - "node_modules/coveralls": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-3.1.1.tgz", - "integrity": "sha512-+dxnG2NHncSD1NrqbSM3dn/lE57O6Qf/koe9+I7c+wzkqRmEvcp0kgJdxKInzYzkICKkFMZsX3Vct3++tsF9ww==", + "node_modules/coveralls-next": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/coveralls-next/-/coveralls-next-4.2.0.tgz", + "integrity": "sha512-zg41a/4QDSASPtlV6gp+6owoU43U5CguxuPZR3nPZ26M5ZYdEK3MdUe7HwE+AnCZPkucudfhqqJZehCNkz2rYg==", "dev": true, "dependencies": { - "js-yaml": "^3.13.1", - "lcov-parse": "^1.0.0", - "log-driver": "^1.2.7", - "minimist": "^1.2.5", - "request": "^2.88.2" + "form-data": "4.0.0", + "js-yaml": "4.1.0", + "lcov-parse": "1.0.0", + "log-driver": "1.2.7", + "minimist": "1.2.7" }, "bin": { "coveralls": "bin/coveralls.js" }, "engines": { - "node": ">=6" + "node": ">=14" + } + }, + "node_modules/coveralls-next/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/coveralls-next/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/coveralls-next/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/coveralls-next/node_modules/minimist": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/cross-spawn": { @@ -2412,18 +2383,6 @@ "node": ">= 8" } }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -2528,16 +2487,6 @@ "node": ">= 12.0.0" } }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dev": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, "node_modules/electron-to-chromium": { "version": "1.4.543", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.543.tgz", @@ -2596,33 +2545,6 @@ "node": ">=0.10.0" } }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -2687,29 +2609,6 @@ "node": ">=8.0.0" } }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, "node_modules/fromentries": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", @@ -2742,20 +2641,6 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -2792,15 +2677,6 @@ "node": ">=8.0.0" } }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -2848,29 +2724,6 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dev": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/has": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", @@ -2920,21 +2773,6 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -3107,12 +2945,6 @@ "node": ">=0.10.0" } }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", - "dev": true - }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", @@ -3295,12 +3127,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", - "dev": true - }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -3313,24 +3139,6 @@ "node": ">=4" } }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true - }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -3343,21 +3151,6 @@ "node": ">=6" } }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dev": true, - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -3571,15 +3364,6 @@ "node": "*" } }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/mocha": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", @@ -4020,15 +3804,6 @@ "node": ">=6" } }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -4146,12 +3921,6 @@ "node": "*" } }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true - }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -4273,30 +4042,6 @@ "node": ">=8" } }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -4401,48 +4146,6 @@ "node": ">=4" } }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -4519,12 +4222,6 @@ } ] }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -4654,31 +4351,6 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, - "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dev": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -4785,37 +4457,6 @@ "node": ">=8.0" } }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true - }, "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", @@ -4913,15 +4554,6 @@ "browserslist": ">= 4.21.0" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, "node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", @@ -4931,20 +4563,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", diff --git a/package.json b/package.json index 66ee871..9315cf9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "dotenv-conversion", - "version": "3.0.1", + "version": "3.1.0", "description": "An extension for dotenv is to help converting environment variables to anything more useful than strings.", "main": "dist/index.js", "exports": { @@ -21,8 +21,11 @@ "scripts": { "build": "babel ./src -d ./dist -D --delete-dir-on-start", "test": "nyc mocha ./tests --require @babel/register", - "coverage": "nyc report --reporter=text-lcov | coveralls", - "ready": "npm i && npm run build && npm test" + "test:report": "nyc report --reporter=text-lcov", + "test:publish": "npm run test:report | coveralls", + "ci": "npm i && npm run build && npm test", + "cia": "npm run ci && npm run test:publish", + "cd": "npm run ci && npm publish" }, "repository": { "type": "git", @@ -31,6 +34,7 @@ "keywords": [ "dotenv", "conversion", + "environment", "variables", "automatic", "customized", @@ -50,7 +54,7 @@ "@babel/register": "^7.22.15", "babel-plugin-add-module-exports": "^1.0.4", "chai": "^4.3.10", - "coveralls": "^3.1.1", + "coveralls-next": "^4.2.0", "dotenv": "^16.3.1", "dotenv-expand": "^10.0.0", "dotenv-flow": "^4.0.0", diff --git a/tests/index.js b/tests/index.js index a3a2806..41cf347 100644 --- a/tests/index.js +++ b/tests/index.js @@ -6,16 +6,23 @@ import dotenvConversion from '../src' import fs from 'fs' import mocha from 'mocha' +// const before = mocha.after +// const beforeEach = mocha.beforeEach const after = mocha.after const afterEach = mocha.afterEach const describe = mocha.describe const it = mocha.it const expect = chai.expect -chai.should() const originEnv = {...process.env} describe('dotenv-conversion', function () { + // before(() => { + // }) + // beforeEach(() => { + // }) + // after(() => { + // }) afterEach(() => { process.env = {...originEnv} }) @@ -24,7 +31,7 @@ describe('dotenv-conversion', function () { it('default', function (done) { // input - // output + // expected output const expectedParsed = {} const expectedFromDotEnv = true const expectedIgnoreProcessEnv = false @@ -49,24 +56,26 @@ describe('dotenv-conversion', function () { obj: 'object', } + // executes const dotenvConversionConfig = dotenvConversion.convert() - dotenvConversionConfig.should.be.an('object') - dotenvConversionConfig.should.have.property('parsed') - dotenvConversionConfig.should.have.property('fromDotEnv') - dotenvConversionConfig.should.have.property('ignoreProcessEnv') - dotenvConversionConfig.should.have.property('prevents') - dotenvConversionConfig.should.have.property('specs') - dotenvConversionConfig.should.have.property('methods') - dotenvConversionConfig.should.have.property('methodAliases') - - dotenvConversionConfig.parsed.should.deep.equal(expectedParsed) - dotenvConversionConfig.fromDotEnv.should.equal(expectedFromDotEnv) - dotenvConversionConfig.ignoreProcessEnv.should.equal(expectedIgnoreProcessEnv) - dotenvConversionConfig.prevents.should.deep.equal(expectedPrevents) - dotenvConversionConfig.specs.should.deep.equal(expectedSpecs) - Object.keys(dotenvConversionConfig.methods).should.deep.equal(expectedMethods) - dotenvConversionConfig.methodAliases.should.deep.equal(expectedMethodAliases) + // asserts + expect(dotenvConversionConfig).to.be.an('object') + expect(dotenvConversionConfig).to.have.property('parsed') + expect(dotenvConversionConfig).to.have.property('fromDotEnv') + expect(dotenvConversionConfig).to.have.property('ignoreProcessEnv') + expect(dotenvConversionConfig).to.have.property('prevents') + expect(dotenvConversionConfig).to.have.property('specs') + expect(dotenvConversionConfig).to.have.property('methods') + expect(dotenvConversionConfig).to.have.property('methodAliases') + + expect(dotenvConversionConfig.parsed).to.deep.equal(expectedParsed) + expect(dotenvConversionConfig.fromDotEnv).to.equal(expectedFromDotEnv) + expect(dotenvConversionConfig.ignoreProcessEnv).to.equal(expectedIgnoreProcessEnv) + expect(dotenvConversionConfig.prevents).to.deep.equal(expectedPrevents) + expect(dotenvConversionConfig.specs).to.deep.equal(expectedSpecs) + expect(Object.keys(dotenvConversionConfig.methods)).to.deep.equal(expectedMethods) + expect(dotenvConversionConfig.methodAliases).to.deep.equal(expectedMethodAliases) done() }) @@ -105,7 +114,7 @@ describe('dotenv-conversion', function () { }, } - // output + // expected output const expectedParsed = { TRUE: true, FALSE: false, @@ -140,26 +149,28 @@ describe('dotenv-conversion', function () { raw: 'basic', // only raw added } + // executes const dotenvConversionConfig = dotenvConversion.convert(inputConfig) - dotenvConversionConfig.should.be.an('object') - dotenvConversionConfig.should.have.property('parsed') - dotenvConversionConfig.should.have.property('fromDotEnv') - dotenvConversionConfig.should.have.property('ignoreProcessEnv') - dotenvConversionConfig.should.have.property('prevents') - dotenvConversionConfig.should.have.property('specs') - dotenvConversionConfig.should.have.property('methods') - dotenvConversionConfig.should.have.property('methodAliases') - - dotenvConversionConfig.parsed.should.deep.equal(expectedParsed) - dotenvConversionConfig.fromDotEnv.should.equal(expectedFromDotEnv) - dotenvConversionConfig.ignoreProcessEnv.should.equal(expectedIgnoreProcessEnv) - dotenvConversionConfig.prevents.should.deep.equal(expectedPrevents) - dotenvConversionConfig.specs.should.deep.equal(expectedSpecs) - Object.keys(dotenvConversionConfig.methods).should.deep.equal(expectedMethods) - dotenvConversionConfig.methodAliases.should.deep.equal(expectedMethodAliases) - dotenvConversionConfig.methods.number('value').should.equal(expectedMethodNumberReturn) - dotenvConversionConfig.methods.basic('value').should.equal(expectedMethodBasicReturn) + // asserts + expect(dotenvConversionConfig).to.be.an('object') + expect(dotenvConversionConfig).to.have.property('parsed') + expect(dotenvConversionConfig).to.have.property('fromDotEnv') + expect(dotenvConversionConfig).to.have.property('ignoreProcessEnv') + expect(dotenvConversionConfig).to.have.property('prevents') + expect(dotenvConversionConfig).to.have.property('specs') + expect(dotenvConversionConfig).to.have.property('methods') + expect(dotenvConversionConfig).to.have.property('methodAliases') + + expect(dotenvConversionConfig.parsed).to.deep.equal(expectedParsed) + expect(dotenvConversionConfig.fromDotEnv).to.equal(expectedFromDotEnv) + expect(dotenvConversionConfig.ignoreProcessEnv).to.equal(expectedIgnoreProcessEnv) + expect(dotenvConversionConfig.prevents).to.deep.equal(expectedPrevents) + expect(dotenvConversionConfig.specs).to.deep.equal(expectedSpecs) + expect(Object.keys(dotenvConversionConfig.methods)).to.deep.equal(expectedMethods) + expect(dotenvConversionConfig.methodAliases).to.deep.equal(expectedMethodAliases) + expect(dotenvConversionConfig.methods.number('value')).to.equal(expectedMethodNumberReturn) + expect(dotenvConversionConfig.methods.basic('value')).to.equal(expectedMethodBasicReturn) done() }) @@ -174,14 +185,16 @@ describe('dotenv-conversion', function () { }, } - // output + // expected output const expectedError = 'Method: Invalid format' try { + // executes dotenvConversion.convert(inputConfig) } catch (e) { - e.should.equal(expectedError) + // asserts + expect(e).to.equal(expectedError) } done() @@ -195,14 +208,16 @@ describe('dotenv-conversion', function () { }, } - // output + // expected output const expectedError = 'Alias: Invalid format' try { + // executes dotenvConversion.convert(inputConfig) } catch (e) { - e.should.equal(expectedError) + // asserts + expect(e).to.equal(expectedError) } done() @@ -226,7 +241,7 @@ describe('dotenv-conversion', function () { ignoreProcessEnv: false, } - // output + // expected output const expected = { OK: true, } @@ -234,11 +249,13 @@ describe('dotenv-conversion', function () { OK: 'true', } + // executes const dotenvConfig = Object.assign({}, useEnv(input), inputConfig) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -252,17 +269,19 @@ describe('dotenv-conversion', function () { ignoreProcessEnv: true, } - // output + // expected output const expected = { OK: true, } const notExpectedForEnv = 'OK' + // executes const dotenvConfig = Object.assign({}, useEnv(input), inputConfig) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.not.have.property(notExpectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.not.have.property(notExpectedForEnv) done() }) @@ -276,7 +295,7 @@ describe('dotenv-conversion', function () { prevents: [], } - // output + // expected output const expected = { OK: true, } @@ -284,11 +303,13 @@ describe('dotenv-conversion', function () { OK: 'true', } + // executes const dotenvConfig = Object.assign({}, useEnv(input), inputConfig) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -302,7 +323,7 @@ describe('dotenv-conversion', function () { prevents: ['OK'], } - // output + // expected output const expected = { OK: 'yes', } @@ -310,11 +331,13 @@ describe('dotenv-conversion', function () { OK: 'yes', } + // executes const dotenvConfig = Object.assign({}, useEnv(input), inputConfig) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -325,7 +348,7 @@ describe('dotenv-conversion', function () { OK: 'yes', } - // output + // expected output const expected = { OK: true, } @@ -333,11 +356,13 @@ describe('dotenv-conversion', function () { OK: 'true', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -353,7 +378,7 @@ describe('dotenv-conversion', function () { }, } - // output + // expected output const expected = { OK: 1, } @@ -361,11 +386,13 @@ describe('dotenv-conversion', function () { OK: '1', } + // executes const dotenvConfig = Object.assign({}, useEnv(input), inputConfig) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -381,7 +408,7 @@ describe('dotenv-conversion', function () { }, } - // output + // expected output const expected = { OK: 1, } @@ -389,11 +416,13 @@ describe('dotenv-conversion', function () { OK: '1', } + // executes const dotenvConfig = Object.assign({}, useEnv(input), inputConfig) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -409,7 +438,7 @@ describe('dotenv-conversion', function () { }, } - // output + // expected output const expected = { OK: 'yes', } @@ -417,11 +446,13 @@ describe('dotenv-conversion', function () { OK: 'yes', } + // executes const dotenvConfig = Object.assign({}, useEnv(input), inputConfig) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -439,7 +470,7 @@ describe('dotenv-conversion', function () { }, } - // output + // expected output const expected = { OK: 'custom:yes', } @@ -447,11 +478,13 @@ describe('dotenv-conversion', function () { OK: 'custom:yes', } + // executes const dotenvConfig = Object.assign({}, useEnv(input), inputConfig) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -467,7 +500,7 @@ describe('dotenv-conversion', function () { }, } - // output + // expected output const expected = { OK: 'yes', } @@ -475,11 +508,13 @@ describe('dotenv-conversion', function () { OK: 'yes', } + // executes const dotenvConfig = Object.assign({}, useEnv(input), inputConfig) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -556,7 +591,7 @@ describe('dotenv-conversion', function () { }, } - // output + // expected output const expected = { FUNCTION: inputFunction, CLASS: inputClass, @@ -578,11 +613,13 @@ describe('dotenv-conversion', function () { JSON_BIGINT: 'undefined', } + // executes const dotenvConfig = Object.assign({}, useEnv(input), inputConfig) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -600,7 +637,7 @@ describe('dotenv-conversion', function () { NULL_1001: 'NuLL', } - // output + // expected output const expected = { NULL_1: null, NULL_2: null, @@ -622,11 +659,13 @@ describe('dotenv-conversion', function () { NULL_1001: 'NuLL', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -643,7 +682,7 @@ describe('dotenv-conversion', function () { UNDEFINED_1001: 'Undefined', } - // output + // expected output const expected = { UNDEFINED_1: undefined, UNDEFINED_2: undefined, @@ -663,11 +702,13 @@ describe('dotenv-conversion', function () { UNDEFINED_1001: 'Undefined', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -711,7 +752,7 @@ describe('dotenv-conversion', function () { BOOLEAN_1007: 'NonE', } - // output + // expected output const expected = { BOOLEAN_1: true, BOOLEAN_2: true, @@ -785,11 +826,13 @@ describe('dotenv-conversion', function () { BOOLEAN_1007: 'NonE', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -903,7 +946,7 @@ describe('dotenv-conversion', function () { NUMBER_1012: '4.5e+123any', } - // output + // expected output const expected = { NUMBER_1: NaN, NUMBER_2: Infinity, @@ -1117,11 +1160,13 @@ describe('dotenv-conversion', function () { NUMBER_1012: '4.5e+123any', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -1205,7 +1250,7 @@ describe('dotenv-conversion', function () { BIGINT_1326: '-0XAnany', } - // output + // expected output const expected = { BIGINT_1: 0n, BIGINT_2: 0n, @@ -1359,11 +1404,13 @@ describe('dotenv-conversion', function () { BIGINT_1326: '-0XAnany', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -1385,7 +1432,7 @@ describe('dotenv-conversion', function () { SYMBOL_1002: 'Symbol(any)any', } - // output + // expected output const expected = { SYMBOL_1: Symbol(), SYMBOL_2: Symbol('any'), @@ -1418,21 +1465,21 @@ describe('dotenv-conversion', function () { const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.SYMBOL_1.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_1.toString().should.equal(expected.SYMBOL_1.toString()) - dotenvConversionConfig.parsed.SYMBOL_2.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_2.toString().should.equal(expected.SYMBOL_2.toString()) - dotenvConversionConfig.parsed.SYMBOL_3.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_3.toString().should.equal(expected.SYMBOL_3.toString()) - dotenvConversionConfig.parsed.SYMBOL_4.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_4.toString().should.equal(expected.SYMBOL_4.toString()) - dotenvConversionConfig.parsed.SYMBOL_5.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_5.toString().should.equal(expected.SYMBOL_5.toString()) - dotenvConversionConfig.parsed.SYMBOL_6.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_6.toString().should.equal(expected.SYMBOL_6.toString()) - dotenvConversionConfig.parsed.SYMBOL_101.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_101.toString().should.equal(expected.SYMBOL_101.toString()) - process.env.should.deep.include(expectedForEnv) + expect(dotenvConversionConfig.parsed.SYMBOL_1).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_1.toString()).to.equal(expected.SYMBOL_1.toString()) + expect(dotenvConversionConfig.parsed.SYMBOL_2).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_2.toString()).to.equal(expected.SYMBOL_2.toString()) + expect(dotenvConversionConfig.parsed.SYMBOL_3).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_3.toString()).to.equal(expected.SYMBOL_3.toString()) + expect(dotenvConversionConfig.parsed.SYMBOL_4).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_4.toString()).to.equal(expected.SYMBOL_4.toString()) + expect(dotenvConversionConfig.parsed.SYMBOL_5).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_5.toString()).to.equal(expected.SYMBOL_5.toString()) + expect(dotenvConversionConfig.parsed.SYMBOL_6).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_6.toString()).to.equal(expected.SYMBOL_6.toString()) + expect(dotenvConversionConfig.parsed.SYMBOL_101).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_101.toString()).to.equal(expected.SYMBOL_101.toString()) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -1472,7 +1519,7 @@ describe('dotenv-conversion', function () { ARRAY_1033: '[-Infinity]', } - // output + // expected output const expected = { ARRAY_1: [null, true, false, 1, 'x', [-1, 2.1, 30, 4.5e+123], {'y': 'z'}], @@ -1538,11 +1585,13 @@ describe('dotenv-conversion', function () { ARRAY_1033: '[-Infinity]', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -1582,7 +1631,7 @@ describe('dotenv-conversion', function () { OBJECT_1033: '{"a":-Infinity}', } - // output + // expected output const expected = { OBJECT_1: {'a': null, 'b': true, 'c': false, 'd': 1, 'e': 'x', 'f': [-1, 2.1, 30, 4.5e+123], 'g': {'y': 'z'}}, @@ -1648,11 +1697,13 @@ describe('dotenv-conversion', function () { OBJECT_1033: '{"a":-Infinity}', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -1801,7 +1852,7 @@ describe('dotenv-conversion', function () { BOOLEAN_1006: ' bool : any ', } - // output + // expected output const expected = { BOOLEAN_1: false, BOOLEAN_2: false, @@ -2085,11 +2136,13 @@ describe('dotenv-conversion', function () { BOOLEAN_1006: ' bool : any ', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -2227,7 +2280,7 @@ describe('dotenv-conversion', function () { NUMBER_1006: ' num : any ', } - // output + // expected output const expected = { NUMBER_1: 1, NUMBER_2: 1, @@ -2489,11 +2542,13 @@ describe('dotenv-conversion', function () { NUMBER_1006: ' num : any ', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -2651,7 +2706,7 @@ describe('dotenv-conversion', function () { BIGINT_1006: ' big : any ', } - // output + // expected output const expected = { BIGINT_1: 1n, BIGINT_2: 1n, @@ -2953,11 +3008,13 @@ describe('dotenv-conversion', function () { BIGINT_1006: ' big : any ', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -3001,7 +3058,7 @@ describe('dotenv-conversion', function () { STRING_1006: ' str : any ', } - // output + // expected output const expected = { STRING_1: 'null', STRING_2: 'undefined', @@ -3075,11 +3132,13 @@ describe('dotenv-conversion', function () { STRING_1006: ' str : any ', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -3103,7 +3162,7 @@ describe('dotenv-conversion', function () { SYMBOL_1003: ' symbol : any ', } - // output + // expected output const expected = { SYMBOL_1: Symbol(), SYMBOL_2: Symbol(' '), @@ -3137,24 +3196,26 @@ describe('dotenv-conversion', function () { SYMBOL_1003: ' symbol : any ', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.SYMBOL_1.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_1.toString().should.equal(expected.SYMBOL_1.toString()) - dotenvConversionConfig.parsed.SYMBOL_2.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_2.toString().should.equal(expected.SYMBOL_2.toString()) - dotenvConversionConfig.parsed.SYMBOL_11.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_11.toString().should.equal(expected.SYMBOL_11.toString()) - dotenvConversionConfig.parsed.SYMBOL_12.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_12.toString().should.equal(expected.SYMBOL_12.toString()) - dotenvConversionConfig.parsed.SYMBOL_21.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_21.toString().should.equal(expected.SYMBOL_21.toString()) - dotenvConversionConfig.parsed.SYMBOL_22.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_22.toString().should.equal(expected.SYMBOL_22.toString()) - dotenvConversionConfig.parsed.SYMBOL_23.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_23.toString().should.equal(expected.SYMBOL_23.toString()) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed.SYMBOL_1).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_1.toString()).to.equal(expected.SYMBOL_1.toString()) + expect(dotenvConversionConfig.parsed.SYMBOL_2).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_2.toString()).to.equal(expected.SYMBOL_2.toString()) + expect(dotenvConversionConfig.parsed.SYMBOL_11).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_11.toString()).to.equal(expected.SYMBOL_11.toString()) + expect(dotenvConversionConfig.parsed.SYMBOL_12).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_12.toString()).to.equal(expected.SYMBOL_12.toString()) + expect(dotenvConversionConfig.parsed.SYMBOL_21).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_21.toString()).to.equal(expected.SYMBOL_21.toString()) + expect(dotenvConversionConfig.parsed.SYMBOL_22).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_22.toString()).to.equal(expected.SYMBOL_22.toString()) + expect(dotenvConversionConfig.parsed.SYMBOL_23).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_23.toString()).to.equal(expected.SYMBOL_23.toString()) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -3210,7 +3271,7 @@ describe('dotenv-conversion', function () { ARRAY_2006: ' arr : ', } - // output + // expected output const expected = { ARRAY_1: [null, true, false, 1, 'x', [-1, 2.1, 30, 4.5e+123], {'y': 'z'}], ARRAY_2: [null, true, false, 1, 'x', [-1, 2.1, 30, 4.5e+123], {'y': 'z'}], @@ -3308,11 +3369,13 @@ describe('dotenv-conversion', function () { ARRAY_2006: ' arr : ', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -3369,7 +3432,7 @@ describe('dotenv-conversion', function () { OBJECT_2006: ' obj : ', } - // output + // expected output const expected = { OBJECT_1: {'a': null, 'b': true, 'c': false, 'd': 1, 'e': 'x', 'f': [-1, 2.1, 30, 4.5e+123], 'g': {'y': 'z'}}, OBJECT_2: {'a': null, 'b': true, 'c': false, 'd': 1, 'e': 'x', 'f': [-1, 2.1, 30, 4.5e+123], 'g': {'y': 'z'}}, @@ -3469,11 +3532,13 @@ describe('dotenv-conversion', function () { OBJECT_2006: ' obj : ', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -3485,7 +3550,7 @@ describe('dotenv-conversion', function () { NOT_OK: 'custom:no', } - // output + // expected output const expected = { OK: 'custom:yes', NOT_OK: 'custom:no', @@ -3495,11 +3560,13 @@ describe('dotenv-conversion', function () { NOT_OK: 'custom:no', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -3518,7 +3585,7 @@ describe('dotenv-conversion', function () { }, } - // output + // expected output const expected = { OK: 1, NOT_OK: 0, @@ -3528,11 +3595,13 @@ describe('dotenv-conversion', function () { NOT_OK: '0', } + // executes const dotenvConfig = Object.assign({}, useEnv(input), inputConfig) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -3551,7 +3620,7 @@ describe('dotenv-conversion', function () { }, } - // output + // expected output const expected = { OK: true, NOT_OK: false, @@ -3561,11 +3630,13 @@ describe('dotenv-conversion', function () { NOT_OK: 'false', } + // asserts const dotenvConfig = Object.assign({}, useEnv(input), inputConfig) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -3578,7 +3649,7 @@ describe('dotenv-conversion', function () { OK_ALIAS_MORE: 'bl:yes', } - // output + // expected output const expected = { OK: true, OK_ALIAS: true, @@ -3590,11 +3661,13 @@ describe('dotenv-conversion', function () { OK_ALIAS_MORE: 'bl:yes', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -3612,7 +3685,7 @@ describe('dotenv-conversion', function () { }, } - // output + // expected output const expected = { OK: true, OK_ALIAS: true, @@ -3624,11 +3697,13 @@ describe('dotenv-conversion', function () { OK_ALIAS_MORE: 'true', } + // executes const dotenvConfig = Object.assign({}, useEnv(input), inputConfig) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -3649,7 +3724,7 @@ describe('dotenv-conversion', function () { // input const input = 'ignore-process-env' - // output + // expected output const expected = { OK: true, } @@ -3657,11 +3732,13 @@ describe('dotenv-conversion', function () { OK: 'true', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -3673,7 +3750,7 @@ describe('dotenv-conversion', function () { ignoreProcessEnv: true, } - // output + // expected output const expected = { OK: true, } @@ -3681,11 +3758,13 @@ describe('dotenv-conversion', function () { OK: 'yes', } + // executes const dotenvConfig = Object.assign({}, useEnv(input), inputConfig) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -3694,7 +3773,7 @@ describe('dotenv-conversion', function () { // input const input = 'prevents' - // output + // expected output const expected = { OK: true, } @@ -3702,11 +3781,13 @@ describe('dotenv-conversion', function () { OK: 'true', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -3718,7 +3799,7 @@ describe('dotenv-conversion', function () { prevents: ['OK'], } - // output + // expected output const expected = { OK: 'yes', } @@ -3726,11 +3807,13 @@ describe('dotenv-conversion', function () { OK: 'yes', } + // executes const dotenvConfig = Object.assign({}, useEnv(input), inputConfig) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -3739,7 +3822,7 @@ describe('dotenv-conversion', function () { // input const input = 'specs' - // output + // expected output const expected = { OK: true, } @@ -3747,11 +3830,13 @@ describe('dotenv-conversion', function () { OK: 'true', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -3765,7 +3850,7 @@ describe('dotenv-conversion', function () { }, } - // output + // expected output const expected = { OK: 1, } @@ -3773,11 +3858,13 @@ describe('dotenv-conversion', function () { OK: '1', } + // executes const dotenvConfig = Object.assign({}, useEnv(input), inputConfig) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -3791,7 +3878,7 @@ describe('dotenv-conversion', function () { }, } - // output + // expected output const expected = { OK: 1, } @@ -3799,11 +3886,13 @@ describe('dotenv-conversion', function () { OK: '1', } + // executes const dotenvConfig = Object.assign({}, useEnv(input), inputConfig) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -3817,7 +3906,7 @@ describe('dotenv-conversion', function () { }, } - // output + // expected output const expected = { OK: 'yes', } @@ -3825,11 +3914,13 @@ describe('dotenv-conversion', function () { OK: 'yes', } + // executes const dotenvConfig = Object.assign({}, useEnv(input), inputConfig) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -3845,7 +3936,7 @@ describe('dotenv-conversion', function () { }, } - // output + // expected output const expected = { OK: 'custom:yes', } @@ -3853,11 +3944,13 @@ describe('dotenv-conversion', function () { OK: 'custom:yes', } + // executes const dotenvConfig = Object.assign({}, useEnv(input), inputConfig) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -3871,7 +3964,7 @@ describe('dotenv-conversion', function () { }, } - // output + // expected output const expected = { OK: 'yes', } @@ -3879,11 +3972,13 @@ describe('dotenv-conversion', function () { OK: 'yes', } + // executes const dotenvConfig = Object.assign({}, useEnv(input), inputConfig) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -3892,7 +3987,7 @@ describe('dotenv-conversion', function () { // input const input = 'method.auto.null' - // output + // expected output const expected = { NULL_1: null, NULL_2: null, @@ -3914,11 +4009,13 @@ describe('dotenv-conversion', function () { NULL_1001: 'NuLL', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -3927,7 +4024,7 @@ describe('dotenv-conversion', function () { // input const input = 'method.auto.undefined' - // output + // expected output const expected = { UNDEFINED_1: undefined, UNDEFINED_2: undefined, @@ -3947,11 +4044,13 @@ describe('dotenv-conversion', function () { UNDEFINED_1001: 'Undefined', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -3960,7 +4059,7 @@ describe('dotenv-conversion', function () { // input const input = 'method.auto.boolean' - // output + // expected output const expected = { BOOLEAN_1: true, BOOLEAN_2: true, @@ -4034,11 +4133,13 @@ describe('dotenv-conversion', function () { BOOLEAN_1007: 'NonE', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -4047,7 +4148,7 @@ describe('dotenv-conversion', function () { // input const input = 'method.auto.number' - // output + // expected output const expected = { NUMBER_1: NaN, NUMBER_2: Infinity, @@ -4261,11 +4362,13 @@ describe('dotenv-conversion', function () { NUMBER_1012: '4.5e+123any', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -4274,7 +4377,7 @@ describe('dotenv-conversion', function () { // input const input = 'method.auto.bigint' - // output + // expected output const expected = { BIGINT_1: 0n, BIGINT_2: 0n, @@ -4428,11 +4531,13 @@ describe('dotenv-conversion', function () { BIGINT_1326: '-0XAnany', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -4441,7 +4546,7 @@ describe('dotenv-conversion', function () { // input const input = 'method.auto.symbol' - // output + // expected output const expected = { SYMBOL_1: Symbol(), SYMBOL_2: Symbol('any'), @@ -4471,24 +4576,26 @@ describe('dotenv-conversion', function () { SYMBOL_1002: 'Symbol(any)any', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.SYMBOL_1.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_1.toString().should.equal(expected.SYMBOL_1.toString()) - dotenvConversionConfig.parsed.SYMBOL_2.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_2.toString().should.equal(expected.SYMBOL_2.toString()) - dotenvConversionConfig.parsed.SYMBOL_3.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_3.toString().should.equal(expected.SYMBOL_3.toString()) - dotenvConversionConfig.parsed.SYMBOL_4.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_4.toString().should.equal(expected.SYMBOL_4.toString()) - dotenvConversionConfig.parsed.SYMBOL_5.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_5.toString().should.equal(expected.SYMBOL_5.toString()) - dotenvConversionConfig.parsed.SYMBOL_6.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_6.toString().should.equal(expected.SYMBOL_6.toString()) - dotenvConversionConfig.parsed.SYMBOL_101.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_101.toString().should.equal(expected.SYMBOL_101.toString()) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed.SYMBOL_1).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_1.toString()).to.equal(expected.SYMBOL_1.toString()) + expect(dotenvConversionConfig.parsed.SYMBOL_2).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_2.toString()).to.equal(expected.SYMBOL_2.toString()) + expect(dotenvConversionConfig.parsed.SYMBOL_3).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_3.toString()).to.equal(expected.SYMBOL_3.toString()) + expect(dotenvConversionConfig.parsed.SYMBOL_4).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_4.toString()).to.equal(expected.SYMBOL_4.toString()) + expect(dotenvConversionConfig.parsed.SYMBOL_5).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_5.toString()).to.equal(expected.SYMBOL_5.toString()) + expect(dotenvConversionConfig.parsed.SYMBOL_6).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_6.toString()).to.equal(expected.SYMBOL_6.toString()) + expect(dotenvConversionConfig.parsed.SYMBOL_101).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_101.toString()).to.equal(expected.SYMBOL_101.toString()) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -4497,7 +4604,7 @@ describe('dotenv-conversion', function () { // input const input = 'method.auto.array' - // output + // expected output const expected = { ARRAY_1: [null, true, false, 1, 'x', [-1, 2.1, 30, 4.5e+123], {'y': 'z'}], @@ -4563,11 +4670,13 @@ describe('dotenv-conversion', function () { ARRAY_1033: '[-Infinity]', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -4576,7 +4685,7 @@ describe('dotenv-conversion', function () { // input const input = 'method.auto.object' - // output + // expected output const expected = { OBJECT_1: {'a': null, 'b': true, 'c': false, 'd': 1, 'e': 'x', 'f': [-1, 2.1, 30, 4.5e+123], 'g': {'y': 'z'}}, @@ -4642,11 +4751,13 @@ describe('dotenv-conversion', function () { OBJECT_1033: '{"a":-Infinity}', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -4655,7 +4766,7 @@ describe('dotenv-conversion', function () { // input const input = 'method.boolean' - // output + // expected output const expected = { BOOLEAN_1: false, BOOLEAN_2: false, @@ -4939,11 +5050,13 @@ describe('dotenv-conversion', function () { BOOLEAN_1006: ' bool : any ', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -4952,7 +5065,7 @@ describe('dotenv-conversion', function () { // input const input = 'method.number' - // output + // expected output const expected = { NUMBER_1: 1, NUMBER_2: 1, @@ -5214,11 +5327,13 @@ describe('dotenv-conversion', function () { NUMBER_1006: ' num : any ', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -5227,7 +5342,7 @@ describe('dotenv-conversion', function () { // input const input = 'method.bigint' - // output + // expected output const expected = { BIGINT_1: 1n, BIGINT_2: 1n, @@ -5529,11 +5644,13 @@ describe('dotenv-conversion', function () { BIGINT_1006: ' big : any ', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -5542,7 +5659,7 @@ describe('dotenv-conversion', function () { // input const input = 'method.string' - // output + // expected output const expected = { STRING_1: 'null', STRING_2: 'undefined', @@ -5616,11 +5733,13 @@ describe('dotenv-conversion', function () { STRING_1006: ' str : any ', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -5629,7 +5748,7 @@ describe('dotenv-conversion', function () { // input const input = 'method.symbol' - // output + // expected output const expected = { SYMBOL_1: Symbol(), SYMBOL_2: Symbol(' '), @@ -5663,24 +5782,26 @@ describe('dotenv-conversion', function () { SYMBOL_1003: ' symbol : any ', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.SYMBOL_1.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_1.toString().should.equal(expected.SYMBOL_1.toString()) - dotenvConversionConfig.parsed.SYMBOL_2.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_2.toString().should.equal(expected.SYMBOL_2.toString()) - dotenvConversionConfig.parsed.SYMBOL_11.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_11.toString().should.equal(expected.SYMBOL_11.toString()) - dotenvConversionConfig.parsed.SYMBOL_12.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_12.toString().should.equal(expected.SYMBOL_12.toString()) - dotenvConversionConfig.parsed.SYMBOL_21.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_21.toString().should.equal(expected.SYMBOL_21.toString()) - dotenvConversionConfig.parsed.SYMBOL_22.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_22.toString().should.equal(expected.SYMBOL_22.toString()) - dotenvConversionConfig.parsed.SYMBOL_23.should.be.a('symbol') - dotenvConversionConfig.parsed.SYMBOL_23.toString().should.equal(expected.SYMBOL_23.toString()) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed.SYMBOL_1).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_1.toString()).to.equal(expected.SYMBOL_1.toString()) + expect(dotenvConversionConfig.parsed.SYMBOL_2).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_2.toString()).to.equal(expected.SYMBOL_2.toString()) + expect(dotenvConversionConfig.parsed.SYMBOL_11).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_11.toString()).to.equal(expected.SYMBOL_11.toString()) + expect(dotenvConversionConfig.parsed.SYMBOL_12).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_12.toString()).to.equal(expected.SYMBOL_12.toString()) + expect(dotenvConversionConfig.parsed.SYMBOL_21).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_21.toString()).to.equal(expected.SYMBOL_21.toString()) + expect(dotenvConversionConfig.parsed.SYMBOL_22).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_22.toString()).to.equal(expected.SYMBOL_22.toString()) + expect(dotenvConversionConfig.parsed.SYMBOL_23).to.be.a('symbol') + expect(dotenvConversionConfig.parsed.SYMBOL_23.toString()).to.equal(expected.SYMBOL_23.toString()) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -5689,7 +5810,7 @@ describe('dotenv-conversion', function () { // input const input = 'method.array' - // output + // expected output const expected = { ARRAY_1: [null, true, false, 1, 'x', [-1, 2.1, 30, 4.5e+123], {'y': 'z'}], ARRAY_2: [null, true, false, 1, 'x', [-1, 2.1, 30, 4.5e+123], {'y': 'z'}], @@ -5787,11 +5908,13 @@ describe('dotenv-conversion', function () { ARRAY_2006: ' arr : ', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -5800,7 +5923,7 @@ describe('dotenv-conversion', function () { // input const input = 'method.object' - // output + // expected output const expected = { OBJECT_1: {'a': null, 'b': true, 'c': false, 'd': 1, 'e': 'x', 'f': [-1, 2.1, 30, 4.5e+123], 'g': {'y': 'z'}}, OBJECT_2: {'a': null, 'b': true, 'c': false, 'd': 1, 'e': 'x', 'f': [-1, 2.1, 30, 4.5e+123], 'g': {'y': 'z'}}, @@ -5900,11 +6023,13 @@ describe('dotenv-conversion', function () { OBJECT_2006: ' obj : ', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -5913,7 +6038,7 @@ describe('dotenv-conversion', function () { // input const input = 'method.custom' - // output + // expected output const expected = { OK: 'custom:yes', NOT_OK: 'custom:no', @@ -5926,8 +6051,8 @@ describe('dotenv-conversion', function () { const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -5943,7 +6068,7 @@ describe('dotenv-conversion', function () { }, } - // output + // expected output const expected = { OK: 1, NOT_OK: 0, @@ -5953,11 +6078,13 @@ describe('dotenv-conversion', function () { NOT_OK: '0', } + // executes const dotenvConfig = Object.assign({}, useEnv(input), inputConfig) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -5973,7 +6100,7 @@ describe('dotenv-conversion', function () { }, } - // output + // expected output const expected = { OK: true, NOT_OK: false, @@ -5983,11 +6110,13 @@ describe('dotenv-conversion', function () { NOT_OK: 'false', } + // executes const dotenvConfig = Object.assign({}, useEnv(input), inputConfig) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -5996,7 +6125,7 @@ describe('dotenv-conversion', function () { // input const input = 'method-aliases' - // output + // expected output const expected = { OK: true, OK_ALIAS: true, @@ -6008,11 +6137,13 @@ describe('dotenv-conversion', function () { OK_ALIAS_MORE: 'bl:yes', } + // executes const dotenvConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -6026,7 +6157,7 @@ describe('dotenv-conversion', function () { }, } - // output + // expected output const expected = { OK: true, OK_ALIAS: true, @@ -6038,11 +6169,13 @@ describe('dotenv-conversion', function () { OK_ALIAS_MORE: 'true', } + // executes const dotenvConfig = Object.assign({}, useEnv(input), inputConfig) const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -6065,7 +6198,7 @@ describe('dotenv-conversion', function () { NUMBER: '1e$EXPONENTIAL', } - // output + // expected output const expected = { DEBUG_LEVEL: 0, DEBUG: false, @@ -6081,11 +6214,13 @@ describe('dotenv-conversion', function () { NUMBER: '100', } + // executes const dotenvExpandConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvExpandConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -6106,7 +6241,7 @@ describe('dotenv-conversion', function () { // input const input = 'expand' - // output + // expected output const expected = { DEBUG_LEVEL: 0, DEBUG: false, @@ -6122,11 +6257,13 @@ describe('dotenv-conversion', function () { NUMBER: '100', } + // executes const dotenvExpandConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvExpandConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -6153,7 +6290,7 @@ describe('dotenv-conversion', function () { // input const input = 1 - // output + // expected output const expected = { SIGNAL: 0, OK: false, @@ -6163,11 +6300,13 @@ describe('dotenv-conversion', function () { OK: 'false', } + // executes const dotenvExpandConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvExpandConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -6176,7 +6315,7 @@ describe('dotenv-conversion', function () { // input const input = 2 - // output + // expected output const expected = { SIGNAL: 1, OK: true, @@ -6186,11 +6325,13 @@ describe('dotenv-conversion', function () { OK: 'true', } + // executes const dotenvExpandConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvExpandConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -6200,7 +6341,7 @@ describe('dotenv-conversion', function () { process.env.NODE_ENV = 'test' const input = 3 - // output + // expected output const expected = { SIGNAL: 1n, OK: true, @@ -6210,11 +6351,13 @@ describe('dotenv-conversion', function () { OK: 'true', } + // executes const dotenvExpandConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvExpandConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) @@ -6224,7 +6367,7 @@ describe('dotenv-conversion', function () { process.env.NODE_ENV = 'test' const input = 4 - // output + // expected output const expected = { SIGNAL: null, OK: null, @@ -6234,11 +6377,13 @@ describe('dotenv-conversion', function () { OK: 'null', } + // executes const dotenvExpandConfig = useEnv(input) const dotenvConversionConfig = dotenvConversion.convert(dotenvExpandConfig) - dotenvConversionConfig.parsed.should.deep.equal(expected) - process.env.should.deep.include(expectedForEnv) + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) done() }) From df0687396ca79e8600bdd896115855223332524e Mon Sep 17 00:00:00 2001 From: Nguyen Tuan Linh Date: Fri, 3 Nov 2023 18:28:39 +0700 Subject: [PATCH 2/2] + feature: options to disable the support binary/octal/hexadecimal format in conversion --- README.md | 58 + dist/index.js | 121 +- src/index.js | 131 +- tests/index.js | 1376 ++++++++++++++++- tests/inputs/method.auto.bigint.boh.false.env | 18 + tests/inputs/method.auto.number.boh.false.env | 18 + tests/inputs/method.bigint.boh.false.env | 37 + tests/inputs/method.boolean.boh.false.env | 75 + tests/inputs/method.number.boh.false.env | 37 + 9 files changed, 1754 insertions(+), 117 deletions(-) create mode 100644 tests/inputs/method.auto.bigint.boh.false.env create mode 100644 tests/inputs/method.auto.number.boh.false.env create mode 100644 tests/inputs/method.bigint.boh.false.env create mode 100644 tests/inputs/method.boolean.boh.false.env create mode 100644 tests/inputs/method.number.boh.false.env diff --git a/README.md b/README.md index 94a36cd..a8bbed0 100644 --- a/README.md +++ b/README.md @@ -468,6 +468,10 @@ console.log(process.env.VARIABLE_24) // (string) '10' console.log(process.env.VARIABLE_25) // (string) '-10' ``` +***Note:* You can disable the support for binary, octal or hexadecimal number format +by setting the option [`binaryNumber`](#binarynumber), +[`octalNumber`](#octalnumber) or [`hexadecimalNumber`](#hexadecimalnumber) to false. + - **bigint** Values to be converted to bigint must match the format: `${value}n`; @@ -518,6 +522,10 @@ console.log(process.env.VARIABLE_8) // (string) '10n' console.log(process.env.VARIABLE_9) // (string) '10n' ``` +***Note:* You can disable the support for binary, octal or hexadecimal bigint format +by setting the option [`binaryBigInt`](#binarybigint), +[`octalBigInt`](#octalbigint) or [`hexadecimalBigInt`](#hexadecimalbigint) to false. + - **symbol** Values to be converted to symbol must match the format: `Symbol(${string})`. @@ -850,6 +858,10 @@ console.log(process.env.VARIABLE_25) // (string) '10' console.log(process.env.VARIABLE_26) // (string) '0' ``` +***Note:* You can disable the conversion for binary, octal or hexadecimal number format +by setting the option [`binaryNumber`](#binarynumber), +[`octalNumber`](#octalnumber) or [`hexadecimalNumber`](#hexadecimalnumber) to false. + - **bigint** This method is to convert any value to bigint. @@ -953,6 +965,10 @@ console.log(process.env.VARIABLE_27) // (string) '10n' console.log(process.env.VARIABLE_28) // (string) '0n' ``` +***Note:* You can disable the conversion for binary, octal or hexadecimal bigint format +by setting the option [`binaryBigInt`](#binarybigint), +[`octalBigInt`](#octalbigint) or [`hexadecimalBigInt`](#hexadecimalbigint) to false. + - **string** This method is to keep any value as it is. @@ -1740,6 +1756,48 @@ If this option is set to `true`, they won't. See [this feature](#ignore-processenv). +##### `binaryNumber` + +*Type:* `boolean`. *Default:* `true`. + +If this option is set to `false`, the string in binary number format +will not be converted to number. + +##### `octalNumber` + +*Type:* `boolean`. *Default:* `true`. + +If this option is set to `false`, the string in octal number format +will not be converted to number. + +##### `hexadecimalNumber` + +*Type:* `boolean`. *Default:* `true`. + +If this option is set to `false`, the string in hexadecimal number format +will not be converted to number. + +##### `binaryBigInt` + +*Type:* `boolean`. *Default:* `true`. + +If this option is set to `false`, the string in binary bigint format +will not be converted to bigint. + +##### `octalBigInt` + +*Type:* `boolean`. *Default:* `true`. + +If this option is set to `false`, the string in octal bigint format +will not be converted to bigint. + +##### `hexadecimalBigInt` + +*Type:* `boolean`. *Default:* `true`. + +If this option is set to `false`, the string in hexadecimal bigint format +will not be converted to bigint. + ##### `prevents` *Type:* `array`. *Default:* `[]`. diff --git a/dist/index.js b/dist/index.js index 74fd0de..3c59d8e 100644 --- a/dist/index.js +++ b/dist/index.js @@ -10,9 +10,13 @@ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == */ var NUMBER_REGEX = /^[+-]?(\d+(\.(\d*)?)?|\.\d+)([eE][+-]?\d+)?$/; -var NUM_BOH_REGEX = /^[+-]?0([bB][01]+|[oO][0-8]+|[xX][0-9a-fA-F]+)$/; +var NUM_BIN_REGEX = /^[+-]?0[bB][01]+$/; +var NUM_OCT_REGEX = /^[+-]?0[oO][0-8]+$/; +var NUM_HEX_REGEX = /^[+-]?0[xX][0-9a-fA-F]+$/; var BIGINT_REGEX = /^[+-]?\d+n$/; -var BIG_BOH_REGEX = /^[+-]?0([bB][01]+|[oO][0-8]+|[xX][0-9a-fA-F]+)n$/; +var BIG_BIN_REGEX = /^[+-]?0[bB][01]+n$/; +var BIG_OCT_REGEX = /^[+-]?0[oO][0-8]+n$/; +var BIG_HEX_REGEX = /^[+-]?0[xX][0-9a-fA-F]+n$/; var SYMBOL_REGEX = /^Symbol\(.*\)$/; var ARRAY_REGEX = /^\[.*]$/; var ARRAY_EMPTY_REGEX = /^\[\s*]$/; @@ -71,9 +75,14 @@ function parseNumber(str) { /** * * @param {string} str - * @returns {number} + * @param {boolean} parsed + * @returns {number|string} */ function parseBohNumber(str) { + var parsed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + if (!parsed) { + return str; + } switch (str[0]) { case '+': return Number(str.substring(1)); @@ -96,9 +105,14 @@ function parseBigInt(str) { /** * * @param {string} str - * @returns {bigint} + * @param {boolean} parsed + * @returns {bigint|string} */ function parseBohBigInt(str) { + var parsed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + if (!parsed) { + return str; + } switch (str[0]) { case '+': return BigInt(str.slice(1, -1)); @@ -130,18 +144,19 @@ function parseSymbol(str) { /** * * @param {string|*} value - * @param {object} valueTable - * @param {boolean} fromDotEnv + * @param {object} config * @returns {null|undefined|boolean|number|bigint|string|symbol|array|object} */ -function restoreValue(value, valueTable, fromDotEnv) { +function restoreValue(value, config) { if (!(typeof value == 'string' || value instanceof String)) { return value; } - if (fromDotEnv) { + if (config.fromDotEnv) { value = unescapeValue(value); } var trimmed = value.trim(); + // defined values + var valueTable = config._cache.valueTables.forAutoForced; if (trimmed in valueTable) { return valueTable[trimmed]; } @@ -149,15 +164,27 @@ function restoreValue(value, valueTable, fromDotEnv) { if (NUMBER_REGEX.test(trimmed)) { return parseNumber(trimmed); } - if (NUM_BOH_REGEX.test(trimmed)) { - return parseBohNumber(trimmed); + if (NUM_BIN_REGEX.test(trimmed)) { + return parseBohNumber(trimmed, config.binaryNumber); + } + if (NUM_OCT_REGEX.test(trimmed)) { + return parseBohNumber(trimmed, config.octalNumber); + } + if (NUM_HEX_REGEX.test(trimmed)) { + return parseBohNumber(trimmed, config.hexadecimalNumber); } // BigInt if (BIGINT_REGEX.test(trimmed)) { return parseBigInt(trimmed); } - if (BIG_BOH_REGEX.test(trimmed)) { - return parseBohBigInt(trimmed); + if (BIG_BIN_REGEX.test(trimmed)) { + return parseBohBigInt(trimmed, config.binaryBigInt); + } + if (BIG_OCT_REGEX.test(trimmed)) { + return parseBohBigInt(trimmed, config.octalBigInt); + } + if (BIG_HEX_REGEX.test(trimmed)) { + return parseBohBigInt(trimmed, config.hexadecimalBigInt); } // Symbol if (SYMBOL_REGEX.test(trimmed)) { @@ -222,11 +249,17 @@ function defaultConfig() { parsed: {}, fromDotEnv: true, ignoreProcessEnv: false, + binaryNumber: true, + octalNumber: true, + hexadecimalNumber: true, + binaryBigInt: true, + octalBigInt: true, + hexadecimalBigInt: true, prevents: [], specs: {}, methods: { auto: function auto(value, name, config) { - value = restoreValue(value, config._cache.valueTables.forAutoForced, config.fromDotEnv); + value = restoreValue(value, config); if (typeof value === 'string') { var lTrimmed = value.replace(/^\s+/, ''); var findPossibleMethod = function findPossibleMethod(methods) { @@ -261,13 +294,13 @@ function defaultConfig() { if (NUMBER_REGEX.test(value)) { return parseNumber(value) !== 0; } - if (NUM_BOH_REGEX.test(value)) { + if (NUM_BIN_REGEX.test(value) || NUM_OCT_REGEX.test(value) || NUM_HEX_REGEX.test(value)) { return parseBohNumber(value) !== 0; } if (BIGINT_REGEX.test(value)) { return parseBigInt(value) !== 0n; } - if (BIG_BOH_REGEX.test(value)) { + if (BIG_BIN_REGEX.test(value) || BIG_OCT_REGEX.test(value) || BIG_HEX_REGEX.test(value)) { return parseBohBigInt(value) !== 0n; } return true; @@ -284,14 +317,26 @@ function defaultConfig() { if (NUMBER_REGEX.test(value)) { return parseNumber(value); } - if (NUM_BOH_REGEX.test(value)) { - return parseBohNumber(value); + if (NUM_BIN_REGEX.test(value)) { + return parseBohNumber(value, config.binaryNumber); + } + if (NUM_OCT_REGEX.test(value)) { + return parseBohNumber(value, config.octalNumber); + } + if (NUM_HEX_REGEX.test(value)) { + return parseBohNumber(value, config.hexadecimalNumber); } if (BIGINT_REGEX.test(value)) { return parseNumber(value.slice(0, -1)); } - if (BIG_BOH_REGEX.test(value)) { - return parseBohNumber(value.slice(0, -1)); + if (BIG_BIN_REGEX.test(value)) { + return parseBohNumber(value.slice(0, -1), config.binaryNumber); + } + if (BIG_OCT_REGEX.test(value)) { + return parseBohNumber(value.slice(0, -1), config.octalNumber); + } + if (BIG_HEX_REGEX.test(value)) { + return parseBohNumber(value.slice(0, -1), config.hexadecimalNumber); } return function (number) { return Number.isNaN(number) ? 0 : safeZero(number); @@ -309,14 +354,26 @@ function defaultConfig() { if (NUMBER_REGEX.test(value)) { return numberAsBigInt(parseNumber(value)); } - if (NUM_BOH_REGEX.test(value)) { - return numberAsBigInt(parseBohNumber(value)); + if (NUM_BIN_REGEX.test(value)) { + return parseBohBigInt("".concat(value, "n"), config.binaryBigInt); + } + if (NUM_OCT_REGEX.test(value)) { + return parseBohBigInt("".concat(value, "n"), config.octalBigInt); + } + if (NUM_HEX_REGEX.test(value)) { + return parseBohBigInt("".concat(value, "n"), config.hexadecimalBigInt); } if (BIGINT_REGEX.test(value)) { return parseBigInt(value); } - if (BIG_BOH_REGEX.test(value)) { - return parseBohBigInt(value); + if (BIG_BIN_REGEX.test(value)) { + return parseBohBigInt(value, config.binaryBigInt); + } + if (BIG_OCT_REGEX.test(value)) { + return parseBohBigInt(value, config.octalBigInt); + } + if (BIG_HEX_REGEX.test(value)) { + return parseBohBigInt(value, config.hexadecimalBigInt); } return function (number) { return Number.isNaN(number) ? 0n : numberAsBigInt(safeZero(number)); @@ -376,6 +433,24 @@ function mergeConfig(config) { if ('ignoreProcessEnv' in config) { mergingConfig.ignoreProcessEnv = config.ignoreProcessEnv; } + if ('binaryNumber' in config) { + mergingConfig.binaryNumber = config.binaryNumber; + } + if ('octalNumber' in config) { + mergingConfig.octalNumber = config.octalNumber; + } + if ('hexadecimalNumber' in config) { + mergingConfig.hexadecimalNumber = config.hexadecimalNumber; + } + if ('binaryBigInt' in config) { + mergingConfig.binaryBigInt = config.binaryBigInt; + } + if ('octalBigInt' in config) { + mergingConfig.octalBigInt = config.octalBigInt; + } + if ('hexadecimalBigInt' in config) { + mergingConfig.hexadecimalBigInt = config.hexadecimalBigInt; + } if ('prevents' in config) { mergingConfig.prevents = config.prevents; } diff --git a/src/index.js b/src/index.js index 066e3de..c0a1eab 100644 --- a/src/index.js +++ b/src/index.js @@ -3,9 +3,13 @@ */ const NUMBER_REGEX = /^[+-]?(\d+(\.(\d*)?)?|\.\d+)([eE][+-]?\d+)?$/ -const NUM_BOH_REGEX = /^[+-]?0([bB][01]+|[oO][0-8]+|[xX][0-9a-fA-F]+)$/ +const NUM_BIN_REGEX = /^[+-]?0[bB][01]+$/ +const NUM_OCT_REGEX = /^[+-]?0[oO][0-8]+$/ +const NUM_HEX_REGEX = /^[+-]?0[xX][0-9a-fA-F]+$/ const BIGINT_REGEX = /^[+-]?\d+n$/ -const BIG_BOH_REGEX = /^[+-]?0([bB][01]+|[oO][0-8]+|[xX][0-9a-fA-F]+)n$/ +const BIG_BIN_REGEX = /^[+-]?0[bB][01]+n$/ +const BIG_OCT_REGEX = /^[+-]?0[oO][0-8]+n$/ +const BIG_HEX_REGEX = /^[+-]?0[xX][0-9a-fA-F]+n$/ const SYMBOL_REGEX = /^Symbol\(.*\)$/ const ARRAY_REGEX = /^\[.*]$/ const ARRAY_EMPTY_REGEX = /^\[\s*]$/ @@ -71,9 +75,13 @@ function parseNumber(str) { /** * * @param {string} str - * @returns {number} + * @param {boolean} parsed + * @returns {number|string} */ -function parseBohNumber(str) { +function parseBohNumber(str, parsed = true) { + if (!parsed) { + return str + } switch (str[0]) { case '+': return Number(str.substring(1)) @@ -96,9 +104,13 @@ function parseBigInt(str) { /** * * @param {string} str - * @returns {bigint} + * @param {boolean} parsed + * @returns {bigint|string} */ -function parseBohBigInt(str) { +function parseBohBigInt(str, parsed = true) { + if (!parsed) { + return str + } switch (str[0]) { case '+': return BigInt(str.slice(1, -1)) @@ -130,18 +142,19 @@ function parseSymbol(str) { /** * * @param {string|*} value - * @param {object} valueTable - * @param {boolean} fromDotEnv + * @param {object} config * @returns {null|undefined|boolean|number|bigint|string|symbol|array|object} */ -function restoreValue(value, valueTable, fromDotEnv) { +function restoreValue(value, config) { if (!(typeof value == 'string' || value instanceof String)) { return value } - if (fromDotEnv) { + if (config.fromDotEnv) { value = unescapeValue(value) } const trimmed = value.trim() + // defined values + const valueTable = config._cache.valueTables.forAutoForced if (trimmed in valueTable) { return valueTable[trimmed] } @@ -149,15 +162,27 @@ function restoreValue(value, valueTable, fromDotEnv) { if (NUMBER_REGEX.test(trimmed)) { return parseNumber(trimmed) } - if (NUM_BOH_REGEX.test(trimmed)) { - return parseBohNumber(trimmed) + if (NUM_BIN_REGEX.test(trimmed)) { + return parseBohNumber(trimmed, config.binaryNumber) + } + if (NUM_OCT_REGEX.test(trimmed)) { + return parseBohNumber(trimmed, config.octalNumber) + } + if (NUM_HEX_REGEX.test(trimmed)) { + return parseBohNumber(trimmed, config.hexadecimalNumber) } // BigInt if (BIGINT_REGEX.test(trimmed)) { return parseBigInt(trimmed) } - if (BIG_BOH_REGEX.test(trimmed)) { - return parseBohBigInt(trimmed) + if (BIG_BIN_REGEX.test(trimmed)) { + return parseBohBigInt(trimmed, config.binaryBigInt) + } + if (BIG_OCT_REGEX.test(trimmed)) { + return parseBohBigInt(trimmed, config.octalBigInt) + } + if (BIG_HEX_REGEX.test(trimmed)) { + return parseBohBigInt(trimmed, config.hexadecimalBigInt) } // Symbol if (SYMBOL_REGEX.test(trimmed)) { @@ -240,13 +265,23 @@ function flattenValue(value) { function defaultConfig() { return { parsed: {}, + fromDotEnv: true, + ignoreProcessEnv: false, + + binaryNumber: true, + octalNumber: true, + hexadecimalNumber: true, + binaryBigInt: true, + octalBigInt: true, + hexadecimalBigInt: true, + prevents: [], specs: {}, methods: { auto(value, name, config) { - value = restoreValue(value, config._cache.valueTables.forAutoForced, config.fromDotEnv) + value = restoreValue(value, config) if (typeof value === 'string') { const lTrimmed = value.replace(/^\s+/, '') const findPossibleMethod = methods => methods.find(method => lTrimmed.startsWith(`${method}:`)) @@ -285,13 +320,17 @@ function defaultConfig() { if (NUMBER_REGEX.test(value)) { return parseNumber(value) !== 0 } - if (NUM_BOH_REGEX.test(value)) { + if (NUM_BIN_REGEX.test(value) + || NUM_OCT_REGEX.test(value) + || NUM_HEX_REGEX.test(value)) { return parseBohNumber(value) !== 0 } if (BIGINT_REGEX.test(value)) { return parseBigInt(value) !== 0n } - if (BIG_BOH_REGEX.test(value)) { + if (BIG_BIN_REGEX.test(value) + || BIG_OCT_REGEX.test(value) + || BIG_HEX_REGEX.test(value)) { return parseBohBigInt(value) !== 0n } return true @@ -308,14 +347,26 @@ function defaultConfig() { if (NUMBER_REGEX.test(value)) { return parseNumber(value) } - if (NUM_BOH_REGEX.test(value)) { - return parseBohNumber(value) + if (NUM_BIN_REGEX.test(value)) { + return parseBohNumber(value, config.binaryNumber) + } + if (NUM_OCT_REGEX.test(value)) { + return parseBohNumber(value, config.octalNumber) + } + if (NUM_HEX_REGEX.test(value)) { + return parseBohNumber(value, config.hexadecimalNumber) } if (BIGINT_REGEX.test(value)) { return parseNumber(value.slice(0, -1)) } - if (BIG_BOH_REGEX.test(value)) { - return parseBohNumber(value.slice(0, -1)) + if (BIG_BIN_REGEX.test(value)) { + return parseBohNumber(value.slice(0, -1), config.binaryNumber) + } + if (BIG_OCT_REGEX.test(value)) { + return parseBohNumber(value.slice(0, -1), config.octalNumber) + } + if (BIG_HEX_REGEX.test(value)) { + return parseBohNumber(value.slice(0, -1), config.hexadecimalNumber) } return (number => Number.isNaN(number) ? 0 : safeZero(number))(Number.parseFloat(value)) }, @@ -331,14 +382,26 @@ function defaultConfig() { if (NUMBER_REGEX.test(value)) { return numberAsBigInt(parseNumber(value)) } - if (NUM_BOH_REGEX.test(value)) { - return numberAsBigInt(parseBohNumber(value)) + if (NUM_BIN_REGEX.test(value)) { + return parseBohBigInt(`${value}n`, config.binaryBigInt) + } + if (NUM_OCT_REGEX.test(value)) { + return parseBohBigInt(`${value}n`, config.octalBigInt) + } + if (NUM_HEX_REGEX.test(value)) { + return parseBohBigInt(`${value}n`, config.hexadecimalBigInt) } if (BIGINT_REGEX.test(value)) { return parseBigInt(value) } - if (BIG_BOH_REGEX.test(value)) { - return parseBohBigInt(value) + if (BIG_BIN_REGEX.test(value)) { + return parseBohBigInt(value, config.binaryBigInt) + } + if (BIG_OCT_REGEX.test(value)) { + return parseBohBigInt(value, config.octalBigInt) + } + if (BIG_HEX_REGEX.test(value)) { + return parseBohBigInt(value, config.hexadecimalBigInt) } return (number => Number.isNaN(number) ? 0n : numberAsBigInt(safeZero(number)))(Number.parseFloat(value)) }, @@ -407,6 +470,24 @@ function mergeConfig(config) { if ('ignoreProcessEnv' in config) { mergingConfig.ignoreProcessEnv = config.ignoreProcessEnv } + if ('binaryNumber' in config) { + mergingConfig.binaryNumber = config.binaryNumber + } + if ('octalNumber' in config) { + mergingConfig.octalNumber = config.octalNumber + } + if ('hexadecimalNumber' in config) { + mergingConfig.hexadecimalNumber = config.hexadecimalNumber + } + if ('binaryBigInt' in config) { + mergingConfig.binaryBigInt = config.binaryBigInt + } + if ('octalBigInt' in config) { + mergingConfig.octalBigInt = config.octalBigInt + } + if ('hexadecimalBigInt' in config) { + mergingConfig.hexadecimalBigInt = config.hexadecimalBigInt + } if ('prevents' in config) { mergingConfig.prevents = config.prevents } diff --git a/tests/index.js b/tests/index.js index 41cf347..a272ca8 100644 --- a/tests/index.js +++ b/tests/index.js @@ -2,9 +2,9 @@ import chai from 'chai' import dotenv from 'dotenv' import dotenvExpand from 'dotenv-expand' import dotenvFlow from 'dotenv-flow' -import dotenvConversion from '../src' import fs from 'fs' import mocha from 'mocha' +import dotenvConversion from '../src' // const before = mocha.after // const beforeEach = mocha.beforeEach @@ -35,6 +35,12 @@ describe('dotenv-conversion', function () { const expectedParsed = {} const expectedFromDotEnv = true const expectedIgnoreProcessEnv = false + const expectedBinaryNumber = true + const expectedOctalNumber = true + const expectedHexadecimalNumber = true + const expectedBinaryBigInt = true + const expectedOctalBigInt = true + const expectedHexadecimalBigInt = true const expectedPrevents = [] const expectedSpecs = {} const expectedMethods = [ @@ -64,6 +70,12 @@ describe('dotenv-conversion', function () { expect(dotenvConversionConfig).to.have.property('parsed') expect(dotenvConversionConfig).to.have.property('fromDotEnv') expect(dotenvConversionConfig).to.have.property('ignoreProcessEnv') + expect(dotenvConversionConfig).to.have.property('binaryNumber') + expect(dotenvConversionConfig).to.have.property('octalNumber') + expect(dotenvConversionConfig).to.have.property('hexadecimalNumber') + expect(dotenvConversionConfig).to.have.property('binaryBigInt') + expect(dotenvConversionConfig).to.have.property('octalBigInt') + expect(dotenvConversionConfig).to.have.property('hexadecimalBigInt') expect(dotenvConversionConfig).to.have.property('prevents') expect(dotenvConversionConfig).to.have.property('specs') expect(dotenvConversionConfig).to.have.property('methods') @@ -72,6 +84,12 @@ describe('dotenv-conversion', function () { expect(dotenvConversionConfig.parsed).to.deep.equal(expectedParsed) expect(dotenvConversionConfig.fromDotEnv).to.equal(expectedFromDotEnv) expect(dotenvConversionConfig.ignoreProcessEnv).to.equal(expectedIgnoreProcessEnv) + expect(dotenvConversionConfig.binaryNumber).to.equal(expectedBinaryNumber) + expect(dotenvConversionConfig.octalNumber).to.equal(expectedOctalNumber) + expect(dotenvConversionConfig.hexadecimalNumber).to.equal(expectedHexadecimalNumber) + expect(dotenvConversionConfig.binaryBigInt).to.equal(expectedBinaryBigInt) + expect(dotenvConversionConfig.octalBigInt).to.equal(expectedOctalBigInt) + expect(dotenvConversionConfig.hexadecimalBigInt).to.equal(expectedHexadecimalBigInt) expect(dotenvConversionConfig.prevents).to.deep.equal(expectedPrevents) expect(dotenvConversionConfig.specs).to.deep.equal(expectedSpecs) expect(Object.keys(dotenvConversionConfig.methods)).to.deep.equal(expectedMethods) @@ -90,6 +108,12 @@ describe('dotenv-conversion', function () { }, fromDotEnv: false, ignoreProcessEnv: true, + binaryNumber: false, + octalNumber: false, + hexadecimalNumber: false, + binaryBigInt: false, + octalBigInt: false, + hexadecimalBigInt: false, prevents: ['BASIC'], specs: { BASIC(value) { @@ -122,6 +146,12 @@ describe('dotenv-conversion', function () { } const expectedFromDotEnv = inputConfig.fromDotEnv const expectedIgnoreProcessEnv = inputConfig.ignoreProcessEnv + const expectedBinaryNumber = inputConfig.binaryNumber + const expectedOctalNumber = inputConfig.octalNumber + const expectedHexadecimalNumber = inputConfig.hexadecimalNumber + const expectedBinaryBigInt = inputConfig.binaryBigInt + const expectedOctalBigInt = inputConfig.octalBigInt + const expectedHexadecimalBigInt = inputConfig.hexadecimalBigInt const expectedPrevents = inputConfig.prevents const expectedSpecs = inputConfig.specs const expectedMethods = [ @@ -157,6 +187,12 @@ describe('dotenv-conversion', function () { expect(dotenvConversionConfig).to.have.property('parsed') expect(dotenvConversionConfig).to.have.property('fromDotEnv') expect(dotenvConversionConfig).to.have.property('ignoreProcessEnv') + expect(dotenvConversionConfig).to.have.property('binaryNumber') + expect(dotenvConversionConfig).to.have.property('octalNumber') + expect(dotenvConversionConfig).to.have.property('hexadecimalNumber') + expect(dotenvConversionConfig).to.have.property('binaryBigInt') + expect(dotenvConversionConfig).to.have.property('octalBigInt') + expect(dotenvConversionConfig).to.have.property('hexadecimalBigInt') expect(dotenvConversionConfig).to.have.property('prevents') expect(dotenvConversionConfig).to.have.property('specs') expect(dotenvConversionConfig).to.have.property('methods') @@ -165,6 +201,12 @@ describe('dotenv-conversion', function () { expect(dotenvConversionConfig.parsed).to.deep.equal(expectedParsed) expect(dotenvConversionConfig.fromDotEnv).to.equal(expectedFromDotEnv) expect(dotenvConversionConfig.ignoreProcessEnv).to.equal(expectedIgnoreProcessEnv) + expect(dotenvConversionConfig.binaryNumber).to.equal(expectedBinaryNumber) + expect(dotenvConversionConfig.octalNumber).to.equal(expectedOctalNumber) + expect(dotenvConversionConfig.hexadecimalNumber).to.equal(expectedHexadecimalNumber) + expect(dotenvConversionConfig.binaryBigInt).to.equal(expectedBinaryBigInt) + expect(dotenvConversionConfig.octalBigInt).to.equal(expectedOctalBigInt) + expect(dotenvConversionConfig.hexadecimalBigInt).to.equal(expectedHexadecimalBigInt) expect(dotenvConversionConfig.prevents).to.deep.equal(expectedPrevents) expect(dotenvConversionConfig.specs).to.deep.equal(expectedSpecs) expect(Object.keys(dotenvConversionConfig.methods)).to.deep.equal(expectedMethods) @@ -225,11 +267,11 @@ describe('dotenv-conversion', function () { }) describe('convert:standalone', function () { - function useEnv(env) { - return { + function useEnv(env, options = {}) { + return Object.assign(options, { fromDotEnv: false, parsed: env, - } + }) } it('ignoreProcessEnv:no', function (done) { @@ -1171,6 +1213,87 @@ describe('dotenv-conversion', function () { done() }) + it('method:auto:number:boh>>false', function (done) { + // input + const options = { + binaryNumber: false, + octalNumber: false, + hexadecimalNumber: false, + } + const input = { + NUMBER_301: '0b1010', + NUMBER_302: '+0b1010', + NUMBER_303: '-0b1010', + NUMBER_304: '0B1010', + NUMBER_305: '+0B1010', + NUMBER_306: '-0B1010', + NUMBER_311: '0o12', + NUMBER_312: '+0o12', + NUMBER_313: '-0o12', + NUMBER_314: '0O12', + NUMBER_315: '+0O12', + NUMBER_316: '-0O12', + NUMBER_321: '0xa', + NUMBER_322: '+0xa', + NUMBER_323: '-0xa', + NUMBER_324: '0XA', + NUMBER_325: '+0XA', + NUMBER_326: '-0XA', + } + + // expected output + const expected = { + NUMBER_301: '0b1010', + NUMBER_302: '+0b1010', + NUMBER_303: '-0b1010', + NUMBER_304: '0B1010', + NUMBER_305: '+0B1010', + NUMBER_306: '-0B1010', + NUMBER_311: '0o12', + NUMBER_312: '+0o12', + NUMBER_313: '-0o12', + NUMBER_314: '0O12', + NUMBER_315: '+0O12', + NUMBER_316: '-0O12', + NUMBER_321: '0xa', + NUMBER_322: '+0xa', + NUMBER_323: '-0xa', + NUMBER_324: '0XA', + NUMBER_325: '+0XA', + NUMBER_326: '-0XA', + } + const expectedForEnv = { + NUMBER_301: '0b1010', + NUMBER_302: '+0b1010', + NUMBER_303: '-0b1010', + NUMBER_304: '0B1010', + NUMBER_305: '+0B1010', + NUMBER_306: '-0B1010', + NUMBER_311: '0o12', + NUMBER_312: '+0o12', + NUMBER_313: '-0o12', + NUMBER_314: '0O12', + NUMBER_315: '+0O12', + NUMBER_316: '-0O12', + NUMBER_321: '0xa', + NUMBER_322: '+0xa', + NUMBER_323: '-0xa', + NUMBER_324: '0XA', + NUMBER_325: '+0XA', + NUMBER_326: '-0XA', + } + + // executes + const dotenvConfig = useEnv(input, options) + const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) + + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) + + done() + }) + it('method:auto:bigint', function (done) { // input const input = { @@ -1415,6 +1538,87 @@ describe('dotenv-conversion', function () { done() }) + it('method:auto:bigint:boh>>false', function (done) { + // input + const options = { + binaryBigInt: false, + octalBigInt: false, + hexadecimalBigInt: false, + } + const input = { + BIGINT_201: '0b1010n', + BIGINT_202: '+0b1010n', + BIGINT_203: '-0b1010n', + BIGINT_204: '0B1010n', + BIGINT_205: '+0B1010n', + BIGINT_206: '-0B1010n', + BIGINT_211: '0o12n', + BIGINT_212: '+0o12n', + BIGINT_213: '-0o12n', + BIGINT_214: '0O12n', + BIGINT_215: '+0O12n', + BIGINT_216: '-0O12n', + BIGINT_221: '0xan', + BIGINT_222: '+0xan', + BIGINT_223: '-0xan', + BIGINT_224: '0XAn', + BIGINT_225: '+0XAn', + BIGINT_226: '-0XAn', + } + + // expected output + const expected = { + BIGINT_201: '0b1010n', + BIGINT_202: '+0b1010n', + BIGINT_203: '-0b1010n', + BIGINT_204: '0B1010n', + BIGINT_205: '+0B1010n', + BIGINT_206: '-0B1010n', + BIGINT_211: '0o12n', + BIGINT_212: '+0o12n', + BIGINT_213: '-0o12n', + BIGINT_214: '0O12n', + BIGINT_215: '+0O12n', + BIGINT_216: '-0O12n', + BIGINT_221: '0xan', + BIGINT_222: '+0xan', + BIGINT_223: '-0xan', + BIGINT_224: '0XAn', + BIGINT_225: '+0XAn', + BIGINT_226: '-0XAn', + } + const expectedForEnv = { + BIGINT_201: '0b1010n', + BIGINT_202: '+0b1010n', + BIGINT_203: '-0b1010n', + BIGINT_204: '0B1010n', + BIGINT_205: '+0B1010n', + BIGINT_206: '-0B1010n', + BIGINT_211: '0o12n', + BIGINT_212: '+0o12n', + BIGINT_213: '-0o12n', + BIGINT_214: '0O12n', + BIGINT_215: '+0O12n', + BIGINT_216: '-0O12n', + BIGINT_221: '0xan', + BIGINT_222: '+0xan', + BIGINT_223: '-0xan', + BIGINT_224: '0XAn', + BIGINT_225: '+0XAn', + BIGINT_226: '-0XAn', + } + + // executes + const dotenvConfig = useEnv(input, options) + const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) + + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) + + done() + }) + it('method:auto:symbol', function (done) { // input const input = { @@ -2147,74 +2351,329 @@ describe('dotenv-conversion', function () { done() }) - it('method:number', function (done) { + it('method:boolean:boh>>false', function (done) { // input + const options = { + binaryNumber: false, + octalNumber: false, + hexadecimalNumber: false, + binaryBigInt: false, + octalBigInt: false, + hexadecimalBigInt: false, + } const input = { - NUMBER_1: 'number:true', - NUMBER_2: 'number:True', - NUMBER_3: 'number:TRUE', - NUMBER_4: 'number:yes', - NUMBER_5: 'number:Yes', - NUMBER_6: 'number:YES', - NUMBER_7: 'number:false', - NUMBER_8: 'number:False', - NUMBER_9: 'number:FALSE', - NUMBER_10: 'number:no', - NUMBER_11: 'number:No', - NUMBER_12: 'number:NO', - NUMBER_13: 'number:null', - NUMBER_14: 'number:Null', - NUMBER_15: 'number:NULL', - NUMBER_16: 'number:undefined', - NUMBER_17: 'number:UNDEFINED', - NUMBER_18: 'number:not', - NUMBER_19: 'number:Not', - NUMBER_20: 'number:NOT', - NUMBER_21: 'number:none', - NUMBER_22: 'number:None', - NUMBER_23: 'number:NONE', - NUMBER_24: 'number:NaN', - NUMBER_25: 'number:Infinity', - NUMBER_26: 'number:+Infinity', - NUMBER_27: 'number:-Infinity', - NUMBER_28: 'number:0', - NUMBER_29: 'number:+0', - NUMBER_30: 'number:-0', - NUMBER_31: 'number:0n', - NUMBER_32: 'number:+0n', - NUMBER_33: 'number:-0n', - NUMBER_34: 'number:1n', - NUMBER_35: 'number:+1n', - NUMBER_36: 'number:-1n', - NUMBER_37: 'number:[]', - NUMBER_38: 'number:{}', - - NUMBER_41: 'number:4.5e1', - NUMBER_42: 'number:+4.5e+1', - NUMBER_43: 'number:-4.5e-1', - NUMBER_44: 'number:4.5e123', - NUMBER_45: 'number:+4.5e+123', - NUMBER_46: 'number:-4.5e-123', - - NUMBER_101: 'number:', - NUMBER_102: 'number:4.5e+123any', - NUMBER_103: 'number:any', - NUMBER_104: ' number: ', - NUMBER_105: ' number: true ', - NUMBER_106: ' number: false ', - NUMBER_107: ' number: 4.5e+123any ', - NUMBER_108: ' number: any ', + BOOLEAN_401: 'boolean:0b1010', + BOOLEAN_402: 'boolean:+0b1010', + BOOLEAN_403: 'boolean:-0b1010', + BOOLEAN_404: 'boolean:0B1010', + BOOLEAN_405: 'boolean:+0B1010', + BOOLEAN_406: 'boolean:-0B1010', + BOOLEAN_411: 'boolean:0o12', + BOOLEAN_412: 'boolean:+0o12', + BOOLEAN_413: 'boolean:-0o12', + BOOLEAN_414: 'boolean:0O12', + BOOLEAN_415: 'boolean:+0O12', + BOOLEAN_416: 'boolean:-0O12', + BOOLEAN_421: 'boolean:0xa', + BOOLEAN_422: 'boolean:+0xa', + BOOLEAN_423: 'boolean:-0xa', + BOOLEAN_424: 'boolean:0XA', + BOOLEAN_425: 'boolean:+0XA', + BOOLEAN_426: 'boolean:-0XA', - NUMBER_201: 'num:', - NUMBER_202: 'num:4.5e+123any', - NUMBER_203: 'num:any', - NUMBER_204: ' num: ', - NUMBER_205: ' num: true ', - NUMBER_206: ' num: false ', - NUMBER_207: ' num: 4.5e+123any ', - NUMBER_208: ' num: any ', + BOOLEAN_501: 'boolean:0b0', + BOOLEAN_502: 'boolean:+0b0', + BOOLEAN_503: 'boolean:-0b0', + BOOLEAN_504: 'boolean:0B0', + BOOLEAN_505: 'boolean:+0B0', + BOOLEAN_506: 'boolean:-0B0', + BOOLEAN_511: 'boolean:0o0', + BOOLEAN_512: 'boolean:+0o0', + BOOLEAN_513: 'boolean:-0o0', + BOOLEAN_514: 'boolean:0O0', + BOOLEAN_515: 'boolean:+0O0', + BOOLEAN_516: 'boolean:-0O0', + BOOLEAN_521: 'boolean:0x0', + BOOLEAN_522: 'boolean:+0x0', + BOOLEAN_523: 'boolean:-0x0', + BOOLEAN_524: 'boolean:0X0', + BOOLEAN_525: 'boolean:+0X0', + BOOLEAN_526: 'boolean:-0X0', - NUMBER_301: 'number:0b1010', + BOOLEAN_601: 'boolean:0b1010n', + BOOLEAN_602: 'boolean:+0b1010n', + BOOLEAN_603: 'boolean:-0b1010n', + BOOLEAN_604: 'boolean:0B1010n', + BOOLEAN_605: 'boolean:+0B1010n', + BOOLEAN_606: 'boolean:-0B1010n', + BOOLEAN_611: 'boolean:0o12n', + BOOLEAN_612: 'boolean:+0o12n', + BOOLEAN_613: 'boolean:-0o12n', + BOOLEAN_614: 'boolean:0O12n', + BOOLEAN_615: 'boolean:+0O12n', + BOOLEAN_616: 'boolean:-0O12n', + BOOLEAN_621: 'boolean:0xan', + BOOLEAN_622: 'boolean:+0xan', + BOOLEAN_623: 'boolean:-0xan', + BOOLEAN_624: 'boolean:0XAn', + BOOLEAN_625: 'boolean:+0XAn', + BOOLEAN_626: 'boolean:-0XAn', + + BOOLEAN_701: 'boolean:0b0n', + BOOLEAN_702: 'boolean:+0b0n', + BOOLEAN_703: 'boolean:-0b0n', + BOOLEAN_704: 'boolean:0B0n', + BOOLEAN_705: 'boolean:+0B0n', + BOOLEAN_706: 'boolean:-0B0n', + BOOLEAN_711: 'boolean:0o0n', + BOOLEAN_712: 'boolean:+0o0n', + BOOLEAN_713: 'boolean:-0o0n', + BOOLEAN_714: 'boolean:0O0n', + BOOLEAN_715: 'boolean:+0O0n', + BOOLEAN_716: 'boolean:-0O0n', + BOOLEAN_721: 'boolean:0x0n', + BOOLEAN_722: 'boolean:+0x0n', + BOOLEAN_723: 'boolean:-0x0n', + BOOLEAN_724: 'boolean:0X0n', + BOOLEAN_725: 'boolean:+0X0n', + BOOLEAN_726: 'boolean:-0X0n', + } + + // expected output + const expected = { + BOOLEAN_401: true, + BOOLEAN_402: true, + BOOLEAN_403: true, + BOOLEAN_404: true, + BOOLEAN_405: true, + BOOLEAN_406: true, + BOOLEAN_411: true, + BOOLEAN_412: true, + BOOLEAN_413: true, + BOOLEAN_414: true, + BOOLEAN_415: true, + BOOLEAN_416: true, + BOOLEAN_421: true, + BOOLEAN_422: true, + BOOLEAN_423: true, + BOOLEAN_424: true, + BOOLEAN_425: true, + BOOLEAN_426: true, + + BOOLEAN_501: false, + BOOLEAN_502: false, + BOOLEAN_503: false, + BOOLEAN_504: false, + BOOLEAN_505: false, + BOOLEAN_506: false, + BOOLEAN_511: false, + BOOLEAN_512: false, + BOOLEAN_513: false, + BOOLEAN_514: false, + BOOLEAN_515: false, + BOOLEAN_516: false, + BOOLEAN_521: false, + BOOLEAN_522: false, + BOOLEAN_523: false, + BOOLEAN_524: false, + BOOLEAN_525: false, + BOOLEAN_526: false, + + BOOLEAN_601: true, + BOOLEAN_602: true, + BOOLEAN_603: true, + BOOLEAN_604: true, + BOOLEAN_605: true, + BOOLEAN_606: true, + BOOLEAN_611: true, + BOOLEAN_612: true, + BOOLEAN_613: true, + BOOLEAN_614: true, + BOOLEAN_615: true, + BOOLEAN_616: true, + BOOLEAN_621: true, + BOOLEAN_622: true, + BOOLEAN_623: true, + BOOLEAN_624: true, + BOOLEAN_625: true, + BOOLEAN_626: true, + + BOOLEAN_701: false, + BOOLEAN_702: false, + BOOLEAN_703: false, + BOOLEAN_704: false, + BOOLEAN_705: false, + BOOLEAN_706: false, + BOOLEAN_711: false, + BOOLEAN_712: false, + BOOLEAN_713: false, + BOOLEAN_714: false, + BOOLEAN_715: false, + BOOLEAN_716: false, + BOOLEAN_721: false, + BOOLEAN_722: false, + BOOLEAN_723: false, + BOOLEAN_724: false, + BOOLEAN_725: false, + BOOLEAN_726: false, + } + const expectedForEnv = { + BOOLEAN_401: 'true', + BOOLEAN_402: 'true', + BOOLEAN_403: 'true', + BOOLEAN_404: 'true', + BOOLEAN_405: 'true', + BOOLEAN_406: 'true', + BOOLEAN_411: 'true', + BOOLEAN_412: 'true', + BOOLEAN_413: 'true', + BOOLEAN_414: 'true', + BOOLEAN_415: 'true', + BOOLEAN_416: 'true', + BOOLEAN_421: 'true', + BOOLEAN_422: 'true', + BOOLEAN_423: 'true', + BOOLEAN_424: 'true', + BOOLEAN_425: 'true', + BOOLEAN_426: 'true', + + BOOLEAN_501: 'false', + BOOLEAN_502: 'false', + BOOLEAN_503: 'false', + BOOLEAN_504: 'false', + BOOLEAN_505: 'false', + BOOLEAN_506: 'false', + BOOLEAN_511: 'false', + BOOLEAN_512: 'false', + BOOLEAN_513: 'false', + BOOLEAN_514: 'false', + BOOLEAN_515: 'false', + BOOLEAN_516: 'false', + BOOLEAN_521: 'false', + BOOLEAN_522: 'false', + BOOLEAN_523: 'false', + BOOLEAN_524: 'false', + BOOLEAN_525: 'false', + BOOLEAN_526: 'false', + + BOOLEAN_601: 'true', + BOOLEAN_602: 'true', + BOOLEAN_603: 'true', + BOOLEAN_604: 'true', + BOOLEAN_605: 'true', + BOOLEAN_606: 'true', + BOOLEAN_611: 'true', + BOOLEAN_612: 'true', + BOOLEAN_613: 'true', + BOOLEAN_614: 'true', + BOOLEAN_615: 'true', + BOOLEAN_616: 'true', + BOOLEAN_621: 'true', + BOOLEAN_622: 'true', + BOOLEAN_623: 'true', + BOOLEAN_624: 'true', + BOOLEAN_625: 'true', + BOOLEAN_626: 'true', + + BOOLEAN_701: 'false', + BOOLEAN_702: 'false', + BOOLEAN_703: 'false', + BOOLEAN_704: 'false', + BOOLEAN_705: 'false', + BOOLEAN_706: 'false', + BOOLEAN_711: 'false', + BOOLEAN_712: 'false', + BOOLEAN_713: 'false', + BOOLEAN_714: 'false', + BOOLEAN_715: 'false', + BOOLEAN_716: 'false', + BOOLEAN_721: 'false', + BOOLEAN_722: 'false', + BOOLEAN_723: 'false', + BOOLEAN_724: 'false', + BOOLEAN_725: 'false', + BOOLEAN_726: 'false', + } + + // executes + const dotenvConfig = useEnv(input, options) + const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) + + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) + + done() + }) + + it('method:number', function (done) { + // input + const input = { + NUMBER_1: 'number:true', + NUMBER_2: 'number:True', + NUMBER_3: 'number:TRUE', + NUMBER_4: 'number:yes', + NUMBER_5: 'number:Yes', + NUMBER_6: 'number:YES', + NUMBER_7: 'number:false', + NUMBER_8: 'number:False', + NUMBER_9: 'number:FALSE', + NUMBER_10: 'number:no', + NUMBER_11: 'number:No', + NUMBER_12: 'number:NO', + NUMBER_13: 'number:null', + NUMBER_14: 'number:Null', + NUMBER_15: 'number:NULL', + NUMBER_16: 'number:undefined', + NUMBER_17: 'number:UNDEFINED', + NUMBER_18: 'number:not', + NUMBER_19: 'number:Not', + NUMBER_20: 'number:NOT', + NUMBER_21: 'number:none', + NUMBER_22: 'number:None', + NUMBER_23: 'number:NONE', + NUMBER_24: 'number:NaN', + NUMBER_25: 'number:Infinity', + NUMBER_26: 'number:+Infinity', + NUMBER_27: 'number:-Infinity', + NUMBER_28: 'number:0', + NUMBER_29: 'number:+0', + NUMBER_30: 'number:-0', + NUMBER_31: 'number:0n', + NUMBER_32: 'number:+0n', + NUMBER_33: 'number:-0n', + NUMBER_34: 'number:1n', + NUMBER_35: 'number:+1n', + NUMBER_36: 'number:-1n', + NUMBER_37: 'number:[]', + NUMBER_38: 'number:{}', + + NUMBER_41: 'number:4.5e1', + NUMBER_42: 'number:+4.5e+1', + NUMBER_43: 'number:-4.5e-1', + NUMBER_44: 'number:4.5e123', + NUMBER_45: 'number:+4.5e+123', + NUMBER_46: 'number:-4.5e-123', + + NUMBER_101: 'number:', + NUMBER_102: 'number:4.5e+123any', + NUMBER_103: 'number:any', + NUMBER_104: ' number: ', + NUMBER_105: ' number: true ', + NUMBER_106: ' number: false ', + NUMBER_107: ' number: 4.5e+123any ', + NUMBER_108: ' number: any ', + + NUMBER_201: 'num:', + NUMBER_202: 'num:4.5e+123any', + NUMBER_203: 'num:any', + NUMBER_204: ' num: ', + NUMBER_205: ' num: true ', + NUMBER_206: ' num: false ', + NUMBER_207: ' num: 4.5e+123any ', + NUMBER_208: ' num: any ', + + NUMBER_301: 'number:0b1010', NUMBER_302: 'number:+0b1010', NUMBER_303: 'number:-0b1010', NUMBER_304: 'number:0B1010', @@ -2553,6 +3012,144 @@ describe('dotenv-conversion', function () { done() }) + it('method:number:boh>>false', function (done) { + // input + const options = { + binaryNumber: false, + octalNumber: false, + hexadecimalNumber: false, + } + const input = { + NUMBER_301: 'number:0b1010', + NUMBER_302: 'number:+0b1010', + NUMBER_303: 'number:-0b1010', + NUMBER_304: 'number:0B1010', + NUMBER_305: 'number:+0B1010', + NUMBER_306: 'number:-0B1010', + NUMBER_311: 'number:0o12', + NUMBER_312: 'number:+0o12', + NUMBER_313: 'number:-0o12', + NUMBER_314: 'number:0O12', + NUMBER_315: 'number:+0O12', + NUMBER_316: 'number:-0O12', + NUMBER_321: 'number:0xa', + NUMBER_322: 'number:+0xa', + NUMBER_323: 'number:-0xa', + NUMBER_324: 'number:0XA', + NUMBER_325: 'number:+0XA', + NUMBER_326: 'number:-0XA', + + NUMBER_401: 'number:0b1010n', + NUMBER_402: 'number:+0b1010n', + NUMBER_403: 'number:-0b1010n', + NUMBER_404: 'number:0B1010n', + NUMBER_405: 'number:+0B1010n', + NUMBER_406: 'number:-0B1010n', + NUMBER_411: 'number:0o12n', + NUMBER_412: 'number:+0o12n', + NUMBER_413: 'number:-0o12n', + NUMBER_414: 'number:0O12n', + NUMBER_415: 'number:+0O12n', + NUMBER_416: 'number:-0O12n', + NUMBER_421: 'number:0xan', + NUMBER_422: 'number:+0xan', + NUMBER_423: 'number:-0xan', + NUMBER_424: 'number:0XAn', + NUMBER_425: 'number:+0XAn', + NUMBER_426: 'number:-0XAn', + } + + // expected output + const expected = { + NUMBER_301: '0b1010', + NUMBER_302: '+0b1010', + NUMBER_303: '-0b1010', + NUMBER_304: '0B1010', + NUMBER_305: '+0B1010', + NUMBER_306: '-0B1010', + NUMBER_311: '0o12', + NUMBER_312: '+0o12', + NUMBER_313: '-0o12', + NUMBER_314: '0O12', + NUMBER_315: '+0O12', + NUMBER_316: '-0O12', + NUMBER_321: '0xa', + NUMBER_322: '+0xa', + NUMBER_323: '-0xa', + NUMBER_324: '0XA', + NUMBER_325: '+0XA', + NUMBER_326: '-0XA', + + NUMBER_401: '0b1010', + NUMBER_402: '+0b1010', + NUMBER_403: '-0b1010', + NUMBER_404: '0B1010', + NUMBER_405: '+0B1010', + NUMBER_406: '-0B1010', + NUMBER_411: '0o12', + NUMBER_412: '+0o12', + NUMBER_413: '-0o12', + NUMBER_414: '0O12', + NUMBER_415: '+0O12', + NUMBER_416: '-0O12', + NUMBER_421: '0xa', + NUMBER_422: '+0xa', + NUMBER_423: '-0xa', + NUMBER_424: '0XA', + NUMBER_425: '+0XA', + NUMBER_426: '-0XA', + } + const expectedForEnv = { + NUMBER_301: '0b1010', + NUMBER_302: '+0b1010', + NUMBER_303: '-0b1010', + NUMBER_304: '0B1010', + NUMBER_305: '+0B1010', + NUMBER_306: '-0B1010', + NUMBER_311: '0o12', + NUMBER_312: '+0o12', + NUMBER_313: '-0o12', + NUMBER_314: '0O12', + NUMBER_315: '+0O12', + NUMBER_316: '-0O12', + NUMBER_321: '0xa', + NUMBER_322: '+0xa', + NUMBER_323: '-0xa', + NUMBER_324: '0XA', + NUMBER_325: '+0XA', + NUMBER_326: '-0XA', + + NUMBER_401: '0b1010', + NUMBER_402: '+0b1010', + NUMBER_403: '-0b1010', + NUMBER_404: '0B1010', + NUMBER_405: '+0B1010', + NUMBER_406: '-0B1010', + NUMBER_411: '0o12', + NUMBER_412: '+0o12', + NUMBER_413: '-0o12', + NUMBER_414: '0O12', + NUMBER_415: '+0O12', + NUMBER_416: '-0O12', + NUMBER_421: '0xa', + NUMBER_422: '+0xa', + NUMBER_423: '-0xa', + NUMBER_424: '0XA', + NUMBER_425: '+0XA', + NUMBER_426: '-0XA', + } + + // executes + const dotenvConfig = useEnv(input, options) + const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) + + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) + + done() + }) + it('method:bigint', function (done) { // input const input = { @@ -3019,6 +3616,144 @@ describe('dotenv-conversion', function () { done() }) + it('method:bigint:bod>>false', function (done) { + // input + const options = { + binaryBigInt: false, + octalBigInt: false, + hexadecimalBigInt: false, + } + const input = { + BIGINT_301: 'bigint:0b1010n', + BIGINT_302: 'bigint:+0b1010n', + BIGINT_303: 'bigint:-0b1010n', + BIGINT_304: 'bigint:0B1010n', + BIGINT_305: 'bigint:+0B1010n', + BIGINT_306: 'bigint:-0B1010n', + BIGINT_311: 'bigint:0o12n', + BIGINT_312: 'bigint:+0o12n', + BIGINT_313: 'bigint:-0o12n', + BIGINT_314: 'bigint:0O12n', + BIGINT_315: 'bigint:+0O12n', + BIGINT_316: 'bigint:-0O12n', + BIGINT_321: 'bigint:0xan', + BIGINT_322: 'bigint:+0xan', + BIGINT_323: 'bigint:-0xan', + BIGINT_324: 'bigint:0XAn', + BIGINT_325: 'bigint:+0XAn', + BIGINT_326: 'bigint:-0XAn', + + BIGINT_401: 'bigint:0b1010', + BIGINT_402: 'bigint:+0b1010', + BIGINT_403: 'bigint:-0b1010', + BIGINT_404: 'bigint:0B1010', + BIGINT_405: 'bigint:+0B1010', + BIGINT_406: 'bigint:-0B1010', + BIGINT_411: 'bigint:0o12', + BIGINT_412: 'bigint:+0o12', + BIGINT_413: 'bigint:-0o12', + BIGINT_414: 'bigint:0O12', + BIGINT_415: 'bigint:+0O12', + BIGINT_416: 'bigint:-0O12', + BIGINT_421: 'bigint:0xa', + BIGINT_422: 'bigint:+0xa', + BIGINT_423: 'bigint:-0xa', + BIGINT_424: 'bigint:0XA', + BIGINT_425: 'bigint:+0XA', + BIGINT_426: 'bigint:-0XA', + } + + // expected output + const expected = { + BIGINT_301: '0b1010n', + BIGINT_302: '+0b1010n', + BIGINT_303: '-0b1010n', + BIGINT_304: '0B1010n', + BIGINT_305: '+0B1010n', + BIGINT_306: '-0B1010n', + BIGINT_311: '0o12n', + BIGINT_312: '+0o12n', + BIGINT_313: '-0o12n', + BIGINT_314: '0O12n', + BIGINT_315: '+0O12n', + BIGINT_316: '-0O12n', + BIGINT_321: '0xan', + BIGINT_322: '+0xan', + BIGINT_323: '-0xan', + BIGINT_324: '0XAn', + BIGINT_325: '+0XAn', + BIGINT_326: '-0XAn', + + BIGINT_401: '0b1010n', + BIGINT_402: '+0b1010n', + BIGINT_403: '-0b1010n', + BIGINT_404: '0B1010n', + BIGINT_405: '+0B1010n', + BIGINT_406: '-0B1010n', + BIGINT_411: '0o12n', + BIGINT_412: '+0o12n', + BIGINT_413: '-0o12n', + BIGINT_414: '0O12n', + BIGINT_415: '+0O12n', + BIGINT_416: '-0O12n', + BIGINT_421: '0xan', + BIGINT_422: '+0xan', + BIGINT_423: '-0xan', + BIGINT_424: '0XAn', + BIGINT_425: '+0XAn', + BIGINT_426: '-0XAn', + } + const expectedForEnv = { + BIGINT_301: '0b1010n', + BIGINT_302: '+0b1010n', + BIGINT_303: '-0b1010n', + BIGINT_304: '0B1010n', + BIGINT_305: '+0B1010n', + BIGINT_306: '-0B1010n', + BIGINT_311: '0o12n', + BIGINT_312: '+0o12n', + BIGINT_313: '-0o12n', + BIGINT_314: '0O12n', + BIGINT_315: '+0O12n', + BIGINT_316: '-0O12n', + BIGINT_321: '0xan', + BIGINT_322: '+0xan', + BIGINT_323: '-0xan', + BIGINT_324: '0XAn', + BIGINT_325: '+0XAn', + BIGINT_326: '-0XAn', + + BIGINT_401: '0b1010n', + BIGINT_402: '+0b1010n', + BIGINT_403: '-0b1010n', + BIGINT_404: '0B1010n', + BIGINT_405: '+0B1010n', + BIGINT_406: '-0B1010n', + BIGINT_411: '0o12n', + BIGINT_412: '+0o12n', + BIGINT_413: '-0o12n', + BIGINT_414: '0O12n', + BIGINT_415: '+0O12n', + BIGINT_416: '-0O12n', + BIGINT_421: '0xan', + BIGINT_422: '+0xan', + BIGINT_423: '-0xan', + BIGINT_424: '0XAn', + BIGINT_425: '+0XAn', + BIGINT_426: '-0XAn', + } + + // executes + const dotenvConfig = useEnv(input, options) + const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) + + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) + + done() + }) + it('method:string', function (done) { // input const input = { @@ -4373,6 +5108,68 @@ describe('dotenv-conversion', function () { done() }) + it('method:auto:number:boh>>false', function (done) { + // input + const options = { + binaryNumber: false, + octalNumber: false, + hexadecimalNumber: false, + } + const input = 'method.auto.number.boh.false' + + // expected output + const expected = { + NUMBER_301: '0b1010', + NUMBER_302: '+0b1010', + NUMBER_303: '-0b1010', + NUMBER_304: '0B1010', + NUMBER_305: '+0B1010', + NUMBER_306: '-0B1010', + NUMBER_311: '0o12', + NUMBER_312: '+0o12', + NUMBER_313: '-0o12', + NUMBER_314: '0O12', + NUMBER_315: '+0O12', + NUMBER_316: '-0O12', + NUMBER_321: '0xa', + NUMBER_322: '+0xa', + NUMBER_323: '-0xa', + NUMBER_324: '0XA', + NUMBER_325: '+0XA', + NUMBER_326: '-0XA', + } + const expectedForEnv = { + NUMBER_301: '0b1010', + NUMBER_302: '+0b1010', + NUMBER_303: '-0b1010', + NUMBER_304: '0B1010', + NUMBER_305: '+0B1010', + NUMBER_306: '-0B1010', + NUMBER_311: '0o12', + NUMBER_312: '+0o12', + NUMBER_313: '-0o12', + NUMBER_314: '0O12', + NUMBER_315: '+0O12', + NUMBER_316: '-0O12', + NUMBER_321: '0xa', + NUMBER_322: '+0xa', + NUMBER_323: '-0xa', + NUMBER_324: '0XA', + NUMBER_325: '+0XA', + NUMBER_326: '-0XA', + } + + // executes + const dotenvConfig = useEnv(input) + const dotenvConversionConfig = dotenvConversion.convert(Object.assign(options, dotenvConfig)) + + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) + + done() + }) + it('method:auto:bigint', function (done) { // input const input = 'method.auto.bigint' @@ -4533,7 +5330,69 @@ describe('dotenv-conversion', function () { // executes const dotenvConfig = useEnv(input) - const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) + const dotenvConversionConfig = dotenvConversion.convert(dotenvConfig) + + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) + + done() + }) + + it('method:auto:bigint:boh>>false', function (done) { + // input + const options = { + binaryBigInt: false, + octalBigInt: false, + hexadecimalBigInt: false, + } + const input = 'method.auto.bigint.boh.false' + + // expected output + const expected = { + BIGINT_201: '0b1010n', + BIGINT_202: '+0b1010n', + BIGINT_203: '-0b1010n', + BIGINT_204: '0B1010n', + BIGINT_205: '+0B1010n', + BIGINT_206: '-0B1010n', + BIGINT_211: '0o12n', + BIGINT_212: '+0o12n', + BIGINT_213: '-0o12n', + BIGINT_214: '0O12n', + BIGINT_215: '+0O12n', + BIGINT_216: '-0O12n', + BIGINT_221: '0xan', + BIGINT_222: '+0xan', + BIGINT_223: '-0xan', + BIGINT_224: '0XAn', + BIGINT_225: '+0XAn', + BIGINT_226: '-0XAn', + } + const expectedForEnv = { + BIGINT_201: '0b1010n', + BIGINT_202: '+0b1010n', + BIGINT_203: '-0b1010n', + BIGINT_204: '0B1010n', + BIGINT_205: '+0B1010n', + BIGINT_206: '-0B1010n', + BIGINT_211: '0o12n', + BIGINT_212: '+0o12n', + BIGINT_213: '-0o12n', + BIGINT_214: '0O12n', + BIGINT_215: '+0O12n', + BIGINT_216: '-0O12n', + BIGINT_221: '0xan', + BIGINT_222: '+0xan', + BIGINT_223: '-0xan', + BIGINT_224: '0XAn', + BIGINT_225: '+0XAn', + BIGINT_226: '-0XAn', + } + + // executes + const dotenvConfig = useEnv(input) + const dotenvConversionConfig = dotenvConversion.convert(Object.assign(options, dotenvConfig)) // asserts expect(dotenvConversionConfig.parsed).to.deep.equal(expected) @@ -5061,6 +5920,185 @@ describe('dotenv-conversion', function () { done() }) + it('method:boolean:boh>>false', function (done) { + // input + const options = { + binaryNumber: false, + octalNumber: false, + hexadecimalNumber: false, + binaryBigInt: false, + octalBigInt: false, + hexadecimalBigInt: false, + } + const input = 'method.boolean.boh.false' + + // expected output + const expected = { + BOOLEAN_401: true, + BOOLEAN_402: true, + BOOLEAN_403: true, + BOOLEAN_404: true, + BOOLEAN_405: true, + BOOLEAN_406: true, + BOOLEAN_411: true, + BOOLEAN_412: true, + BOOLEAN_413: true, + BOOLEAN_414: true, + BOOLEAN_415: true, + BOOLEAN_416: true, + BOOLEAN_421: true, + BOOLEAN_422: true, + BOOLEAN_423: true, + BOOLEAN_424: true, + BOOLEAN_425: true, + BOOLEAN_426: true, + + BOOLEAN_501: false, + BOOLEAN_502: false, + BOOLEAN_503: false, + BOOLEAN_504: false, + BOOLEAN_505: false, + BOOLEAN_506: false, + BOOLEAN_511: false, + BOOLEAN_512: false, + BOOLEAN_513: false, + BOOLEAN_514: false, + BOOLEAN_515: false, + BOOLEAN_516: false, + BOOLEAN_521: false, + BOOLEAN_522: false, + BOOLEAN_523: false, + BOOLEAN_524: false, + BOOLEAN_525: false, + BOOLEAN_526: false, + + BOOLEAN_601: true, + BOOLEAN_602: true, + BOOLEAN_603: true, + BOOLEAN_604: true, + BOOLEAN_605: true, + BOOLEAN_606: true, + BOOLEAN_611: true, + BOOLEAN_612: true, + BOOLEAN_613: true, + BOOLEAN_614: true, + BOOLEAN_615: true, + BOOLEAN_616: true, + BOOLEAN_621: true, + BOOLEAN_622: true, + BOOLEAN_623: true, + BOOLEAN_624: true, + BOOLEAN_625: true, + BOOLEAN_626: true, + + BOOLEAN_701: false, + BOOLEAN_702: false, + BOOLEAN_703: false, + BOOLEAN_704: false, + BOOLEAN_705: false, + BOOLEAN_706: false, + BOOLEAN_711: false, + BOOLEAN_712: false, + BOOLEAN_713: false, + BOOLEAN_714: false, + BOOLEAN_715: false, + BOOLEAN_716: false, + BOOLEAN_721: false, + BOOLEAN_722: false, + BOOLEAN_723: false, + BOOLEAN_724: false, + BOOLEAN_725: false, + BOOLEAN_726: false, + } + const expectedForEnv = { + BOOLEAN_401: 'true', + BOOLEAN_402: 'true', + BOOLEAN_403: 'true', + BOOLEAN_404: 'true', + BOOLEAN_405: 'true', + BOOLEAN_406: 'true', + BOOLEAN_411: 'true', + BOOLEAN_412: 'true', + BOOLEAN_413: 'true', + BOOLEAN_414: 'true', + BOOLEAN_415: 'true', + BOOLEAN_416: 'true', + BOOLEAN_421: 'true', + BOOLEAN_422: 'true', + BOOLEAN_423: 'true', + BOOLEAN_424: 'true', + BOOLEAN_425: 'true', + BOOLEAN_426: 'true', + + BOOLEAN_501: 'false', + BOOLEAN_502: 'false', + BOOLEAN_503: 'false', + BOOLEAN_504: 'false', + BOOLEAN_505: 'false', + BOOLEAN_506: 'false', + BOOLEAN_511: 'false', + BOOLEAN_512: 'false', + BOOLEAN_513: 'false', + BOOLEAN_514: 'false', + BOOLEAN_515: 'false', + BOOLEAN_516: 'false', + BOOLEAN_521: 'false', + BOOLEAN_522: 'false', + BOOLEAN_523: 'false', + BOOLEAN_524: 'false', + BOOLEAN_525: 'false', + BOOLEAN_526: 'false', + + BOOLEAN_601: 'true', + BOOLEAN_602: 'true', + BOOLEAN_603: 'true', + BOOLEAN_604: 'true', + BOOLEAN_605: 'true', + BOOLEAN_606: 'true', + BOOLEAN_611: 'true', + BOOLEAN_612: 'true', + BOOLEAN_613: 'true', + BOOLEAN_614: 'true', + BOOLEAN_615: 'true', + BOOLEAN_616: 'true', + BOOLEAN_621: 'true', + BOOLEAN_622: 'true', + BOOLEAN_623: 'true', + BOOLEAN_624: 'true', + BOOLEAN_625: 'true', + BOOLEAN_626: 'true', + + BOOLEAN_701: 'false', + BOOLEAN_702: 'false', + BOOLEAN_703: 'false', + BOOLEAN_704: 'false', + BOOLEAN_705: 'false', + BOOLEAN_706: 'false', + BOOLEAN_711: 'false', + BOOLEAN_712: 'false', + BOOLEAN_713: 'false', + BOOLEAN_714: 'false', + BOOLEAN_715: 'false', + BOOLEAN_716: 'false', + BOOLEAN_721: 'false', + BOOLEAN_722: 'false', + BOOLEAN_723: 'false', + BOOLEAN_724: 'false', + BOOLEAN_725: 'false', + BOOLEAN_726: 'false', + } + + // executes + const dotenvConfig = useEnv(input, options) + const dotenvConversionConfig = dotenvConversion.convert(Object.assign(options, dotenvConfig)) + + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) + + done() + }) + it('method:number', function (done) { // input const input = 'method.number' @@ -5338,6 +6376,106 @@ describe('dotenv-conversion', function () { done() }) + it('method:number:boh>>false', function (done) { + // input + const options = { + binaryNumber: false, + octalNumber: false, + hexadecimalNumber: false, + } + const input = 'method.number.boh.false' + + // expected output + const expected = { + NUMBER_301: '0b1010', + NUMBER_302: '+0b1010', + NUMBER_303: '-0b1010', + NUMBER_304: '0B1010', + NUMBER_305: '+0B1010', + NUMBER_306: '-0B1010', + NUMBER_311: '0o12', + NUMBER_312: '+0o12', + NUMBER_313: '-0o12', + NUMBER_314: '0O12', + NUMBER_315: '+0O12', + NUMBER_316: '-0O12', + NUMBER_321: '0xa', + NUMBER_322: '+0xa', + NUMBER_323: '-0xa', + NUMBER_324: '0XA', + NUMBER_325: '+0XA', + NUMBER_326: '-0XA', + + NUMBER_401: '0b1010', + NUMBER_402: '+0b1010', + NUMBER_403: '-0b1010', + NUMBER_404: '0B1010', + NUMBER_405: '+0B1010', + NUMBER_406: '-0B1010', + NUMBER_411: '0o12', + NUMBER_412: '+0o12', + NUMBER_413: '-0o12', + NUMBER_414: '0O12', + NUMBER_415: '+0O12', + NUMBER_416: '-0O12', + NUMBER_421: '0xa', + NUMBER_422: '+0xa', + NUMBER_423: '-0xa', + NUMBER_424: '0XA', + NUMBER_425: '+0XA', + NUMBER_426: '-0XA', + } + const expectedForEnv = { + NUMBER_301: '0b1010', + NUMBER_302: '+0b1010', + NUMBER_303: '-0b1010', + NUMBER_304: '0B1010', + NUMBER_305: '+0B1010', + NUMBER_306: '-0B1010', + NUMBER_311: '0o12', + NUMBER_312: '+0o12', + NUMBER_313: '-0o12', + NUMBER_314: '0O12', + NUMBER_315: '+0O12', + NUMBER_316: '-0O12', + NUMBER_321: '0xa', + NUMBER_322: '+0xa', + NUMBER_323: '-0xa', + NUMBER_324: '0XA', + NUMBER_325: '+0XA', + NUMBER_326: '-0XA', + + NUMBER_401: '0b1010', + NUMBER_402: '+0b1010', + NUMBER_403: '-0b1010', + NUMBER_404: '0B1010', + NUMBER_405: '+0B1010', + NUMBER_406: '-0B1010', + NUMBER_411: '0o12', + NUMBER_412: '+0o12', + NUMBER_413: '-0o12', + NUMBER_414: '0O12', + NUMBER_415: '+0O12', + NUMBER_416: '-0O12', + NUMBER_421: '0xa', + NUMBER_422: '+0xa', + NUMBER_423: '-0xa', + NUMBER_424: '0XA', + NUMBER_425: '+0XA', + NUMBER_426: '-0XA', + } + + // executes + const dotenvConfig = useEnv(input) + const dotenvConversionConfig = dotenvConversion.convert(Object.assign(options, dotenvConfig)) + + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) + + done() + }) + it('method:bigint', function (done) { // input const input = 'method.bigint' @@ -5655,6 +6793,106 @@ describe('dotenv-conversion', function () { done() }) + it('method:bigint:boh>>false', function (done) { + // input + const options = { + binaryBigInt: false, + octalBigInt: false, + hexadecimalBigInt: false, + } + const input = 'method.bigint.boh.false' + + // expected output + const expected = { + BIGINT_301: '0b1010n', + BIGINT_302: '+0b1010n', + BIGINT_303: '-0b1010n', + BIGINT_304: '0B1010n', + BIGINT_305: '+0B1010n', + BIGINT_306: '-0B1010n', + BIGINT_311: '0o12n', + BIGINT_312: '+0o12n', + BIGINT_313: '-0o12n', + BIGINT_314: '0O12n', + BIGINT_315: '+0O12n', + BIGINT_316: '-0O12n', + BIGINT_321: '0xan', + BIGINT_322: '+0xan', + BIGINT_323: '-0xan', + BIGINT_324: '0XAn', + BIGINT_325: '+0XAn', + BIGINT_326: '-0XAn', + + BIGINT_401: '0b1010n', + BIGINT_402: '+0b1010n', + BIGINT_403: '-0b1010n', + BIGINT_404: '0B1010n', + BIGINT_405: '+0B1010n', + BIGINT_406: '-0B1010n', + BIGINT_411: '0o12n', + BIGINT_412: '+0o12n', + BIGINT_413: '-0o12n', + BIGINT_414: '0O12n', + BIGINT_415: '+0O12n', + BIGINT_416: '-0O12n', + BIGINT_421: '0xan', + BIGINT_422: '+0xan', + BIGINT_423: '-0xan', + BIGINT_424: '0XAn', + BIGINT_425: '+0XAn', + BIGINT_426: '-0XAn', + } + const expectedForEnv = { + BIGINT_301: '0b1010n', + BIGINT_302: '+0b1010n', + BIGINT_303: '-0b1010n', + BIGINT_304: '0B1010n', + BIGINT_305: '+0B1010n', + BIGINT_306: '-0B1010n', + BIGINT_311: '0o12n', + BIGINT_312: '+0o12n', + BIGINT_313: '-0o12n', + BIGINT_314: '0O12n', + BIGINT_315: '+0O12n', + BIGINT_316: '-0O12n', + BIGINT_321: '0xan', + BIGINT_322: '+0xan', + BIGINT_323: '-0xan', + BIGINT_324: '0XAn', + BIGINT_325: '+0XAn', + BIGINT_326: '-0XAn', + + BIGINT_401: '0b1010n', + BIGINT_402: '+0b1010n', + BIGINT_403: '-0b1010n', + BIGINT_404: '0B1010n', + BIGINT_405: '+0B1010n', + BIGINT_406: '-0B1010n', + BIGINT_411: '0o12n', + BIGINT_412: '+0o12n', + BIGINT_413: '-0o12n', + BIGINT_414: '0O12n', + BIGINT_415: '+0O12n', + BIGINT_416: '-0O12n', + BIGINT_421: '0xan', + BIGINT_422: '+0xan', + BIGINT_423: '-0xan', + BIGINT_424: '0XAn', + BIGINT_425: '+0XAn', + BIGINT_426: '-0XAn', + } + + // executes + const dotenvConfig = useEnv(input) + const dotenvConversionConfig = dotenvConversion.convert(Object.assign(options, dotenvConfig)) + + // asserts + expect(dotenvConversionConfig.parsed).to.deep.equal(expected) + expect(process.env).to.deep.include(expectedForEnv) + + done() + }) + it('method:string', function (done) { // input const input = 'method.string' diff --git a/tests/inputs/method.auto.bigint.boh.false.env b/tests/inputs/method.auto.bigint.boh.false.env new file mode 100644 index 0000000..91b162e --- /dev/null +++ b/tests/inputs/method.auto.bigint.boh.false.env @@ -0,0 +1,18 @@ +BIGINT_201=0b1010n +BIGINT_202=+0b1010n +BIGINT_203=-0b1010n +BIGINT_204=0B1010n +BIGINT_205=+0B1010n +BIGINT_206=-0B1010n +BIGINT_211=0o12n +BIGINT_212=+0o12n +BIGINT_213=-0o12n +BIGINT_214=0O12n +BIGINT_215=+0O12n +BIGINT_216=-0O12n +BIGINT_221=0xan +BIGINT_222=+0xan +BIGINT_223=-0xan +BIGINT_224=0XAn +BIGINT_225=+0XAn +BIGINT_226=-0XAn diff --git a/tests/inputs/method.auto.number.boh.false.env b/tests/inputs/method.auto.number.boh.false.env new file mode 100644 index 0000000..3c3d719 --- /dev/null +++ b/tests/inputs/method.auto.number.boh.false.env @@ -0,0 +1,18 @@ +NUMBER_301=0b1010 +NUMBER_302=+0b1010 +NUMBER_303=-0b1010 +NUMBER_304=0B1010 +NUMBER_305=+0B1010 +NUMBER_306=-0B1010 +NUMBER_311=0o12 +NUMBER_312=+0o12 +NUMBER_313=-0o12 +NUMBER_314=0O12 +NUMBER_315=+0O12 +NUMBER_316=-0O12 +NUMBER_321=0xa +NUMBER_322=+0xa +NUMBER_323=-0xa +NUMBER_324=0XA +NUMBER_325=+0XA +NUMBER_326=-0XA diff --git a/tests/inputs/method.bigint.boh.false.env b/tests/inputs/method.bigint.boh.false.env new file mode 100644 index 0000000..f101842 --- /dev/null +++ b/tests/inputs/method.bigint.boh.false.env @@ -0,0 +1,37 @@ +BIGINT_301=bigint:0b1010n +BIGINT_302=bigint:+0b1010n +BIGINT_303=bigint:-0b1010n +BIGINT_304=bigint:0B1010n +BIGINT_305=bigint:+0B1010n +BIGINT_306=bigint:-0B1010n +BIGINT_311=bigint:0o12n +BIGINT_312=bigint:+0o12n +BIGINT_313=bigint:-0o12n +BIGINT_314=bigint:0O12n +BIGINT_315=bigint:+0O12n +BIGINT_316=bigint:-0O12n +BIGINT_321=bigint:0xan +BIGINT_322=bigint:+0xan +BIGINT_323=bigint:-0xan +BIGINT_324=bigint:0XAn +BIGINT_325=bigint:+0XAn +BIGINT_326=bigint:-0XAn + +BIGINT_401=bigint:0b1010 +BIGINT_402=bigint:+0b1010 +BIGINT_403=bigint:-0b1010 +BIGINT_404=bigint:0B1010 +BIGINT_405=bigint:+0B1010 +BIGINT_406=bigint:-0B1010 +BIGINT_411=bigint:0o12 +BIGINT_412=bigint:+0o12 +BIGINT_413=bigint:-0o12 +BIGINT_414=bigint:0O12 +BIGINT_415=bigint:+0O12 +BIGINT_416=bigint:-0O12 +BIGINT_421=bigint:0xa +BIGINT_422=bigint:+0xa +BIGINT_423=bigint:-0xa +BIGINT_424=bigint:0XA +BIGINT_425=bigint:+0XA +BIGINT_426=bigint:-0XA diff --git a/tests/inputs/method.boolean.boh.false.env b/tests/inputs/method.boolean.boh.false.env new file mode 100644 index 0000000..3263570 --- /dev/null +++ b/tests/inputs/method.boolean.boh.false.env @@ -0,0 +1,75 @@ +BOOLEAN_401=boolean:0b1010 +BOOLEAN_402=boolean:+0b1010 +BOOLEAN_403=boolean:-0b1010 +BOOLEAN_404=boolean:0B1010 +BOOLEAN_405=boolean:+0B1010 +BOOLEAN_406=boolean:-0B1010 +BOOLEAN_411=boolean:0o12 +BOOLEAN_412=boolean:+0o12 +BOOLEAN_413=boolean:-0o12 +BOOLEAN_414=boolean:0O12 +BOOLEAN_415=boolean:+0O12 +BOOLEAN_416=boolean:-0O12 +BOOLEAN_421=boolean:0xa +BOOLEAN_422=boolean:+0xa +BOOLEAN_423=boolean:-0xa +BOOLEAN_424=boolean:0XA +BOOLEAN_425=boolean:+0XA +BOOLEAN_426=boolean:-0XA + +BOOLEAN_501=boolean:0b0 +BOOLEAN_502=boolean:+0b0 +BOOLEAN_503=boolean:-0b0 +BOOLEAN_504=boolean:0B0 +BOOLEAN_505=boolean:+0B0 +BOOLEAN_506=boolean:-0B0 +BOOLEAN_511=boolean:0o0 +BOOLEAN_512=boolean:+0o0 +BOOLEAN_513=boolean:-0o0 +BOOLEAN_514=boolean:0O0 +BOOLEAN_515=boolean:+0O0 +BOOLEAN_516=boolean:-0O0 +BOOLEAN_521=boolean:0x0 +BOOLEAN_522=boolean:+0x0 +BOOLEAN_523=boolean:-0x0 +BOOLEAN_524=boolean:0X0 +BOOLEAN_525=boolean:+0X0 +BOOLEAN_526=boolean:-0X0 + +BOOLEAN_601=boolean:0b1010n +BOOLEAN_602=boolean:+0b1010n +BOOLEAN_603=boolean:-0b1010n +BOOLEAN_604=boolean:0B1010n +BOOLEAN_605=boolean:+0B1010n +BOOLEAN_606=boolean:-0B1010n +BOOLEAN_611=boolean:0o12n +BOOLEAN_612=boolean:+0o12n +BOOLEAN_613=boolean:-0o12n +BOOLEAN_614=boolean:0O12n +BOOLEAN_615=boolean:+0O12n +BOOLEAN_616=boolean:-0O12n +BOOLEAN_621=boolean:0xan +BOOLEAN_622=boolean:+0xan +BOOLEAN_623=boolean:-0xan +BOOLEAN_624=boolean:0XAn +BOOLEAN_625=boolean:+0XAn +BOOLEAN_626=boolean:-0XAn + +BOOLEAN_701=boolean:0b0n +BOOLEAN_702=boolean:+0b0n +BOOLEAN_703=boolean:-0b0n +BOOLEAN_704=boolean:0B0n +BOOLEAN_705=boolean:+0B0n +BOOLEAN_706=boolean:-0B0n +BOOLEAN_711=boolean:0o0n +BOOLEAN_712=boolean:+0o0n +BOOLEAN_713=boolean:-0o0n +BOOLEAN_714=boolean:0O0n +BOOLEAN_715=boolean:+0O0n +BOOLEAN_716=boolean:-0O0n +BOOLEAN_721=boolean:0x0n +BOOLEAN_722=boolean:+0x0n +BOOLEAN_723=boolean:-0x0n +BOOLEAN_724=boolean:0X0n +BOOLEAN_725=boolean:+0X0n +BOOLEAN_726=boolean:-0X0n diff --git a/tests/inputs/method.number.boh.false.env b/tests/inputs/method.number.boh.false.env new file mode 100644 index 0000000..a473e51 --- /dev/null +++ b/tests/inputs/method.number.boh.false.env @@ -0,0 +1,37 @@ +NUMBER_301=number:0b1010 +NUMBER_302=number:+0b1010 +NUMBER_303=number:-0b1010 +NUMBER_304=number:0B1010 +NUMBER_305=number:+0B1010 +NUMBER_306=number:-0B1010 +NUMBER_311=number:0o12 +NUMBER_312=number:+0o12 +NUMBER_313=number:-0o12 +NUMBER_314=number:0O12 +NUMBER_315=number:+0O12 +NUMBER_316=number:-0O12 +NUMBER_321=number:0xa +NUMBER_322=number:+0xa +NUMBER_323=number:-0xa +NUMBER_324=number:0XA +NUMBER_325=number:+0XA +NUMBER_326=number:-0XA + +NUMBER_401=number:0b1010n +NUMBER_402=number:+0b1010n +NUMBER_403=number:-0b1010n +NUMBER_404=number:0B1010n +NUMBER_405=number:+0B1010n +NUMBER_406=number:-0B1010n +NUMBER_411=number:0o12n +NUMBER_412=number:+0o12n +NUMBER_413=number:-0o12n +NUMBER_414=number:0O12n +NUMBER_415=number:+0O12n +NUMBER_416=number:-0O12n +NUMBER_421=number:0xan +NUMBER_422=number:+0xan +NUMBER_423=number:-0xan +NUMBER_424=number:0XAn +NUMBER_425=number:+0XAn +NUMBER_426=number:-0XAn