diff options
author | 2025-05-06 17:50:36 +0200 | |
---|---|---|
committer | 2025-05-06 17:50:36 +0200 | |
commit | d4547bafef559b4f9ecd6e407d531aa51c46f7be (patch) | |
tree | 566d38989d2be49b283c80111dc160c49f4df274 | |
parent | 63d60c2e5e25fc574dd7392344c32edca5351da4 (diff) | |
download | astro-d4547bafef559b4f9ecd6e407d531aa51c46f7be.tar.gz astro-d4547bafef559b4f9ecd6e407d531aa51c46f7be.tar.zst astro-d4547bafef559b4f9ecd6e407d531aa51c46f7be.zip |
feat(fonts): warn when no data (#13756)
-rw-r--r-- | .changeset/lazy-ducks-fix.md | 5 | ||||
-rw-r--r-- | packages/astro/src/assets/fonts/orchestrate.ts | 11 | ||||
-rw-r--r-- | packages/astro/src/assets/fonts/vite-plugin-fonts.ts | 1 |
3 files changed, 17 insertions, 0 deletions
diff --git a/.changeset/lazy-ducks-fix.md b/.changeset/lazy-ducks-fix.md new file mode 100644 index 000000000..36b19eb6f --- /dev/null +++ b/.changeset/lazy-ducks-fix.md @@ -0,0 +1,5 @@ +--- +'astro': patch +--- + +Adds a terminal warning when a remote provider returns no data for a family when using the experimental fonts API diff --git a/packages/astro/src/assets/fonts/orchestrate.ts b/packages/astro/src/assets/fonts/orchestrate.ts index 5e476712b..081b8a991 100644 --- a/packages/astro/src/assets/fonts/orchestrate.ts +++ b/packages/astro/src/assets/fonts/orchestrate.ts @@ -25,6 +25,8 @@ import type { PreloadData, } from './types.js'; import { pickFontFaceProperty, unifontFontFaceDataToProperties } from './utils.js'; +import { bold } from 'kleur/colors'; +import type { Logger } from '../../core/logger/core.js'; /** * Manages how fonts are resolved: @@ -54,6 +56,7 @@ export async function orchestrate({ systemFallbacksProvider, fontMetricsResolver, fontTypeExtractor, + logger, createUrlProxy, defaults, }: { @@ -66,6 +69,8 @@ export async function orchestrate({ systemFallbacksProvider: SystemFallbacksProvider; fontMetricsResolver: FontMetricsResolver; fontTypeExtractor: FontTypeExtractor; + // TODO: follow this implementation: https://github.com/withastro/astro/pull/13756/commits/e30ac2b7082a3eed36225da6e88449890cbcbe6b + logger: Logger; createUrlProxy: (params: CreateUrlProxyParams) => UrlProxy; defaults: Defaults; }): Promise<{ @@ -163,6 +168,12 @@ export async function orchestrate({ // from families (inside extractUnifontProviders). [family.provider.name!], ); + if (result.fonts.length === 0) { + logger.warn( + 'assets', + `No data found for font family ${bold(family.name)}. Review your configuration`, + ); + } // The data returned by the remote provider contains original URLs. We proxy them. fonts = normalizeRemoteFontFaces({ fonts: result.fonts, urlProxy }); } diff --git a/packages/astro/src/assets/fonts/vite-plugin-fonts.ts b/packages/astro/src/assets/fonts/vite-plugin-fonts.ts index a7a404815..6209d8880 100644 --- a/packages/astro/src/assets/fonts/vite-plugin-fonts.ts +++ b/packages/astro/src/assets/fonts/vite-plugin-fonts.ts @@ -143,6 +143,7 @@ export function fontsPlugin({ settings, sync, logger }: Options): Plugin { systemFallbacksProvider, fontMetricsResolver, fontTypeExtractor, + logger, createUrlProxy: ({ local, ...params }) => { const dataCollector = createDataCollector(params); const contentResolver = local |