Home / Function/ getOrCreateFontFamilyAssets() — astro Function Reference

getOrCreateFontFamilyAssets() — astro Function Reference

Architecture documentation for the getOrCreateFontFamilyAssets() function in get-or-create-font-family-assets.ts from the astro codebase.

Entity Profile

Dependency Diagram

graph TD
  1f0376bb_5d21_b95f_d025_0a6828e87cc1["getOrCreateFontFamilyAssets()"]
  cc85c4b9_2e58_08be_c10e_b5883c5cd62c["get-or-create-font-family-assets.ts"]
  1f0376bb_5d21_b95f_d025_0a6828e87cc1 -->|defined in| cc85c4b9_2e58_08be_c10e_b5883c5cd62c
  style 1f0376bb_5d21_b95f_d025_0a6828e87cc1 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/astro/src/assets/fonts/core/get-or-create-font-family-assets.ts lines 4–41

export function getOrCreateFontFamilyAssets({
	fontFamilyAssetsByUniqueKey,
	logger,
	bold,
	family,
}: {
	fontFamilyAssetsByUniqueKey: FontFamilyAssetsByUniqueKey;
	logger: Logger;
	bold: (input: string) => string;
	family: ResolvedFontFamily;
}) {
	const key = `${family.cssVariable}:${family.name}:${family.provider.name}`;
	let fontAssets = fontFamilyAssetsByUniqueKey.get(key);
	if (!fontAssets) {
		if (
			Array.from(fontFamilyAssetsByUniqueKey.keys()).find((k) =>
				k.startsWith(`${family.cssVariable}:`),
			)
		) {
			logger.warn(
				'assets',
				`Several font families have been registered for the ${bold(family.cssVariable)} cssVariable but they do not share the same name and provider.`,
			);
			logger.warn(
				'assets',
				'These families will not be merged together. The last occurrence will override previous families for this cssVariable. Review your Astro configuration.',
			);
		}
		fontAssets = {
			family,
			fonts: [],
			collectedFontsForMetricsByUniqueKey: new Map(),
			preloads: [],
		};
		fontFamilyAssetsByUniqueKey.set(key, fontAssets);
	}
	return fontAssets;
}

Domain

Subdomains

Frequently Asked Questions

What does getOrCreateFontFamilyAssets() do?
getOrCreateFontFamilyAssets() is a function in the astro codebase, defined in packages/astro/src/assets/fonts/core/get-or-create-font-family-assets.ts.
Where is getOrCreateFontFamilyAssets() defined?
getOrCreateFontFamilyAssets() is defined in packages/astro/src/assets/fonts/core/get-or-create-font-family-assets.ts at line 4.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free