UNPKG

@zohodesk/client_build_tool

Version:

A CLI tool to build web applications and client libraries

87 lines (61 loc) 2.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getOptions = exports.args = void 0; var _applyValuesToSchema = require("./applyValuesToSchema"); var _cliArgsToObject = require("./cliArgsToObject"); var _defaultConfigValues = _interopRequireDefault(require("./defaultConfigValues")); var _deprecatedOptionsHandler = require("./deprecatedOptionsHandler"); var _getNpmVersion = require("./getNpmVersion"); var _npmConfigToObject = require("./npmConfigToObject"); var _readOptionsForConfigFile = require("./readOptionsForConfigFile"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const args = process.argv.slice(2); exports.args = args; const processEnv = (0, _npmConfigToObject.npmConfigToObject)(); const cliArgsObject = (0, _cliArgsToObject.cliArgsToObject)(args); if (cliArgsObject.app_domain && cliArgsObject.app_domain == 'kubernetes') { cliArgsObject.k8s = true; } if (cliArgsObject.app_domain) { cliArgsObject.domain = cliArgsObject.app_domain; } if (cliArgsObject.app_port) { cliArgsObject.port = cliArgsObject.app_port; } if (cliArgsObject.app_host) { cliArgsObject.host = cliArgsObject.app_host; } if (processEnv.app_domain && processEnv.app_domain == 'kubernetes') { cliArgsObject.k8s = true; } if (processEnv.app_domain) { cliArgsObject.domain = processEnv.app_domain; } if (processEnv.app_port) { cliArgsObject.port = processEnv.app_port; } if (processEnv.app_host) { cliArgsObject.host = processEnv.app_host; } Object.assign(processEnv, cliArgsObject); let reactCLIOptions = null; const getOptions = () => { if (reactCLIOptions) { return reactCLIOptions; } const appPath = process.cwd(); const userSchemas = (0, _readOptionsForConfigFile.readOptionsForPackageJson)(appPath); // NOTE: Only config File option will with cli option config_file const configFileSchemas = (0, _readOptionsForConfigFile.readOptionsForConfigFile)(appPath, cliArgsObject.config_file || 'cbt.config.js'); const options = (0, _applyValuesToSchema.applyValuesToSchema)(_defaultConfigValues.default, configFileSchemas || userSchemas || {}, processEnv); (0, _deprecatedOptionsHandler.deprecatedOptionsHandler)(options); // for future may be for npm 8 edge cases options.npmVersion = (0, _getNpmVersion.getNpmVersion)(); options.cwd = appPath; options.packageVersion = process.env.npm_package_version; options.extraArgs = process.argv.slice(3); // eslint-disable-next-line prefer-destructuring options.commandOption = process.argv[2]; reactCLIOptions = options; // console.log({ options }); return options; }; exports.getOptions = getOptions;