Home / File/ get-or-create-font-family-assets.ts — astro Source File

get-or-create-font-family-assets.ts — astro Source File

Architecture documentation for get-or-create-font-family-assets.ts, a typescript file in the astro codebase. 2 imports, 0 dependents.

File typescript CoreAstro RenderingEngine 2 imports 1 functions

Entity Profile

Dependency Diagram

graph LR
  cc85c4b9_2e58_08be_c10e_b5883c5cd62c["get-or-create-font-family-assets.ts"]
  d3861967_b647_84d2_ff48_15013353bd56["../core/logger/core.js"]
  cc85c4b9_2e58_08be_c10e_b5883c5cd62c --> d3861967_b647_84d2_ff48_15013353bd56
  ea387312_d0a2_bb52_dafc_3872f7307f95["../../src/assets/fonts/types.js"]
  cc85c4b9_2e58_08be_c10e_b5883c5cd62c --> ea387312_d0a2_bb52_dafc_3872f7307f95
  style cc85c4b9_2e58_08be_c10e_b5883c5cd62c fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import type { Logger } from '../../../core/logger/core.js';
import type { FontFamilyAssetsByUniqueKey, ResolvedFontFamily } from '../types.js';

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

Dependencies

  • ../../src/assets/fonts/types.js
  • ../core/logger/core.js

Frequently Asked Questions

What does get-or-create-font-family-assets.ts do?
get-or-create-font-family-assets.ts is a source file in the astro codebase, written in typescript. It belongs to the CoreAstro domain, RenderingEngine subdomain.
What functions are defined in get-or-create-font-family-assets.ts?
get-or-create-font-family-assets.ts defines 1 function(s): getOrCreateFontFamilyAssets.
What does get-or-create-font-family-assets.ts depend on?
get-or-create-font-family-assets.ts imports 2 module(s): ../../src/assets/fonts/types.js, ../core/logger/core.js.
Where is get-or-create-font-family-assets.ts in the architecture?
get-or-create-font-family-assets.ts is located at packages/astro/src/assets/fonts/core/get-or-create-font-family-assets.ts (domain: CoreAstro, subdomain: RenderingEngine, directory: packages/astro/src/assets/fonts/core).

Analyze Your Own Codebase

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

Try Supermodel Free