Home / Function/ run() — astro Function Reference

run() — astro Function Reference

Architecture documentation for the run() function in e2e.test.js from the astro codebase.

Entity Profile

Dependency Diagram

graph TD
  ead9f2ea_90eb_3593_45bc_8652f6ca9958["run()"]
  c2cbdc08_917f_15ae_0b84_48daf0cce747["e2e.test.js"]
  ead9f2ea_90eb_3593_45bc_8652f6ca9958 -->|defined in| c2cbdc08_917f_15ae_0b84_48daf0cce747
  style ead9f2ea_90eb_3593_45bc_8652f6ca9958 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/astro/test/units/assets/fonts/e2e.test.js lines 36–119

async function run({ fonts: _fonts }) {
	const hasher = await XxhashHasher.create();
	const resolvedFamilies = _fonts.map((family) => resolveFamily({ family, hasher }));
	const defaults = DEFAULTS;
	const { bold } = colors;
	const logger = new Logger({
		level: 'silent',
		dest: nodeLogDestination,
	});
	const stringMatcher = new LevenshteinStringMatcher();
	const base = new URL('./data/cache/', import.meta.url);
	// Clear cache
	await rm(base, { recursive: true, force: true });
	const storage = new UnstorageFsStorage({ base });
	const root = new URL('./data/fonts/', import.meta.url);
	const contentResolver = new FsFontFileContentResolver({
		readFileSync: (path) => readFileSync(path, 'utf-8'),
	});
	const fontFileIdGenerator = new DevFontFileIdGenerator({ contentResolver, hasher });
	const fontTypeExtractor = new NodeFontTypeExtractor();
	const urlResolver = new DevUrlResolver({ base: '/', searchParams: new URLSearchParams() });
	const cssRenderer = new MinifiableCssRenderer({ minify: true });
	const fontFetcher = new CachedFontFetcher({ fetch, readFile, storage });
	const fontMetricsResolver = new CapsizeFontMetricsResolver({
		cssRenderer,
		fontFetcher,
	});
	const systemFallbacksProvider = new RealSystemFallbacksProvider();

	const { fontFamilyAssets, fontFileById } = await computeFontFamiliesAssets({
		resolvedFamilies,
		defaults,
		bold,
		logger,
		stringMatcher,
		fontResolver: await UnifontFontResolver.create({
			families: resolvedFamilies,
			hasher,
			storage,
			root,
		}),
		getOrCreateFontFamilyAssets: ({ family, fontFamilyAssetsByUniqueKey }) =>
			getOrCreateFontFamilyAssets({
				family,
				fontFamilyAssetsByUniqueKey,
				bold,
				logger,
			}),
		filterAndTransformFontFaces: ({ family, fonts }) =>
			filterAndTransformFontFaces({
				family,
				fonts,
				fontFileIdGenerator,
				fontTypeExtractor,
				urlResolver,
			}),
		collectFontAssetsFromFaces: ({ collectedFontsIds, family, fontFilesIds, fonts }) =>
			collectFontAssetsFromFaces({
				collectedFontsIds,
				family,
				fontFilesIds,
				fonts,
				fontFileIdGenerator,
				hasher,
				defaults,
			}),
	});
	const fontDataByCssVariable = collectFontData(fontFamilyAssets);
	const componentDataByCssVariable = await collectComponentData({
		cssRenderer,
		defaults,
		fontFamilyAssets,
		optimizeFallbacks: ({ collectedFonts, fallbacks, family }) =>
			optimizeFallbacks({
				collectedFonts,
				fallbacks,
				family,
				fontMetricsResolver,
				systemFallbacksProvider,
			}),
	});

Subdomains

Frequently Asked Questions

What does run() do?
run() is a function in the astro codebase, defined in packages/astro/test/units/assets/fonts/e2e.test.js.
Where is run() defined?
run() is defined in packages/astro/test/units/assets/fonts/e2e.test.js at line 36.

Analyze Your Own Codebase

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

Try Supermodel Free