diff --git a/packages/astro/src/assets/fonts/providers.ts b/packages/astro/src/assets/fonts/providers.ts index 9f4b05ac34..f85d56c45c 100644 --- a/packages/astro/src/assets/fonts/providers.ts +++ b/packages/astro/src/assets/fonts/providers.ts @@ -1,18 +1,11 @@ import { createRequire } from 'node:module'; import type { AstroSettings } from '../../types/astro.js'; -import { adobe } from './providers/adobe.js'; import { google } from './providers/google.js'; import { local } from './providers/local.js'; import type { FontProvider, ResolvedFontProvider } from './types.js'; import { fileURLToPath } from 'node:url'; import type { ModuleLoader } from '../../core/module-loader/loader.js'; -/** TODO: jsdoc */ -export const fontProviders = { - adobe, - // TODO: reexport all unifont providers -}; - function resolveEntrypoint(settings: AstroSettings, entrypoint: string): string { const require = createRequire(settings.config.root); diff --git a/packages/astro/src/assets/fonts/providers/bunny.ts b/packages/astro/src/assets/fonts/providers/bunny.ts new file mode 100644 index 0000000000..9245faf0b4 --- /dev/null +++ b/packages/astro/src/assets/fonts/providers/bunny.ts @@ -0,0 +1,13 @@ +import { defineFontProvider } from '../helpers.js'; +import { providers } from 'unifont'; + +type Provider = typeof providers.bunny; + +export function bunny() { + return defineFontProvider({ + name: 'bunny', + entrypoint: 'astro/assets/fonts/providers/bunny', + }); +} + +export const provider: Provider = providers.bunny; diff --git a/packages/astro/src/assets/fonts/providers/fontshare.ts b/packages/astro/src/assets/fonts/providers/fontshare.ts new file mode 100644 index 0000000000..431c6b8108 --- /dev/null +++ b/packages/astro/src/assets/fonts/providers/fontshare.ts @@ -0,0 +1,13 @@ +import { defineFontProvider } from '../helpers.js'; +import { providers } from 'unifont'; + +type Provider = typeof providers.fontshare; + +export function fontshare() { + return defineFontProvider({ + name: 'fontshare', + entrypoint: 'astro/assets/fonts/providers/fontshare', + }); +} + +export const provider: Provider = providers.fontshare; diff --git a/packages/astro/src/assets/fonts/providers/fontsource.ts b/packages/astro/src/assets/fonts/providers/fontsource.ts new file mode 100644 index 0000000000..228c44cb92 --- /dev/null +++ b/packages/astro/src/assets/fonts/providers/fontsource.ts @@ -0,0 +1,13 @@ +import { defineFontProvider } from '../helpers.js'; +import { providers } from 'unifont'; + +type Provider = typeof providers.fontsource; + +export function fontsource() { + return defineFontProvider({ + name: 'fontsource', + entrypoint: 'astro/assets/fonts/providers/fontsource', + }); +} + +export const provider: Provider = providers.fontsource; diff --git a/packages/astro/src/assets/fonts/providers/index.ts b/packages/astro/src/assets/fonts/providers/index.ts new file mode 100644 index 0000000000..2ba98baef0 --- /dev/null +++ b/packages/astro/src/assets/fonts/providers/index.ts @@ -0,0 +1,12 @@ +import { adobe } from './adobe.js'; +import { bunny } from './bunny.js'; +import { fontshare } from './fontshare.js'; +import { fontsource } from './fontsource.js'; + +/** TODO: jsdoc */ +export const fontProviders = { + adobe, + bunny, + fontshare, + fontsource, +}; diff --git a/packages/astro/src/config/entrypoint.ts b/packages/astro/src/config/entrypoint.ts index 614728b79c..ae42f8d582 100644 --- a/packages/astro/src/config/entrypoint.ts +++ b/packages/astro/src/config/entrypoint.ts @@ -5,7 +5,7 @@ import type { ImageServiceConfig } from '../types/public/index.js'; export { defineConfig, getViteConfig } from './index.js'; export { envField } from '../env/config.js'; -export { fontProviders } from '../assets/fonts/providers.js'; +export { fontProviders } from '../assets/fonts/providers/index.js'; /** * Return the configuration needed to use the Sharp-based image service