generator-pyhipster
Version:
Python (Flask) + Angular/React/Vue in one handy generator
64 lines (58 loc) • 2.99 kB
JavaScript
/**
* Copyright 2013-2022 the original author or authors from the JHipster project.
*
* This file is part of the JHipster project, see https://www.jhipster.tech/
* for more information.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
const JDLApplicationConfiguration = require('./jdl-application-configuration');
const StringJDLApplicationConfigurationOption = require('./string-jdl-application-configuration-option');
const IntegerJDLApplicationConfigurationOption = require('./integer-jdl-application-configuration-option');
const BooleanJDLApplicationConfigurationOption = require('./boolean-jdl-application-configuration-option');
const ListJDLApplicationConfigurationOption = require('./list-jdl-application-configuration-option');
const { getTypeForOption, doesOptionExist, OptionTypes, shouldTheValueBeQuoted } = require('../jhipster/application-options');
const logger = require('../utils/objects/logger');
module.exports = { createApplicationConfigurationFromObject };
function createApplicationConfigurationFromObject(configurationObject = {}) {
const configuration = new JDLApplicationConfiguration();
Object.keys(configurationObject).forEach(optionName => {
const optionValue = configurationObject[optionName];
if (!doesOptionExist(optionName, optionValue)) {
logger.debug(`Unrecognized application option name and value: ${optionName} and ${optionValue}`);
return;
}
configuration.setOption(createJDLConfigurationOption(optionName, optionValue));
});
return configuration;
}
function createJDLConfigurationOption(name, value) {
const type = getTypeForOption(name);
switch (type) {
case OptionTypes.STRING:
return new StringJDLApplicationConfigurationOption(name, value, shouldTheValueBeQuoted(name));
case OptionTypes.INTEGER:
return new IntegerJDLApplicationConfigurationOption(name, value);
case OptionTypes.BOOLEAN:
return new BooleanJDLApplicationConfigurationOption(name, value);
case OptionTypes.LIST:
return new ListJDLApplicationConfigurationOption(name, value);
/* istanbul ignore next */
default:
// It should not happen! This is a developer error.
// If this is the case then an option's type isn't one of the cases
// If there's a new option type, then you should handle it in the switch.
// If there's no new option type, then you may have made a mistake.
throw new Error(`Unrecognized option type: ${type}.`);
}
}