Skip to content

Commit 63d3bdc

Browse files
committed
fix: set timeout to 5s for web font download
1 parent 43c2f71 commit 63d3bdc

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
diff --git a/node_modules/vite-plugin-webfont-dl/dist/index.js b/node_modules/vite-plugin-webfont-dl/dist/index.js
2+
index 65ed848..f4bf88d 100644
3+
--- a/node_modules/vite-plugin-webfont-dl/dist/index.js
4+
+++ b/node_modules/vite-plugin-webfont-dl/dist/index.js
5+
@@ -6,7 +6,7 @@ $1</head>`)}injectAsync(e,t,s){return e.replace(/([ \t]*)<\/head>/,`$1$1<link re
6+
$1$1<link rel="stylesheet" media="print" onload="this.onload=null;this.removeAttribute('media');" href="${t}${s}">
7+
$1</head>`)}injectSync(e,t,s){return e.replace(/([ \t]*)<\/head>/,`$1$1<link rel="preload" as="style" href="${t}${s}">
8+
$1$1<link rel="stylesheet" href="${t}${s}">
9+
-$1</head>`)}};var he=(l=>(l.woff2="font/woff2",l.woff="font/woff",l.ttf="font/ttf",l.otf="font/otf",l.svg="image/svg+xml",l.eot="application/vnd.ms-fontobject",l))(he||{}),I=class{constructor(e){this.options=e}transform(e,t){return t.forEach(s=>{if(!this.options.embedFonts||!s.binary)e=e.replaceAll(s.url,s.localPath);else if(s.binary){let n=new RegExp(`url\\(['"]?\\b${s.url}\\b['"]?\\)`,"gi");e=e.replaceAll(n,`url(data:${this.getFontMime(s)};base64,${s.binary.toString("base64")})`)}}),e}getFontMime(e){let t=e.filename.replace(/^.+\.(.+)$/,"$1");return he[t]}};var K=require("axios"),de=require("http"),me=require("https"),D=P(require("picocolors"));var U=class{constructor(e,t){this.options=e;this.logger=t;this.userAgentWoff2="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.0.0 Safari/537.36";this.maxTries=3;this.timeout=2500;this.waitBeforeRetry=[25,2500];this.axios=new K.Axios({timeout:this.timeout,proxy:this.options.proxy,httpAgent:new de.Agent({keepAlive:!0,family:4}),httpsAgent:new me.Agent({keepAlive:!0,family:4})})}download(e,t,s=1){return d(this,null,function*(){try{let n=yield this.toRequest(e,t);return s>1&&this.logger.info(D.default.green(`\u2713 ${e}`)+" "+D.default.dim(`(try #${s})`)),n}catch(n){if(this.logger.error(D.default.red(`\u2717 ${e}`)+" "+D.default.dim(`(try #${s})`)+": "+((0,K.isAxiosError)(n)?n.message:n)),s<this.maxTries)return yield new Promise(a=>setTimeout(a,this.randomWaitInterval())),this.download(e,t,s+1);throw n}})}toRequest(e,t){return this.axios.get(e,{headers:{"User-Agent":this.userAgentWoff2},responseType:t!=null?t:"arraybuffer"})}randomWaitInterval(){return Math.floor(Math.random()*(this.waitBeforeRetry[0]-this.waitBeforeRetry[1]+1)+this.waitBeforeRetry[1])}};var _=class{constructor(e,t,s){this.logger=e;this.downloader=t;this.fileCache=s}load(e){return d(this,null,function*(){let t=this.fileCache.get("font",e);if(t)return t;this.logger.flashLine(e);let s=yield this.downloader.download(e);return this.fileCache.save("font",e,s.data),s.data})}};var j=P(require("flat-cache"));var E="3.9.1";var q=class{constructor(e){this.enabled=!0;this.hits={css:0,font:0};e.cache===!1&&(this.enabled=!1),this.storeCss=j.default.create(`vite-plugin-webfont-dl__${E}__css`),this.storeFont=j.default.create(`vite-plugin-webfont-dl__${E}__font`),this.enabled||this.clear()}get(e,t){if(!this.enabled)return;let s=e==="css"?this.storeCss.getKey(t):this.storeFont.getKey(t);if(s)return e==="css"?this.hits.css++:this.hits.font++,s.type!==void 0?Buffer.from(s.data):s}save(e,t,s){this.enabled&&(e==="css"?(this.storeCss.setKey(t,s),this.storeCss.save(!0)):(this.storeFont.setKey(t,s),this.storeFont.save(!0)))}clear(){j.default.clearCacheById(`vite-plugin-webfont-dl__${E}__css`),j.default.clearCacheById(`vite-plugin-webfont-dl__${E}__font`)}};var V=class{constructor(){this.webfontRegexes=[new RegExp(`(<!--.*?)?<link[^>]+rel=['"]?stylesheet['"]?[^>]+href=['"]?(https:\\/\\/fonts\\.googleapis\\.com[^'">]+)['"]?[^>]*>`,"gs"),new RegExp(`(<!--.*?)?<link[^>]+href=['"]?(https:\\/\\/fonts\\.googleapis\\.com[^'">]+)['"]?[^>]+rel=['"]?stylesheet['"]?[^>]*>`,"gs"),new RegExp(`(<!--.*?)?<link[^>]+rel=['"]?stylesheet['"]?[^>]+href=['"]?(https:\\/\\/fonts\\.bunny\\.net[^'">]+)['"]?[^>]*>`,"gs"),new RegExp(`(<!--.*?)?<link[^>]+href=['"]?(https:\\/\\/fonts\\.bunny\\.net[^'">]+)['"]?[^>]+rel=['"]?stylesheet['"]?[^>]*>`,"gs"),new RegExp(`(<!--.*?)?<link[^>]+rel=['"]?stylesheet['"]?[^>]+href=['"]?(https:\\/\\/api\\.fontshare\\.com[^'">]+)['"]?[^>]*>`,"gs"),new RegExp(`(<!--.*?)?<link[^>]+href=['"]?(https:\\/\\/api\\.fontshare\\.com[^'">]+)['"]?[^>]+rel=['"]?stylesheet['"]?[^>]*>`,"gs"),new RegExp(`(<!--.*?)?<link[^>]+rel=['"]?stylesheet['"]?[^>]+href=['"]?(https:\\/\\/cdn\\.jsdelivr\\.net[^'">]+\\.css)['"]?[^>]*>`,"gs"),new RegExp(`(<!--.*?)?<link[^>]+href=['"]?(https:\\/\\/cdn\\.jsdelivr\\.net[^'">]+\\.css)['"]?[^>]+rel=['"]?stylesheet['"]?[^>]*>`,"gs"),new RegExp(`(<!--.*?)?<link[^>]+rel=['"]?stylesheet['"]?[^>]+href=['"]?(https:\\/\\/rsms\\.me[^'">]+)['"]?[^>]*>`,"gs"),new RegExp(`(<!--.*?)?<link[^>]+href=['"]?(https:\\/\\/rsms\\.me[^'">]+)['"]?[^>]+rel=['"]?stylesheet['"]?[^>]*>`,"gs")];this.preconnectRegexes=[/<link[^>]+rel=['"]?preconnect['"]?[^>]+href=['"]?https:\/\/fonts\.googleapis\.com['"]?[^>]*>/,/<link[^>]+href=['"]?https:\/\/fonts\.googleapis\.com['"]?[^>]+rel=['"]?preconnect['"]?[^>]*>/,/<link[^>]+rel=['"]?preconnect['"]?[^>]+href=['"]?https:\/\/fonts\.gstatic\.com['"]?[^>]*>/,/<link[^>]+href=['"]?https:\/\/fonts\.gstatic\.com['"]?[^>]+rel=['"]?preconnect['"]?[^>]*>/,/<link[^>]+rel=['"]?preconnect['"]?[^>]+href=['"]?https:\/\/fonts\.bunny\.net['"]?[^>]*>/,/<link[^>]+href=['"]?https:\/\/fonts\.bunny\.net['"]?[^>]+rel=['"]?preconnect['"]?[^>]*>/,/<link[^>]+rel=['"]?preconnect['"]?[^>]+href=['"]?https:\/\/api\.fontshare\.com['"]?[^>]*>/,/<link[^>]+href=['"]?https:\/\/api\.fontshare\.com['"]?[^>]+rel=['"]?preconnect['"]?[^>]*>/,/<link[^>]+rel=['"]?preconnect['"]?[^>]+href=['"]?https:\/\/rsms\.me['"]?[^>]*>/,/<link[^>]+href=['"]?https:\/\/rsms\.me['"]?[^>]+rel=['"]?preconnect['"]?[^>]*>/]}parse(e){let t=new Set;for(let s of this.webfontRegexes){let n=e.matchAll(s);if(n)for(let a of n)(!a[1]||a[1].includes("-->"))&&t.add(a[2])}return t}removeTags(e){return e=this.removePreconnectTags(e),e=this.removeWebfontTags(e),e}removePreconnectTags(e){for(let t of this.preconnectRegexes){let s=new RegExp("[ ]*"+t.source+`(\r
10+
+$1</head>`)}};var he=(l=>(l.woff2="font/woff2",l.woff="font/woff",l.ttf="font/ttf",l.otf="font/otf",l.svg="image/svg+xml",l.eot="application/vnd.ms-fontobject",l))(he||{}),I=class{constructor(e){this.options=e}transform(e,t){return t.forEach(s=>{if(!this.options.embedFonts||!s.binary)e=e.replaceAll(s.url,s.localPath);else if(s.binary){let n=new RegExp(`url\\(['"]?\\b${s.url}\\b['"]?\\)`,"gi");e=e.replaceAll(n,`url(data:${this.getFontMime(s)};base64,${s.binary.toString("base64")})`)}}),e}getFontMime(e){let t=e.filename.replace(/^.+\.(.+)$/,"$1");return he[t]}};var K=require("axios"),de=require("http"),me=require("https"),D=P(require("picocolors"));var U=class{constructor(e,t){this.options=e;this.logger=t;this.userAgentWoff2="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.0.0 Safari/537.36";this.maxTries=3;this.timeout=5000;this.waitBeforeRetry=[25,2500];this.axios=new K.Axios({timeout:this.timeout,proxy:this.options.proxy,httpAgent:new de.Agent({keepAlive:!0,family:4}),httpsAgent:new me.Agent({keepAlive:!0,family:4})})}download(e,t,s=1){return d(this,null,function*(){try{let n=yield this.toRequest(e,t);return s>1&&this.logger.info(D.default.green(`\u2713 ${e}`)+" "+D.default.dim(`(try #${s})`)),n}catch(n){if(this.logger.error(D.default.red(`\u2717 ${e}`)+" "+D.default.dim(`(try #${s})`)+": "+((0,K.isAxiosError)(n)?n.message:n)),s<this.maxTries)return yield new Promise(a=>setTimeout(a,this.randomWaitInterval())),this.download(e,t,s+1);throw n}})}toRequest(e,t){return this.axios.get(e,{headers:{"User-Agent":this.userAgentWoff2},responseType:t!=null?t:"arraybuffer"})}randomWaitInterval(){return Math.floor(Math.random()*(this.waitBeforeRetry[0]-this.waitBeforeRetry[1]+1)+this.waitBeforeRetry[1])}};var _=class{constructor(e,t,s){this.logger=e;this.downloader=t;this.fileCache=s}load(e){return d(this,null,function*(){let t=this.fileCache.get("font",e);if(t)return t;this.logger.flashLine(e);let s=yield this.downloader.download(e);return this.fileCache.save("font",e,s.data),s.data})}};var j=P(require("flat-cache"));var E="3.9.1";var q=class{constructor(e){this.enabled=!0;this.hits={css:0,font:0};e.cache===!1&&(this.enabled=!1),this.storeCss=j.default.create(`vite-plugin-webfont-dl__${E}__css`),this.storeFont=j.default.create(`vite-plugin-webfont-dl__${E}__font`),this.enabled||this.clear()}get(e,t){if(!this.enabled)return;let s=e==="css"?this.storeCss.getKey(t):this.storeFont.getKey(t);if(s)return e==="css"?this.hits.css++:this.hits.font++,s.type!==void 0?Buffer.from(s.data):s}save(e,t,s){this.enabled&&(e==="css"?(this.storeCss.setKey(t,s),this.storeCss.save(!0)):(this.storeFont.setKey(t,s),this.storeFont.save(!0)))}clear(){j.default.clearCacheById(`vite-plugin-webfont-dl__${E}__css`),j.default.clearCacheById(`vite-plugin-webfont-dl__${E}__font`)}};var V=class{constructor(){this.webfontRegexes=[new RegExp(`(<!--.*?)?<link[^>]+rel=['"]?stylesheet['"]?[^>]+href=['"]?(https:\\/\\/fonts\\.googleapis\\.com[^'">]+)['"]?[^>]*>`,"gs"),new RegExp(`(<!--.*?)?<link[^>]+href=['"]?(https:\\/\\/fonts\\.googleapis\\.com[^'">]+)['"]?[^>]+rel=['"]?stylesheet['"]?[^>]*>`,"gs"),new RegExp(`(<!--.*?)?<link[^>]+rel=['"]?stylesheet['"]?[^>]+href=['"]?(https:\\/\\/fonts\\.bunny\\.net[^'">]+)['"]?[^>]*>`,"gs"),new RegExp(`(<!--.*?)?<link[^>]+href=['"]?(https:\\/\\/fonts\\.bunny\\.net[^'">]+)['"]?[^>]+rel=['"]?stylesheet['"]?[^>]*>`,"gs"),new RegExp(`(<!--.*?)?<link[^>]+rel=['"]?stylesheet['"]?[^>]+href=['"]?(https:\\/\\/api\\.fontshare\\.com[^'">]+)['"]?[^>]*>`,"gs"),new RegExp(`(<!--.*?)?<link[^>]+href=['"]?(https:\\/\\/api\\.fontshare\\.com[^'">]+)['"]?[^>]+rel=['"]?stylesheet['"]?[^>]*>`,"gs"),new RegExp(`(<!--.*?)?<link[^>]+rel=['"]?stylesheet['"]?[^>]+href=['"]?(https:\\/\\/cdn\\.jsdelivr\\.net[^'">]+\\.css)['"]?[^>]*>`,"gs"),new RegExp(`(<!--.*?)?<link[^>]+href=['"]?(https:\\/\\/cdn\\.jsdelivr\\.net[^'">]+\\.css)['"]?[^>]+rel=['"]?stylesheet['"]?[^>]*>`,"gs"),new RegExp(`(<!--.*?)?<link[^>]+rel=['"]?stylesheet['"]?[^>]+href=['"]?(https:\\/\\/rsms\\.me[^'">]+)['"]?[^>]*>`,"gs"),new RegExp(`(<!--.*?)?<link[^>]+href=['"]?(https:\\/\\/rsms\\.me[^'">]+)['"]?[^>]+rel=['"]?stylesheet['"]?[^>]*>`,"gs")];this.preconnectRegexes=[/<link[^>]+rel=['"]?preconnect['"]?[^>]+href=['"]?https:\/\/fonts\.googleapis\.com['"]?[^>]*>/,/<link[^>]+href=['"]?https:\/\/fonts\.googleapis\.com['"]?[^>]+rel=['"]?preconnect['"]?[^>]*>/,/<link[^>]+rel=['"]?preconnect['"]?[^>]+href=['"]?https:\/\/fonts\.gstatic\.com['"]?[^>]*>/,/<link[^>]+href=['"]?https:\/\/fonts\.gstatic\.com['"]?[^>]+rel=['"]?preconnect['"]?[^>]*>/,/<link[^>]+rel=['"]?preconnect['"]?[^>]+href=['"]?https:\/\/fonts\.bunny\.net['"]?[^>]*>/,/<link[^>]+href=['"]?https:\/\/fonts\.bunny\.net['"]?[^>]+rel=['"]?preconnect['"]?[^>]*>/,/<link[^>]+rel=['"]?preconnect['"]?[^>]+href=['"]?https:\/\/api\.fontshare\.com['"]?[^>]*>/,/<link[^>]+href=['"]?https:\/\/api\.fontshare\.com['"]?[^>]+rel=['"]?preconnect['"]?[^>]*>/,/<link[^>]+rel=['"]?preconnect['"]?[^>]+href=['"]?https:\/\/rsms\.me['"]?[^>]*>/,/<link[^>]+href=['"]?https:\/\/rsms\.me['"]?[^>]+rel=['"]?preconnect['"]?[^>]*>/]}parse(e){let t=new Set;for(let s of this.webfontRegexes){let n=e.matchAll(s);if(n)for(let a of n)(!a[1]||a[1].includes("-->"))&&t.add(a[2])}return t}removeTags(e){return e=this.removePreconnectTags(e),e=this.removeWebfontTags(e),e}removePreconnectTags(e){for(let t of this.preconnectRegexes){let s=new RegExp("[ ]*"+t.source+`(\r
11+
|\r|
12+
)?`,"g");e=e.replace(s,"")}return e}removeWebfontTags(e){for(let t of this.webfontRegexes){let s=new RegExp("[ ]*"+t.source+`(\r
13+
|\r|

0 commit comments

Comments
 (0)