From 4fc5faf587fe1963ea2fb2a575409e601dce168a Mon Sep 17 00:00:00 2001 From: Florian Lefebvre Date: Fri, 31 Oct 2025 09:49:23 +0100 Subject: [PATCH] fix(fonts): less aggressive filtering --- .changeset/three-apples-roll.md | 5 +++++ .../src/assets/fonts/logic/normalize-remote-font-faces.ts | 2 +- packages/astro/test/units/assets/fonts/logic.test.js | 8 ++++++-- 3 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 .changeset/three-apples-roll.md diff --git a/.changeset/three-apples-roll.md b/.changeset/three-apples-roll.md new file mode 100644 index 000000000000..f24eca38c3c7 --- /dev/null +++ b/.changeset/three-apples-roll.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Fixes a case where the experimental Fonts API would filter available font files too aggressively, which could prevent the download of woff files when using the google provider diff --git a/packages/astro/src/assets/fonts/logic/normalize-remote-font-faces.ts b/packages/astro/src/assets/fonts/logic/normalize-remote-font-faces.ts index 4a94a91c5e8f..818104396ea6 100644 --- a/packages/astro/src/assets/fonts/logic/normalize-remote-font-faces.ts +++ b/packages/astro/src/assets/fonts/logic/normalize-remote-font-faces.ts @@ -14,7 +14,7 @@ export function normalizeRemoteFontFaces({ return ( fonts // Avoid getting too much font files - .filter((font) => (typeof font.meta?.priority === 'number' ? font.meta.priority === 0 : true)) + .filter((font) => (typeof font.meta?.priority === 'number' ? font.meta.priority <= 1 : true)) // Collect URLs .map((font) => { // The index keeps track of encountered URLs. We can't use the index on font.src.map diff --git a/packages/astro/test/units/assets/fonts/logic.test.js b/packages/astro/test/units/assets/fonts/logic.test.js index 41c5d13442eb..903123a977b3 100644 --- a/packages/astro/test/units/assets/fonts/logic.test.js +++ b/packages/astro/test/units/assets/fonts/logic.test.js @@ -368,16 +368,20 @@ describe('fonts logic', () => { src: [], meta: { priority: 0 }, }, - // Will be ignored { src: [], meta: { priority: 1 }, }, + // Will be ignored + { + src: [], + meta: { priority: 2 }, + }, ], urlProxy, fontTypeExtractor: createFontTypeExtractor({ errorHandler: simpleErrorHandler }), }).length, - 4, + 5, ); });