-
-
Notifications
You must be signed in to change notification settings - Fork 4k
/
application-definition.ts
64 lines (61 loc) · 2.17 KB
/
application-definition.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/**
* Copyright 2013-2024 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 { upperCase, snakeCase } from 'lodash-es';
import { JDLApplicationConfig, JHipsterOptionDefinition } from '../../../jdl/types/types.js';
import databaseMigrationOption from '../options/database-migration.js';
import messageBrokerOption from '../options/message-broker.js';
import { feignClientDefinition, syncUserWithIdpDefinition } from '../options/index.js';
import { jdlRoutesOptions } from '../../spring-cloud/generators/gateway/jdl/jdl-routes-option.js';
const jdlOptions: JHipsterOptionDefinition[] = [
databaseMigrationOption,
messageBrokerOption,
feignClientDefinition,
syncUserWithIdpDefinition,
jdlRoutesOptions,
];
const applicationConfig: JDLApplicationConfig = {
tokenConfigs: jdlOptions.map(option => ({
name: upperCase(snakeCase(option.name)),
pattern: option.name,
})),
validatorConfig: Object.fromEntries(
jdlOptions.map(option => [
upperCase(snakeCase(option.name)),
{
type: option.tokenType,
pattern: option.tokenValuePattern,
msg: `${option.name} property`,
},
]),
),
optionsValues: Object.fromEntries(
jdlOptions
.filter(option => option.knownChoices)
.map(option => [option.name, Object.fromEntries(option.knownChoices!.map(choice => [choice, choice]))]),
),
optionsTypes: Object.fromEntries(
jdlOptions.map(option => [
option.name,
{
type: option.type,
},
]),
),
};
export default applicationConfig;