UNPKG

bixlabs-generator-jhipster

Version:

Spring Boot + Angular/React/Vue in one handy generator

125 lines (119 loc) 4.63 kB
/** * Copyright 2013-2021 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 { Lexer } = require('chevrotain'); const { createTokenFromConfig } = require('./token-creator'); const { KEYWORD, sharedCategoryTokens: { UNARY_OPTION }, } = require('./shared-tokens'); const { OptionNames } = require('../../jhipster/application-options'); const { BASE_NAME, BLUEPRINTS, BLUEPRINT, EMBEDDABLE_LAUNCH_SCRIPT, CREATION_TIMESTAMP, OTHER_MODULES, PACKAGE_NAME, AUTHENTICATION_TYPE, CACHE_PROVIDER, ENABLE_HIBERNATE_CACHE, WEBSOCKET, DATABASE_TYPE, DEV_DATABASE_TYPE, PROD_DATABASE_TYPE, BUILD_TOOL, SEARCH_ENGINE, ENABLE_TRANSLATION, APPLICATION_TYPE, TEST_FRAMEWORKS, LANGUAGES, SERVER_PORT, JHI_PREFIX, JWT_SECRET_KEY, JHIPSTER_VERSION, MESSAGE_BROKER, CLIENT_PACKAGE_MANAGER, CLIENT_FRAMEWORK, CLIENT_THEME_VARIANT, CLIENT_THEME, WITH_ADMIN_UI, NATIVE_LANGUAGE, SKIP_USER_MANAGEMENT, ENABLE_SWAGGER_CODEGEN, REACTIVE, ENTITY_SUFFIX, DTO_SUFFIX, SKIP_CLIENT, SKIP_SERVER, } = OptionNames; const applicationConfigCategoryToken = createTokenFromConfig({ name: 'CONFIG_KEY', pattern: Lexer.NA }); const applicationConfigTokens = [ { name: 'BASE_NAME', pattern: BASE_NAME }, { name: 'BLUEPRINTS', pattern: BLUEPRINTS }, { name: 'BLUEPRINT', pattern: BLUEPRINT }, { name: 'EMBEDDABLE_LAUNCH_SCRIPT', pattern: EMBEDDABLE_LAUNCH_SCRIPT }, { name: 'CREATION_TIMESTAMP', pattern: CREATION_TIMESTAMP }, { name: 'OTHER_MODULES', pattern: OTHER_MODULES }, { name: 'PACKAGE_NAME', pattern: PACKAGE_NAME }, { name: 'AUTHENTICATION_TYPE', pattern: AUTHENTICATION_TYPE }, { name: 'CACHE_PROVIDER', pattern: CACHE_PROVIDER }, { name: 'ENABLE_HIBERNATE_CACHE', pattern: ENABLE_HIBERNATE_CACHE }, { name: 'WEBSOCKET', pattern: WEBSOCKET }, { name: 'DATABASE_TYPE', pattern: DATABASE_TYPE }, { name: 'DEV_DATABASE_TYPE', pattern: DEV_DATABASE_TYPE }, { name: 'PROD_DATABASE_TYPE', pattern: PROD_DATABASE_TYPE }, { name: 'BUILD_TOOL', pattern: BUILD_TOOL }, { name: 'SEARCH_ENGINE', pattern: SEARCH_ENGINE }, { name: 'ENABLE_TRANSLATION', pattern: ENABLE_TRANSLATION }, { name: 'APPLICATION_TYPE', pattern: APPLICATION_TYPE }, { name: 'TEST_FRAMEWORKS', pattern: TEST_FRAMEWORKS }, { name: 'LANGUAGES', pattern: LANGUAGES }, { name: 'SERVER_PORT', pattern: SERVER_PORT }, { name: 'JHI_PREFIX', pattern: JHI_PREFIX }, { name: 'JWT_SECRET_KEY', pattern: JWT_SECRET_KEY }, { name: 'JHIPSTER_VERSION', pattern: JHIPSTER_VERSION }, { name: 'MESSAGE_BROKER', pattern: MESSAGE_BROKER }, { name: 'CLIENT_PACKAGE_MANAGER', pattern: CLIENT_PACKAGE_MANAGER }, { name: 'CLIENT_FRAMEWORK', pattern: CLIENT_FRAMEWORK }, { name: 'CLIENT_THEME_VARIANT', pattern: CLIENT_THEME_VARIANT }, { name: 'CLIENT_THEME', pattern: CLIENT_THEME }, { name: 'WITH_ADMIN_UI', pattern: WITH_ADMIN_UI }, { name: 'NATIVE_LANGUAGE', pattern: NATIVE_LANGUAGE }, { name: 'FRONT_END_BUILDER', pattern: 'frontendBuilder' }, // TODO always valid? { name: 'SKIP_USER_MANAGEMENT', pattern: SKIP_USER_MANAGEMENT }, { name: 'ENABLE_SWAGGER_CODEGEN', pattern: ENABLE_SWAGGER_CODEGEN }, { name: 'REACTIVE', pattern: REACTIVE }, { name: 'ENTITY_SUFFIX', pattern: ENTITY_SUFFIX }, { name: 'DTO_SUFFIX', pattern: DTO_SUFFIX }, { name: 'SKIP_CLIENT', pattern: SKIP_CLIENT }, { name: 'SKIP_SERVER', pattern: SKIP_SERVER }, ].map(tokenConfig => { tokenConfig.categories = [applicationConfigCategoryToken]; // This is actually needed as the skipClient & skipServer options are both entity & app options... if (['SKIP_CLIENT', 'SKIP_SERVER'].includes(tokenConfig.name)) { tokenConfig.categories.push(KEYWORD); tokenConfig.categories.push(UNARY_OPTION); } return createTokenFromConfig(tokenConfig); }); module.exports = { categoryToken: applicationConfigCategoryToken, tokens: [applicationConfigCategoryToken, ...applicationConfigTokens], };