Home / File/ vite-plugin-fonts.ts — astro Source File

vite-plugin-fonts.ts — astro Source File

Architecture documentation for vite-plugin-fonts.ts, a typescript file in the astro codebase. 39 imports, 0 dependents.

File typescript CoreAstro RenderingEngine 39 imports 1 functions

Entity Profile

Dependency Diagram

graph LR
  2ba9f2da_4496_f3c2_ba41_537f99208811["vite-plugin-fonts.ts"]
  6fe92471_5113_a0cf_c232_c87e5712a05f["../core/csp/common.js"]
  2ba9f2da_4496_f3c2_ba41_537f99208811 --> 6fe92471_5113_a0cf_c232_c87e5712a05f
  dd2fe7bd_2244_3ff4_38ec_5e07763d1492["../core/encryption.js"]
  2ba9f2da_4496_f3c2_ba41_537f99208811 --> dd2fe7bd_2244_3ff4_38ec_5e07763d1492
  5c1f16d1_f599_2e31_eb17_4c8b8189d4ed["../errors/dev/utils.js"]
  2ba9f2da_4496_f3c2_ba41_537f99208811 --> 5c1f16d1_f599_2e31_eb17_4c8b8189d4ed
  ef8a1e3f_e350_75a6_b92d_62a8566d8db9["../core/errors/index.js"]
  2ba9f2da_4496_f3c2_ba41_537f99208811 --> ef8a1e3f_e350_75a6_b92d_62a8566d8db9
  d3861967_b647_84d2_ff48_15013353bd56["../core/logger/core.js"]
  2ba9f2da_4496_f3c2_ba41_537f99208811 --> d3861967_b647_84d2_ff48_15013353bd56
  8db17b08_b9e5_db7e_cd39_46be76c6d5ad["../core/messages.js"]
  2ba9f2da_4496_f3c2_ba41_537f99208811 --> 8db17b08_b9e5_db7e_cd39_46be76c6d5ad
  7e4494c0_5563_4329_1bff_a84be66e1bc2["../core/path.js"]
  2ba9f2da_4496_f3c2_ba41_537f99208811 --> 7e4494c0_5563_4329_1bff_a84be66e1bc2
  8651c206_171a_4a48_b04b_b47f5573b5da["../prerender/utils.js"]
  2ba9f2da_4496_f3c2_ba41_537f99208811 --> 8651c206_171a_4a48_b04b_b47f5573b5da
  e9b74c5a_8d34_34a7_e196_5e41b87214aa["../types/astro.js"]
  2ba9f2da_4496_f3c2_ba41_537f99208811 --> e9b74c5a_8d34_34a7_e196_5e41b87214aa
  a2fc192c_cdf9_df62_81bf_9c18a80b317e["./fonts/constants.js"]
  2ba9f2da_4496_f3c2_ba41_537f99208811 --> a2fc192c_cdf9_df62_81bf_9c18a80b317e
  6ac49b87_ab30_fb6c_073c_5d6a0ce1b7e7["./core/collect-component-data.js"]
  2ba9f2da_4496_f3c2_ba41_537f99208811 --> 6ac49b87_ab30_fb6c_073c_5d6a0ce1b7e7
  28685c73_a9d0_3d9e_e6a1_3d0209745c56["./core/collect-font-assets-from-faces.js"]
  2ba9f2da_4496_f3c2_ba41_537f99208811 --> 28685c73_a9d0_3d9e_e6a1_3d0209745c56
  dbabe631_501d_036d_5f52_6bdef790c6ae["./core/collect-font-data.js"]
  2ba9f2da_4496_f3c2_ba41_537f99208811 --> dbabe631_501d_036d_5f52_6bdef790c6ae
  3de03553_bf93_5052_c7dc_ac72f15d979d["./core/compute-font-families-assets.js"]
  2ba9f2da_4496_f3c2_ba41_537f99208811 --> 3de03553_bf93_5052_c7dc_ac72f15d979d
  style 2ba9f2da_4496_f3c2_ba41_537f99208811 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { mkdirSync, readFileSync, writeFileSync } from 'node:fs';
