Skip to content

Commit 274aed0

Browse files
authored
policies: skip languages which do not exist (microsoft#154395)
1 parent 8885bda commit 274aed0

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

build/lib/policies.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -452,8 +452,12 @@ async function getTranslations() {
452452
}
453453
const version = await getLatestStableVersion(updateUrl);
454454
const languageIds = Object.keys(Languages);
455-
return await Promise.all(languageIds.map(languageId => getNLS(resourceUrlTemplate, languageId, version)
455+
const result = await Promise.allSettled(languageIds.map(languageId => getNLS(resourceUrlTemplate, languageId, version)
456+
.catch(err => { console.warn(`Missing translation: ${languageId}@${version}`); return Promise.reject(err); })
456457
.then(languageTranslations => ({ languageId, languageTranslations }))));
458+
return result
459+
.filter((r) => r.status === 'fulfilled')
460+
.map(r => r.value);
457461
}
458462
async function main() {
459463
const [policies, translations] = await Promise.all([parsePolicies(), getTranslations()]);

build/lib/policies.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -585,7 +585,8 @@ const Languages = {
585585
};
586586

587587
type LanguageTranslations = { [moduleName: string]: { [nlsKey: string]: string } };
588-
type Translations = { languageId: string; languageTranslations: LanguageTranslations }[];
588+
type Translation = { languageId: string; languageTranslations: LanguageTranslations };
589+
type Translations = Translation[];
589590

590591
async function getLatestStableVersion(updateUrl: string) {
591592
const res = await fetch(`${updateUrl}/api/update/darwin/stable/latest`);
@@ -643,10 +644,15 @@ async function getTranslations(): Promise<Translations> {
643644
const version = await getLatestStableVersion(updateUrl);
644645
const languageIds = Object.keys(Languages);
645646

646-
return await Promise.all(languageIds.map(
647+
const result = await Promise.allSettled(languageIds.map(
647648
languageId => getNLS(resourceUrlTemplate, languageId, version)
649+
.catch(err => { console.warn(`Missing translation: ${languageId}@${version}`); return Promise.reject(err); })
648650
.then(languageTranslations => ({ languageId, languageTranslations }))
649651
));
652+
653+
return result
654+
.filter((r): r is PromiseFulfilledResult<Translation> => r.status === 'fulfilled')
655+
.map(r => r.value);
650656
}
651657

652658
async function main() {

0 commit comments

Comments
 (0)