Skip to content

Commit

Permalink
feat(web-fonts): expose createGoogleCompatibleProvider util
Browse files Browse the repository at this point in the history
  • Loading branch information
antfu committed Apr 23, 2023
1 parent 89ff6e1 commit ad1202b
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 8 deletions.
4 changes: 3 additions & 1 deletion packages/preset-web-fonts/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ function resolveProvider(provider: WebFontsProviders): Provider {
return provider
}

export { createGoogleCompatibleProvider as createGoogleProvider } from './providers/google'

export function normalizedFontMeta(meta: WebFontMeta | string, defaultProvider: WebFontsProviders): ResolvedWebFontMeta {
if (typeof meta !== 'string') {
meta.provider = resolveProvider(meta.provider || defaultProvider)
Expand Down Expand Up @@ -84,7 +86,7 @@ function preset(options: WebFontsOptions = {}): Preset<any> {
const preflights: (string | undefined)[] = []

for (const provider of enabledProviders) {
const fontsForProvider = fonts.filter(i => i.provider === provider)
const fontsForProvider = fonts.filter(i => i.provider.name === provider.name)

if (provider.getImportUrl) {
const url = provider.getImportUrl(fontsForProvider)
Expand Down
4 changes: 2 additions & 2 deletions packages/preset-web-fonts/src/providers/bunny.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
import { createGoogleProvider } from './google'
import { createGoogleCompatibleProvider } from './google'

export const BunnyFontsProvider = createGoogleProvider('bunny', 'https://fonts.bunny.net')
export const BunnyFontsProvider = createGoogleCompatibleProvider('bunny', 'https://fonts.bunny.net')
2 changes: 1 addition & 1 deletion packages/preset-web-fonts/src/providers/fontshare.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ export function createFontshareProvider(name: WebFontsProviders, host: string):
return {
name,
getImportUrl(fonts) {
const strings = fonts.filter(f => f.provider === name).map((f) => {
const strings = fonts.map((f) => {
let name = f.name.replace(/\s+/g, '-').toLocaleLowerCase()
if (f.weights?.length)
name += `@${f.weights.flatMap(w => f.italic ? Number(w) + 1 : w).sort().join()}`
Expand Down
7 changes: 3 additions & 4 deletions packages/preset-web-fonts/src/providers/google.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
import type { Provider, WebFontsProviders } from '../types'

export const GoogleFontsProvider: Provider = createGoogleProvider('google', 'https://fonts.googleapis.com')

export function createGoogleProvider(name: WebFontsProviders, host: string): Provider {
export function createGoogleCompatibleProvider(name: WebFontsProviders, host: string): Provider {
return {
name,
getImportUrl(fonts) {
const strings = fonts
.filter(i => i.provider === name)
.map((i) => {
let name = i.name.replace(/\s+/g, '+')
if (i.weights?.length) {
Expand All @@ -21,3 +18,5 @@ export function createGoogleProvider(name: WebFontsProviders, host: string): Pro
},
}
}

export const GoogleFontsProvider: Provider = createGoogleCompatibleProvider('google', 'https://fonts.googleapis.com')

0 comments on commit ad1202b

Please sign in to comment.