import { readFile } from 'node:fs/promises';
import { isAbsolute } from 'node:path';
import colors from 'piccolore';
import type { Plugin } from 'vite';
import { getAlgorithm, shouldTrackCspHashes } from '../../core/csp/common.js';
import { generateCspDigest } from '../../core/encryption.js';
import { collectErrorMetadata } from '../../core/errors/dev/utils.js';
import { AstroError, AstroErrorData, isAstroError } from '../../core/errors/index.js';
import type { Logger } from '../../core/logger/core.js';
import { formatErrorMessage } from '../../core/messages.js';
import { appendForwardSlash, joinPaths, prependForwardSlash } from '../../core/path.js';
import { getClientOutputDirectory } from '../../prerender/utils.js';
import type { AstroSettings } from '../../types/astro.js';
import {
	ASSETS_DIR,
	CACHE_DIR,
	DEFAULTS,
	RESOLVED_RUNTIME_VIRTUAL_MODULE_ID,
	RESOLVED_VIRTUAL_MODULE_ID,
	RUNTIME_VIRTUAL_MODULE_ID,
	VIRTUAL_MODULE_ID,
} from './constants.js';
import { collectComponentData } from './core/collect-component-data.js';
import { collectFontAssetsFromFaces } from './core/collect-font-assets-from-faces.js';
import { collectFontData } from './core/collect-font-data.js';
import { computeFontFamiliesAssets } from './core/compute-font-families-assets.js';
import { filterAndTransformFontFaces } from './core/filter-and-transform-font-faces.js';
import { getOrCreateFontFamilyAssets } from './core/get-or-create-font-family-assets.js';
import { optimizeFallbacks } from './core/optimize-fallbacks.js';
import { resolveFamily } from './core/resolve-family.js';
import type { FontFetcher, FontTypeExtractor } from './definitions.js';
import { BuildFontFileIdGenerator } from './infra/build-font-file-id-generator.js';
import { BuildUrlResolver } from './infra/build-url-resolver.js';
import { CachedFontFetcher } from './infra/cached-font-fetcher.js';
import { CapsizeFontMetricsResolver } from './infra/capsize-font-metrics-resolver.js';
import { DevFontFileIdGenerator } from './infra/dev-font-file-id-generator.js';
import { DevUrlResolver } from './infra/dev-url-resolver.js';
import { FsFontFileContentResolver } from './infra/fs-font-file-content-resolver.js';
import { LevenshteinStringMatcher } from './infra/levenshtein-string-matcher.js';
import { MinifiableCssRenderer } from './infra/minifiable-css-renderer.js';
import { NodeFontTypeExtractor } from './infra/node-font-type-extractor.js';
import { RealSystemFallbacksProvider } from './infra/system-fallbacks-provider.js';
import { UnifontFontResolver } from './infra/unifont-font-resolver.js';
import { UnstorageFsStorage } from './infra/unstorage-fs-storage.js';
import { XxhashHasher } from './infra/xxhash-hasher.js';
import type {
	ComponentDataByCssVariable,
	FontDataByCssVariable,
	FontFamily,
	FontFileById,
} from './types.js';

interface Options {
	settings: AstroSettings;
	sync: boolean;
	logger: Logger;
}

export function fontsPlugin({ settings, sync, logger }: Options): Plugin {
// ... (282 more lines)

Domain

Subdomains

Functions

Types

Dependencies

  • ../../src/assets/fonts/types.js
  • ../core/csp/common.js
  • ../core/encryption.js
  • ../core/errors/index.js
  • ../core/logger/core.js
  • ../core/messages.js
  • ../core/path.js
  • ../errors/dev/utils.js
  • ../prerender/utils.js
  • ../types/astro.js
  • ./core/collect-component-data.js
  • ./core/collect-font-assets-from-faces.js
  • ./core/collect-font-data.js
  • ./core/compute-font-families-assets.js
  • ./core/filter-and-transform-font-faces.js
  • ./core/get-or-create-font-family-assets.js
  • ./core/optimize-fallbacks.js
  • ./core/resolve-family.js
  • ./definitions.js
  • ./fonts/constants.js
  • ./infra/build-font-file-id-generator.js
  • ./infra/build-url-resolver.js
  • ./infra/cached-font-fetcher.js
  • ./infra/capsize-font-metrics-resolver.js
  • ./infra/dev-font-file-id-generator.js
  • ./infra/dev-url-resolver.js
  • ./infra/fs-font-file-content-resolver.js
  • ./infra/levenshtein-string-matcher.js
  • ./infra/minifiable-css-renderer.js
  • ./infra/node-font-type-extractor.js
  • ./infra/system-fallbacks-provider.js
  • ./infra/unifont-font-resolver.js
  • ./infra/unstorage-fs-storage.js
  • ./infra/xxhash-hasher.js
  • node:fs
  • node:path
  • piccolore
  • promises
  • vite

Frequently Asked Questions

What does vite-plugin-fonts.ts do?
vite-plugin-fonts.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 vite-plugin-fonts.ts?
vite-plugin-fonts.ts defines 1 function(s): fontsPlugin.
What does vite-plugin-fonts.ts depend on?
vite-plugin-fonts.ts imports 39 module(s): ../../src/assets/fonts/types.js, ../core/csp/common.js, ../core/encryption.js, ../core/errors/index.js, ../core/logger/core.js, ../core/messages.js, ../core/path.js, ../errors/dev/utils.js, and 31 more.
Where is vite-plugin-fonts.ts in the architecture?
vite-plugin-fonts.ts is located at packages/astro/src/assets/fonts/vite-plugin-fonts.ts (domain: CoreAstro, subdomain: RenderingEngine, directory: packages/astro/src/assets/fonts).

Analyze Your Own Codebase

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

Try Supermodel Free