gen-jhipster
Version:
VHipster - Spring Boot + Angular/React/Vue in one handy generator
101 lines (80 loc) • 3.04 kB
TypeScript
/**
* 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 type { ApplicationAll } from '../../lib/types/application-all.ts';
import type { Config as BaseConfig, Options as BaseOptions } from '../base/types.d.ts';
import type { OptionWithDerivedProperties } from '../base-application/internal/types/application-options.ts';
export type { Source } from '../base/types.ts';
type DeploymentConfig = {
directoryPath: string;
appsFolders: string[];
jwtSecretKey: string;
adminPassword: string;
adminPasswordBase64: string;
dbRandomPassword: string;
deploymentType: string;
serviceDiscoveryType: string;
ingressType: string;
ingressDomain: string;
kubernetesUseDynamicStorage: boolean;
kubernetesStorageClassName: string;
// knative property
generatorType: 'k8s' | 'helm';
istio: boolean;
deploymentApplicationType: 'microservice' | 'monolith';
/** Use APISIX as API Gateway (VHipster) */
apisixGateway?: boolean;
};
export type Config = BaseConfig & DeploymentConfig;
export type { Features } from '../base/types.ts';
export type Options = BaseOptions & DeploymentConfig;
type ServiceDiscoveryApplication = OptionWithDerivedProperties<'serviceDiscoveryType', ['no', 'eureka', 'consul']>;
type MonitoringApplication = OptionWithDerivedProperties<'monitoring', ['no', 'elk', 'prometheus']>;
export type WorkspacesApplication = ServiceDiscoveryApplication &
MonitoringApplication &
ApplicationAll & {
composePort?: number;
targetImageName?: string;
appFolder?: string;
dbPeerCount?: number;
};
export type Deployment = DeploymentConfig & {
appConfigs?: WorkspacesApplication[];
appsYaml?: string[];
clusteredDbApps?: string[];
dockerContainers?: Record<string, string>;
keycloakRedirectUris?: string;
keycloakSecrets?: string[];
usesOauth2?: boolean;
useKafka?: boolean;
usePulsar?: boolean;
useMemcached?: boolean;
useRedis?: boolean;
includesApplicationTypeGateway?: boolean;
authenticationType?: string;
serviceDiscoveryTypeAny?: boolean;
serviceDiscoveryTypeConsul?: boolean;
serviceDiscoveryTypeEureka?: boolean;
entryPort?: number;
monitoring?: string;
monitoringElk?: boolean;
monitoringPrometheus?: boolean;
serviceDiscoveryAny?: boolean;
serviceDiscoveryConsul?: boolean;
serviceDiscoveryEureka?: boolean;
};