From ae64288dca90384e93106556bea44039a3a8088f Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Thu, 4 Aug 2022 17:56:17 +0800 Subject: [PATCH] perf(web-fonts): improve web fonts loading --- packages/preset-web-fonts/src/index.ts | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/packages/preset-web-fonts/src/index.ts b/packages/preset-web-fonts/src/index.ts index f597b4eff3..6e601ef7d2 100644 --- a/packages/preset-web-fonts/src/index.ts +++ b/packages/preset-web-fonts/src/index.ts @@ -41,23 +41,21 @@ const preset = (options: WebFontsOptions = {}): Preset => { ) const fonts = Object.values(fontObject).flatMap(i => i) - const importCache: Record = {} + const importCache: Record> = {} async function importUrl(url: string) { if (inlineImports) { if (!importCache[url]) { - try { - const { $fetch } = await import('ohmyfetch') - importCache[url] = await $fetch(url, { headers: {} }) - } - catch (e) { - console.error('Failed to fetch web fonts') - console.error(e) - if (typeof process !== 'undefined' && process.env.CI) - throw e - } + const { $fetch } = await import('ohmyfetch') + importCache[url] = $fetch(url, { headers: {}, retry: 3 }) + .catch((e) => { + console.error('Failed to fetch web fonts') + console.error(e) + if (typeof process !== 'undefined' && process.env.CI) + throw e + }) } - return importCache[url] + return await importCache[url] } else { return `@import url('${url}')`