collectComponentData() — astro Function Reference
Architecture documentation for the collectComponentData() function in collect-component-data.ts from the astro codebase.
Entity Profile
Dependency Diagram
graph TD dca80f83_1487_e611_c510_1f2b86e25ed0["collectComponentData()"] 428cf807_7a18_1827_fa6f_96a3b782d4b1["collect-component-data.ts"] dca80f83_1487_e611_c510_1f2b86e25ed0 -->|defined in| 428cf807_7a18_1827_fa6f_96a3b782d4b1 style dca80f83_1487_e611_c510_1f2b86e25ed0 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/astro/src/assets/fonts/core/collect-component-data.ts lines 11–72
export async function collectComponentData({
fontFamilyAssets,
cssRenderer,
defaults,
optimizeFallbacks,
}: {
fontFamilyAssets: Array<FontFamilyAssets>;
cssRenderer: CssRenderer;
defaults: Pick<Defaults, 'fallbacks' | 'optimizedFallbacks'>;
optimizeFallbacks: Collaborator<
typeof _optimizeFallbacks,
'family' | 'fallbacks' | 'collectedFonts'
>;
}) {
const componentDataByCssVariable: ComponentDataByCssVariable = new Map();
for (const { family, fonts, collectedFontsForMetricsByUniqueKey, preloads } of fontFamilyAssets) {
let css = '';
for (const data of fonts) {
css += cssRenderer.generateFontFace(
family.uniqueName,
unifontFontFaceDataToProperties({
src: data.src,
weight: data.weight,
style: data.style,
// User settings override the generated font settings
display: data.display ?? family.display,
unicodeRange: data.unicodeRange ?? family.unicodeRange,
stretch: data.stretch ?? family.stretch,
featureSettings: data.featureSettings ?? family.featureSettings,
variationSettings: data.variationSettings ?? family.variationSettings,
}),
);
}
const fallbacks = family.fallbacks ?? defaults.fallbacks;
const cssVarValues = [family.uniqueName];
const optimizeFallbacksResult =
(family.optimizedFallbacks ?? defaults.optimizedFallbacks)
? await optimizeFallbacks({
family,
fallbacks,
collectedFonts: Array.from(collectedFontsForMetricsByUniqueKey.values()),
})
: null;
if (optimizeFallbacksResult) {
css += optimizeFallbacksResult.css;
cssVarValues.push(...optimizeFallbacksResult.fallbacks);
} else {
// If there are no optimized fallbacks, we pass the provided fallbacks as is.
cssVarValues.push(...fallbacks);
}
css += cssRenderer.generateCssVariable(family.cssVariable, cssVarValues);
componentDataByCssVariable.set(family.cssVariable, { preloads, css });
}
return componentDataByCssVariable;
}
Domain
Subdomains
Source
Frequently Asked Questions
What does collectComponentData() do?
collectComponentData() is a function in the astro codebase, defined in packages/astro/src/assets/fonts/core/collect-component-data.ts.
Where is collectComponentData() defined?
collectComponentData() is defined in packages/astro/src/assets/fonts/core/collect-component-data.ts at line 11.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free