Skip to content

Commit 1dcff01

Browse files
clydinalan-agius4
authored andcommitted
refactor(@angular-devkit/build-angular): normalize i18n options for application builder
The esbuild-based application builder will now access the project level i18n configuration as well as the builder `localize`, `duplicateTranslationBehavior`, and `missingTranslationBehavior` options to construct a full, normalized i18n option structure. These options are not yet used by the builder but they are now available to access as future work incrementally adds i18n support.
1 parent 5e4b532 commit 1dcff01

File tree

1 file changed

+10
-1
lines changed
  • packages/angular_devkit/build_angular/src/builders/application

1 file changed

+10
-1
lines changed

packages/angular_devkit/build_angular/src/builders/application/options.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,12 @@ import {
1414
normalizeGlobalStyles,
1515
} from '../../tools/webpack/utils/helpers';
1616
import { normalizeAssetPatterns, normalizeOptimization, normalizeSourceMaps } from '../../utils';
17+
import { I18nOptions, createI18nOptions } from '../../utils/i18n-options';
1718
import { normalizeCacheOptions } from '../../utils/normalize-cache';
1819
import { generateEntryPoints } from '../../utils/package-chunk-sort';
1920
import { findTailwindConfigurationFile } from '../../utils/tailwind';
2021
import { getIndexInputFile, getIndexOutputFile } from '../../utils/webpack-browser-config';
21-
import { Schema as ApplicationBuilderOptions, OutputHashing } from './schema';
22+
import { Schema as ApplicationBuilderOptions, I18NTranslation, OutputHashing } from './schema';
2223

2324
export type NormalizedApplicationBuildOptions = Awaited<ReturnType<typeof normalizeOptions>>;
2425

@@ -80,6 +81,13 @@ export async function normalizeOptions(
8081
const cacheOptions = normalizeCacheOptions(projectMetadata, workspaceRoot);
8182
cacheOptions.path = path.join(cacheOptions.path, projectName);
8283

84+
const i18nOptions: I18nOptions & {
85+
duplicateTranslationBehavior?: I18NTranslation;
86+
missingTranslationBehavior?: I18NTranslation;
87+
} = createI18nOptions(projectMetadata, options.localize);
88+
i18nOptions.duplicateTranslationBehavior = options.i18nDuplicateTranslation;
89+
i18nOptions.missingTranslationBehavior = options.i18nMissingTranslation;
90+
8391
const entryPoints = normalizeEntryPoints(workspaceRoot, options.browser, options.entryPoints);
8492
const tsconfig = path.join(workspaceRoot, options.tsConfig);
8593
const outputPath = normalizeDirectoryPath(path.join(workspaceRoot, options.outputPath));
@@ -272,6 +280,7 @@ export async function normalizeOptions(
272280
typeof serviceWorker === 'string' ? path.join(workspaceRoot, serviceWorker) : undefined,
273281
indexHtmlOptions,
274282
tailwindConfiguration,
283+
i18nOptions,
275284
};
276285
}
277286

0 commit comments

Comments
 (0)