gen-jhipster
Version:
VHipster - Spring Boot + Angular/React/Vue in one handy generator
84 lines (83 loc) • 3.69 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 { overrideMutateDataProperty, } from "../../lib/utils/object.js";
import { findLanguageForTag } from "./support/languages.js";
export const mutateApplicationLoading = {
__override__: false,
supportedLanguages: () => [],
languages: () => [],
languagesDefinition: () => [],
addLanguageCallbacks: () => [],
languagesToGenerate: () => [],
languagesToGenerateDefinition: () => [],
};
export const mutateApplicationPreparing = {
__override__: false,
enableTranslation: false,
nativeLanguage: 'en',
languages: overrideMutateDataProperty(({ languages, nativeLanguage }) => {
if (languages.length === 0) {
languages.push(nativeLanguage);
}
return languages;
}),
nativeLanguageDefinition: ({ nativeLanguage, supportedLanguages }) => {
const nativeLanguageDefinition = findLanguageForTag(nativeLanguage, supportedLanguages);
if (!nativeLanguageDefinition) {
throw new Error(`Unsupported native language: ${nativeLanguage}`);
}
return nativeLanguageDefinition;
},
languagesDefinition: overrideMutateDataProperty(({ languages, languagesDefinition, supportedLanguages }) => {
languages.forEach(lang => {
if (languagesDefinition.some(def => def.languageTag === lang)) {
return;
}
const languageDefinition = findLanguageForTag(lang, supportedLanguages);
if (!languageDefinition) {
throw new Error(`Unsupported language: ${lang}`);
}
languagesDefinition.push(languageDefinition);
});
return languagesDefinition;
}),
languagesToGenerate: overrideMutateDataProperty(({ commandName, languagesToGenerate, nativeLanguage }) => {
if (languagesToGenerate.length === 0 && commandName !== 'languages') {
if (!nativeLanguage) {
throw new Error('A native language must be defined to generate languages');
}
languagesToGenerate.push(nativeLanguage);
}
return languagesToGenerate;
}),
languagesToGenerateDefinition: overrideMutateDataProperty(({ languagesToGenerate, languagesToGenerateDefinition, supportedLanguages }) => {
languagesToGenerate.forEach(lang => {
if (languagesToGenerateDefinition.some(def => def.languageTag === lang)) {
return;
}
const languageDefinition = findLanguageForTag(lang, supportedLanguages);
if (!languageDefinition) {
throw new Error(`Unsupported language to generate: ${lang}`);
}
languagesToGenerateDefinition.push(languageDefinition);
});
return languagesToGenerateDefinition;
}),
enableI18nRTL: ({ nativeLanguageDefinition, languagesDefinition }) => nativeLanguageDefinition.rtl || languagesDefinition.some(lang => lang.rtl),
};