UNPKG

arg-env

Version:

Node.js package to work with `.env` files in the same way as docker and docker-compose via `--env-file` or `"env_file"` in package.json

50 lines (49 loc) 1.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.fromPackageEnv = exports.fromArgs = void 0; var argStart = 2, argPrefix = "--env-file=", argPrefixLength = argPrefix["length"], packagePrefix = "npm_package_config_env_file"; /** * @see https://github.com/npm/cli/issues/3775 * @see https://github.com/npm/run-script/issues/37 */ var npm7delimiter = "\n\n"; function fromArgs(argv, deleteThem) { var length = argv.length, collected = [], indexesToDelete = deleteThem ? [] : undefined; for (var i = argStart; i < length; i++) { var arg = argv[i]; if (!arg.startsWith(argPrefix)) continue; collected.push(arg.substr(argPrefixLength)); deleteThem && indexesToDelete.push(i); } var lengthToDelete = indexesToDelete === null || indexesToDelete === void 0 ? void 0 : indexesToDelete.length; if (lengthToDelete) { var deleteIndex = 0, curIndex = indexesToDelete[0]; for (var preIndex = curIndex; preIndex < length; preIndex++) { while (preIndex === indexesToDelete[deleteIndex]) { preIndex++; deleteIndex++; } argv[curIndex] = argv[preIndex]; curIndex++; } argv.length -= lengthToDelete; } return collected; } exports.fromArgs = fromArgs; /** * @todo Consider calculation as in compose.yml */ function fromPackageEnv(env) { var _a, _b; var collected = (_b = (_a = env[packagePrefix]) === null || _a === void 0 ? void 0 : _a.split(npm7delimiter)) !== null && _b !== void 0 ? _b : []; var i = 0, key = packagePrefix + "_" + i; while (key in env) { collected[i] = env[key]; i++; key = packagePrefix + "_" + i; } return collected; } exports.fromPackageEnv = fromPackageEnv;