Bluesky app fork with some witchin' additions 馃挮
at main 40 lines 1.5 kB view raw
1import {writeFile} from 'node:fs/promises' 2import * as path from 'node:path' 3import {fileURLToPath} from 'node:url' 4 5const __DIRNAME = path.dirname(fileURLToPath(import.meta.url)) 6 7const FONTS = [ 8 'https://cdn.jsdelivr.net/fontsource/fonts/noto-sans-jp@5.0/japanese-700-normal.ttf', 9 'https://cdn.jsdelivr.net/fontsource/fonts/noto-sans-tc@5.0/chinese-traditional-700-normal.ttf', 10 'https://cdn.jsdelivr.net/fontsource/fonts/noto-sans-sc@5.0/chinese-simplified-700-normal.ttf', 11 'https://cdn.jsdelivr.net/fontsource/fonts/noto-sans-hk@5.0/chinese-hongkong-700-normal.ttf', 12 'https://cdn.jsdelivr.net/fontsource/fonts/noto-sans-kr@5.0/korean-700-normal.ttf', 13 'https://cdn.jsdelivr.net/fontsource/fonts/noto-sans-thai@5.0/thai-700-normal.ttf', 14 'https://cdn.jsdelivr.net/fontsource/fonts/noto-sans-arabic@5.0/arabic-700-normal.ttf', 15 'https://cdn.jsdelivr.net/fontsource/fonts/noto-sans-hebrew@5.0/hebrew-700-normal.ttf', 16] 17 18async function main() { 19 await Promise.all( 20 FONTS.map(async urlStr => { 21 const url = new URL(urlStr) 22 const res = await fetch(url) 23 const font = await res.arrayBuffer() 24 const filename = url.pathname 25 .split('/') 26 .slice(-2) 27 .join('/') 28 .replace(/@[\d.]+\//, '-') 29 if (!res.ok) { 30 throw new Error(`HTTP ${res.status}: fetching failed for ${filename}`) 31 } 32 await writeFile( 33 path.join(__DIRNAME, '..', 'src', 'assets', 'fonts', filename), 34 Buffer.from(font), 35 ) 36 }), 37 ) 38} 39 40main()