UNPKG

3.78 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../../../next-server/server/font-utils.ts"],"names":["https","require","CHROME_UA","IE_UA","isGoogleFont","url","startsWith","GOOGLE_FONT_PROVIDER","getFontForUA","UA","Promise","resolve","reject","rawData","get","headers","res","on","chunk","toString","e","getFontDefinitionFromNetwork","result","Log","warn","getFontDefinitionFromManifest","manifest","find","font","content"],"mappings":"2KAAA,mEACA,2C,qzBACA,KAAMA,CAAAA,KAAK,CAAGC,OAAO,CAAC,OAAD,CAArB,CAEA,KAAMC,CAAAA,SAAS,CACb,0HADF,CAEA,KAAMC,CAAAA,KAAK,CAAG,gEAAd,CAOA,QAASC,CAAAA,YAAT,CAAsBC,GAAtB,CAA4C,CAC1C,MAAOA,CAAAA,GAAG,CAACC,UAAJ,CAAeC,+BAAf,CAAP,CACD,CAED,QAASC,CAAAA,YAAT,CAAsBH,GAAtB,CAAmCI,EAAnC,CAAgE,CAC9D,MAAO,IAAIC,CAAAA,OAAJ,CAAY,CAACC,OAAD,CAAUC,MAAV,GAAqB,CACtC,GAAIC,CAAAA,OAAY,CAAG,EAAnB,CACAb,KAAK,CACFc,GADH,CAEIT,GAFJ,CAGI,CACEU,OAAO,CAAE,CACP,aAAcN,EADP,CADX,CAHJ,CAQKO,GAAD,EAAc,CACZA,GAAG,CAACC,EAAJ,CAAO,MAAP,CAAgBC,KAAD,EAAgB,CAC7BL,OAAO,EAAIK,KAAX,CACD,CAFD,EAGAF,GAAG,CAACC,EAAJ,CAAO,KAAP,CAAc,IAAM,CAClBN,OAAO,CAACE,OAAO,CAACM,QAAR,CAAiB,MAAjB,CAAD,CAAP,CACD,CAFD,EAGD,CAfL,EAiBGF,EAjBH,CAiBM,OAjBN,CAiBgBG,CAAD,EAAc,CACzBR,MAAM,CAACQ,CAAD,CAAN,CACD,CAnBH,EAoBD,CAtBM,CAAP,CAuBD,CAEM,cAAeC,CAAAA,4BAAf,CACLhB,GADK,CAEY,CACjB,GAAIiB,CAAAA,MAAM,CAAG,EAAb,CACA;AACF;AACA;AACA,KACE,GAAI,CACF,GAAIlB,YAAY,CAACC,GAAD,CAAhB,CAAuB,CACrBiB,MAAM,EAAI,KAAMd,CAAAA,YAAY,CAACH,GAAD,CAAMF,KAAN,CAA5B,CACD,CACDmB,MAAM,EAAI,KAAMd,CAAAA,YAAY,CAACH,GAAD,CAAMH,SAAN,CAA5B,CACD,CAAC,MAAOkB,CAAP,CAAU,CACVG,GAAG,CAACC,IAAJ,CACG,yCAAwCnB,GAAI,iCAD/C,EAGA,MAAO,EAAP,CACD,CAED,MAAOiB,CAAAA,MAAP,CACD,CAEM,QAASG,CAAAA,6BAAT,CACLpB,GADK,CAELqB,QAFK,CAGG,oBACR,MACE,iBAAAA,QAAQ,CAACC,IAAT,CAAeC,IAAD,EAAU,CACtB,GAAIA,IAAI,EAAIA,IAAI,CAACvB,GAAL,GAAaA,GAAzB,CAA8B,CAC5B,MAAO,KAAP,CACD,CACD,MAAO,MAAP,CACD,CALD,+BAKIwB,OALJ,GAKe,EANjB,CAQD","sourcesContent":["import * as Log from '../../build/output/log'\nimport { GOOGLE_FONT_PROVIDER } from '../lib/constants'\nconst https = require('https')\n\nconst CHROME_UA =\n 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36'\nconst IE_UA = 'Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko'\n\nexport type FontManifest = Array<{\n url: string\n content: string\n}>\n\nfunction isGoogleFont(url: string): boolean {\n return url.startsWith(GOOGLE_FONT_PROVIDER)\n}\n\nfunction getFontForUA(url: string, UA: string): Promise<String> {\n return new Promise((resolve, reject) => {\n let rawData: any = ''\n https\n .get(\n url,\n {\n headers: {\n 'user-agent': UA,\n },\n },\n (res: any) => {\n res.on('data', (chunk: any) => {\n rawData += chunk\n })\n res.on('end', () => {\n resolve(rawData.toString('utf8'))\n })\n }\n )\n .on('error', (e: Error) => {\n reject(e)\n })\n })\n}\n\nexport async function getFontDefinitionFromNetwork(\n url: string\n): Promise<string> {\n let result = ''\n /**\n * The order of IE -> Chrome is important, other wise chrome starts loading woff1.\n * CSS cascading 🤷‍♂️.\n */\n try {\n if (isGoogleFont(url)) {\n result += await getFontForUA(url, IE_UA)\n }\n result += await getFontForUA(url, CHROME_UA)\n } catch (e) {\n Log.warn(\n `Failed to download the stylesheet for ${url}. Skipped optimizing this font.`\n )\n return ''\n }\n\n return result\n}\n\nexport function getFontDefinitionFromManifest(\n url: string,\n manifest: FontManifest\n): string {\n return (\n manifest.find((font) => {\n if (font && font.url === url) {\n return true\n }\n return false\n })?.content || ''\n )\n}\n"]}
\No newline at end of file