aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Florian Lefebvre <contact@florian-lefebvre.dev> 2025-05-06 17:50:36 +0200
committerGravatar GitHub <noreply@github.com> 2025-05-06 17:50:36 +0200
commitd4547bafef559b4f9ecd6e407d531aa51c46f7be (patch)
tree566d38989d2be49b283c80111dc160c49f4df274
parent63d60c2e5e25fc574dd7392344c32edca5351da4 (diff)
downloadastro-d4547bafef559b4f9ecd6e407d531aa51c46f7be.tar.gz
astro-d4547bafef559b4f9ecd6e407d531aa51c46f7be.tar.zst
astro-d4547bafef559b4f9ecd6e407d531aa51c46f7be.zip
feat(fonts): warn when no data (#13756)
-rw-r--r--.changeset/lazy-ducks-fix.md5
-rw-r--r--packages/astro/src/assets/fonts/orchestrate.ts11
-rw-r--r--packages/astro/src/assets/fonts/vite-plugin-fonts.ts1
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