astro
Version:
Astro is a modern site builder with web best practices, performance, and DX front-of-mind.
45 lines (44 loc) • 1.99 kB
TypeScript
import type { Logger } from '../../core/logger/core.js';
import type { CssRenderer, FontFileReader, FontMetricsResolver, FontResolver, FontTypeExtractor, Hasher, LocalProviderUrlResolver, RemoteFontProviderResolver, StringMatcher, SystemFallbacksProvider, UrlProxy } from './definitions.js';
import type { ConsumableMap, CreateUrlProxyParams, Defaults, FontFamily, FontFileDataMap, InternalConsumableMap, ResolvedFontFamily } from './types.js';
/**
* Manages how fonts are resolved:
*
* - families are resolved
* - unifont providers are extracted from families
* - unifont is initialized
*
* For each family:
* - We create a URL proxy
* - We resolve the font and normalize the result
*
* For each resolved font:
* - We generate the CSS font face
* - We generate optimized fallbacks if applicable
* - We generate CSS variables
*
* Once that's done, the collected data is returned
*/
export declare function orchestrate({ families, hasher, remoteFontProviderResolver, localProviderUrlResolver, cssRenderer, systemFallbacksProvider, fontMetricsResolver, fontTypeExtractor, fontFileReader, logger, createUrlProxy, defaults, bold, stringMatcher, createFontResolver, }: {
families: Array<FontFamily>;
hasher: Hasher;
remoteFontProviderResolver: RemoteFontProviderResolver;
localProviderUrlResolver: LocalProviderUrlResolver;
cssRenderer: CssRenderer;
systemFallbacksProvider: SystemFallbacksProvider;
fontMetricsResolver: FontMetricsResolver;
fontTypeExtractor: FontTypeExtractor;
fontFileReader: FontFileReader;
logger: Logger;
createUrlProxy: (params: CreateUrlProxyParams) => UrlProxy;
defaults: Defaults;
bold: (input: string) => string;
stringMatcher: StringMatcher;
createFontResolver: (params: {
families: Array<ResolvedFontFamily>;
}) => Promise<FontResolver>;
}): Promise<{
fontFileDataMap: FontFileDataMap;
internalConsumableMap: InternalConsumableMap;
consumableMap: ConsumableMap;
}>;