@zohodesk/client_build_tool
Version:
A CLI tool to build web applications and client libraries
87 lines (61 loc) • 2.69 kB
JavaScript
;
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;