gen-jhipster
Version:
VHipster - Spring Boot + Angular/React/Vue in one handy generator
291 lines (290 loc) • 12.7 kB
JavaScript
/**
* Copyright 2013-2026 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.
*/
import { APPLICATION_TYPE_GATEWAY, APPLICATION_TYPE_MICROSERVICE, APPLICATION_TYPE_MONOLITH } from "../core/application-types.js";
import authenticationTypes from "./authentication-types.js";
import buildToolTypes from "./build-tool-types.js";
import cacheTypes from "./cache-types.js";
import clientFrameworkTypes from "./client-framework-types.js";
import databaseTypes from "./database-types.js";
import { builtInConfigPropsValidations } from "./jdl-validator-definition.js";
import searchEngineTypes from "./search-engine-types.js";
import serviceDiscoveryTypes from "./service-discovery-types.js";
import testFrameworkTypes from "./test-framework-types.js";
import websocketTypes from "./websocket-types.js";
const { CASSANDRA, COUCHBASE, MARIADB, MONGODB, MSSQL, MYSQL, NEO4J, ORACLE, POSTGRESQL, SQL, H2_DISK, H2_MEMORY } = databaseTypes;
const NO_DATABASE = databaseTypes.NO;
const { JWT, OAUTH2, SESSION } = authenticationTypes;
const { MAVEN, GRADLE } = buildToolTypes;
const { CAFFEINE, EHCACHE, HAZELCAST, INFINISPAN, MEMCACHED, REDIS } = cacheTypes;
const NO_CACHE_PROVIDER = cacheTypes.NO;
const { CYPRESS, CUCUMBER, GATLING } = testFrameworkTypes;
const { ANGULAR, REACT, VUE, SVELTE, NO } = clientFrameworkTypes;
const { ELASTICSEARCH } = searchEngineTypes;
const NO_SEARCH_ENGINE = searchEngineTypes.NO;
const COUCHBASE_SEARCH_ENGINE = searchEngineTypes.COUCHBASE;
const { EUREKA, CONSUL } = serviceDiscoveryTypes;
const NO_SERVICE_DISCOVERY = serviceDiscoveryTypes.NO;
const { SPRING_WEBSOCKET } = websocketTypes;
const NO_WEBSOCKET = websocketTypes.NO;
const ApplicationOptionTypes = {
STRING: 'string',
INTEGER: 'integer',
BOOLEAN: 'boolean',
LIST: 'list',
};
const optionNames = {
APPLICATION_TYPE: 'applicationType',
AUTHENTICATION_TYPE: 'authenticationType',
BASE_NAME: 'baseName',
BLUEPRINT: 'blueprint',
BLUEPRINTS: 'blueprints',
BUILD_TOOL: 'buildTool',
CACHE_PROVIDER: 'cacheProvider',
CLIENT_FRAMEWORK: 'clientFramework',
CLIENT_THEME: 'clientTheme',
CLIENT_THEME_VARIANT: 'clientThemeVariant',
WITH_ADMIN_UI: 'withAdminUi',
CREATION_TIMESTAMP: 'creationTimestamp',
DATABASE_TYPE: 'databaseType',
DEV_DATABASE_TYPE: 'devDatabaseType',
DTO_SUFFIX: 'dtoSuffix',
ENABLE_HIBERNATE_CACHE: 'enableHibernateCache',
ENABLE_SWAGGER_CODEGEN: 'enableSwaggerCodegen',
ENABLE_TRANSLATION: 'enableTranslation',
ENTITY_SUFFIX: 'entitySuffix',
EXPERIMENTAL: 'experimental',
GATEWAY_SERVER_PORT: 'gatewayServerPort',
I_18_N: 'i18N',
INSTALL_MODULES: 'installModules',
JHI_PREFIX: 'jhiPrefix',
JHIPSTER_VERSION: 'jhipsterVersion',
JWT_SECRET_KEY: 'jwtSecretKey',
LANGUAGES: 'languages',
MICROFRONTEND: 'microfrontend',
MICROFRONTENDS: 'microfrontends',
NATIVE_LANGUAGE: 'nativeLanguage',
NODE_PACKAGE_MANAGER: 'nodePackageManager',
PACKAGE_NAME: 'packageName',
PACKAGE_FOLDER: 'packageFolder',
PROD_DATABASE_TYPE: 'prodDatabaseType',
REACTIVE: 'reactive',
REMEMBER_ME_KEY: 'rememberMeKey',
SEARCH_ENGINE: 'searchEngine',
SERVER_PORT: 'serverPort',
SERVICE_DISCOVERY_TYPE: 'serviceDiscoveryType',
SKIP_CLIENT: 'skipClient',
SKIP_GIT: 'skipGit',
SKIP_INSTALL: 'skipInstall',
SKIP_SERVER: 'skipServer',
SKIP_USER_MANAGEMENT: 'skipUserManagement',
TEST_FRAMEWORKS: 'testFrameworks',
WEBSOCKET: 'websocket',
ENABLE_GRADLE_DEVELOCITY: 'enableGradleDevelocity',
GRADLE_DEVELOCITY_HOST: 'gradleDevelocityHost',
ENABLE_GRPC: 'enableGrpc',
GRPC_PORT: 'grpcPort',
ENABLE_VIRTUAL_THREADS: 'enableVirtualThreads',
};
export const jhipsterOptionValues = {
// TODO refactor it mixes default values (e.g. BaseName=Jhipster) and element list (e.g. application types)
[]: {
[]: APPLICATION_TYPE_MONOLITH,
[]: APPLICATION_TYPE_MICROSERVICE,
[]: APPLICATION_TYPE_GATEWAY,
},
[]: {
[]: JWT,
[]: OAUTH2,
[]: SESSION,
},
[]: 'jhipster',
[]: undefined,
[]: [],
[]: {
[]: MAVEN,
[]: GRADLE,
},
[]: {
[]: CAFFEINE,
[]: EHCACHE,
[]: HAZELCAST,
[]: INFINISPAN,
[]: MEMCACHED,
[]: REDIS,
[]: NO_CACHE_PROVIDER,
},
[]: {
[]: ANGULAR,
[]: REACT,
[]: VUE,
[]: SVELTE,
[]: NO,
},
[]: 'none',
[]: {
[]: SQL,
[]: MONGODB,
[]: CASSANDRA,
[]: COUCHBASE,
[]: NEO4J,
[]: NO_DATABASE,
},
[]: {
// these options + the prod database type
[]: H2_DISK,
[]: H2_MEMORY,
[]: MYSQL,
[]: MARIADB,
[]: POSTGRESQL,
[]: ORACLE,
[]: MSSQL,
},
[]: 'DTO',
[]: true,
[]: false,
[]: true,
[]: '',
[]: false,
[]: true,
[]: false,
[]: 'jhi',
[]: '',
[]: '',
[]: [],
[]: false,
[]: [],
[]: {
npm: 'npm',
},
[]: 'com.mycompany.myapp',
[]: {
[]: MYSQL,
[]: MARIADB,
[]: POSTGRESQL,
[]: ORACLE,
[]: MSSQL,
[]: NO_DATABASE,
},
[]: false,
[]: '',
[]: {
[]: ELASTICSEARCH,
[]: COUCHBASE_SEARCH_ENGINE,
[]: NO_SEARCH_ENGINE,
},
[]: 8080,
[]: {
[]: EUREKA,
[]: CONSUL,
[]: NO_SERVICE_DISCOVERY,
},
[]: false,
[]: false,
[]: false,
[]: false,
[]: false,
[]: {
[]: CYPRESS,
[]: CUCUMBER,
[]: GATLING,
},
[]: {
[]: SPRING_WEBSOCKET,
no: NO_WEBSOCKET,
},
[]: true,
[]: false,
[]: '',
[]: true,
[]: '9090',
[]: true,
};
export const jhipsterOptionTypes = {
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.LIST },
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.INTEGER },
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.BOOLEAN },
[]: { type: ApplicationOptionTypes.BOOLEAN },
[]: { type: ApplicationOptionTypes.BOOLEAN },
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.BOOLEAN },
[]: { type: ApplicationOptionTypes.INTEGER },
[]: { type: ApplicationOptionTypes.BOOLEAN },
[]: { type: ApplicationOptionTypes.BOOLEAN },
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.LIST },
[]: { type: ApplicationOptionTypes.BOOLEAN },
[]: { type: ApplicationOptionTypes.LIST },
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.BOOLEAN },
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.INTEGER },
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.BOOLEAN },
[]: { type: ApplicationOptionTypes.BOOLEAN },
[]: { type: ApplicationOptionTypes.BOOLEAN },
[]: { type: ApplicationOptionTypes.BOOLEAN },
[]: { type: ApplicationOptionTypes.BOOLEAN },
[]: { type: ApplicationOptionTypes.LIST },
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.BOOLEAN },
[]: { type: ApplicationOptionTypes.BOOLEAN },
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.BOOLEAN },
[]: { type: ApplicationOptionTypes.STRING },
[]: { type: ApplicationOptionTypes.BOOLEAN },
};
export const jhipsterQuotedOptionNames = [
optionNames.JHIPSTER_VERSION,
optionNames.REMEMBER_ME_KEY,
optionNames.JWT_SECRET_KEY,
optionNames.GRADLE_DEVELOCITY_HOST,
];
export const builtInJDLApplicationConfig = {
optionsTypes: jhipsterOptionTypes,
// Don't validate built-in options.
optionsValues: {},
quotedOptionNames: jhipsterQuotedOptionNames,
validatorConfig: builtInConfigPropsValidations,
tokenConfigs: [],
};
export { optionNames as OptionNames };
export default {
OptionNames: optionNames,
OptionValues: jhipsterOptionValues,
QuotedOptionNames: jhipsterQuotedOptionNames,
};