forked from
jollywhoppers.com/witchsky.app
Bluesky app fork with some witchin' additions 馃挮
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()