HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/good-life-be/node_modules/dotenv-flow/lib/cli-options.js
'use strict';

const CLI_OPTIONS_MAP = {
  '--node-env': 'node_env',
  '--default-node-env': 'default_node_env',
  '--dotenv-flow-path': 'path',
  '--dotenv-flow-pattern': 'pattern',
  '--dotenv-flow-encoding': 'encoding',
  '--dotenv-flow-purge-dotenv': 'purge_dotenv',
  '--dotenv-flow-debug': 'debug',
  '--dotenv-flow-silent': 'silent'
};

const CLI_OPTION_KEYS = Object.keys(CLI_OPTIONS_MAP);

/**
 * Get CLI options for `dotenv-flow#config()`.
 *
 * @param {string[]} [argv=process.argv]
 * @return {{node_env?: string, default_node_env?: string, path?: string, encoding?: string, purge_dotenv?: string, silent?: string}}
 */
module.exports = function cli_options(argv = process.argv) {
  const options = {};

  for (let i = 0; i < argv.length; i++) {
    const arg = argv[i];

    if (arg in CLI_OPTIONS_MAP) {
      options[ CLI_OPTIONS_MAP[arg] ] = argv[++i];
      continue;
    }

    for (let j = 0; j < CLI_OPTION_KEYS.length; j++) {
      const flag = CLI_OPTION_KEYS[j];

      if (arg.startsWith(flag + '=')) {
        options[ CLI_OPTIONS_MAP[flag] ] = arg.slice(flag.length + 1);
        break;
      }
    }
  }

  return options;
};