cn-font-split
Version:
划时代的字体切割工具,CJK与任何字符!支持 otf、ttf、woff2 字体多线程切割,完美地细颗粒度地进行包大小控制。A revolutionary font subetter that supports CJK and any characters! It enables multi-threaded subset of otf, ttf, and woff2 fonts, allowing for precise control over package size.
1 lines • 3.66 kB
Source Map (JSON)
{"version":3,"file":"load.mjs","sources":["../src/load.ts"],"sourcesContent":["export const matchPlatform = (\n platform: string,\n arch: string,\n isMusl: () => boolean,\n): string => {\n const platformArchMap: { [key: string]: { [key: string]: string | null } } =\n {\n android: {\n arm64: null,\n arm: null,\n },\n win32: {\n x64: 'x86_64-pc-windows-msvc',\n arm64: 'aarch64-pc-windows-msvc',\n },\n darwin: {\n x64: 'x86_64-apple-darwin',\n arm64: 'aarch64-apple-darwin',\n },\n freebsd: {\n x64: 'x86_64-unknown-freebsd',\n },\n linux: {\n x64: isMusl() ? null : 'x86_64-unknown-linux-gnu',\n arm64: isMusl() ? null : 'aarch64-unknown-linux-gnu',\n arm: null,\n riscv64: isMusl() ? null : 'riscv64gc-unknown-linux-gnu',\n s390x: 's390x-unknown-linux-gnu',\n },\n };\n return platformArchMap?.[platform]?.[arch] ?? 'wasm32-wasip1';\n};\n\nexport const getBinaryFile = async (\n platform: string,\n version: string,\n proxy = 'https://github.com',\n) => {\n const fileName = getBinName(platform);\n console.log(`using gh proxy ${proxy}`);\n const binary = await fetch(\n proxy +\n `/KonghaYao/cn-font-split/releases/download/${version}/${fileName}`,\n ).then((res) => {\n if (res.ok) return res.arrayBuffer();\n throw new Error('download error');\n });\n return binary;\n};\n\ninterface Release {\n id: number;\n tag: string;\n author: string;\n name: string;\n draft: boolean;\n prerelease: boolean;\n createdAt: string;\n publishedAt: string;\n markdown: string;\n html: string;\n}\n\n/** 直接拿最后一个版本的信息 */\nexport const getLatestVersion = async () => {\n const data: {\n release: Release;\n } = await fetch(\n `https://ungh.cc/repos/KonghaYao/cn-font-split/releases/latest`,\n ).then((res) => res.json());\n return data.release;\n};\nexport const getVersionBinary = async (\n v = 'latest',\n): Promise<Release | undefined> => {\n if (v === 'latest') return getLatestVersion();\n const versions = await getAllVersions();\n return versions.find((i: any) => i.tag === v);\n};\nexport const getAllVersions = async (): Promise<Release[]> => {\n const { releases } = await fetch(\n 'https://ungh.cc/repos/KonghaYao/cn-font-split/releases',\n ).then((res) => res.json());\n return releases;\n};\n\nexport function getBinName(platform: string) {\n const ext = platform.includes('windows')\n ? 'dll'\n : platform.includes('darwin')\n ? 'dylib'\n : platform.includes('wasm')\n ? 'wasm'\n : 'so';\n const fileName = `libffi-${platform}.${ext}`;\n return fileName;\n}\n"],"names":["matchPlatform","platform","arch","isMusl","getBinName","ext"],"mappings":"AAAO,MAAMA,IAAgB,CACzBC,GACAC,GACAC,OAGI;AAAA,EACI,SAAS;AAAA,IACL,OAAO;AAAA,IACP,KAAK;AAAA,EACT;AAAA,EACA,OAAO;AAAA,IACH,KAAK;AAAA,IACL,OAAO;AAAA,EACX;AAAA,EACA,QAAQ;AAAA,IACJ,KAAK;AAAA,IACL,OAAO;AAAA,EACX;AAAA,EACA,SAAS;AAAA,IACL,KAAK;AAAA,EACT;AAAA,EACA,OAAO;AAAA,IACH,KAAKA,MAAW,OAAO;AAAA,IACvB,OAAOA,MAAW,OAAO;AAAA,IACzB,KAAK;AAAA,IACL,SAASA,MAAW,OAAO;AAAA,IAC3B,OAAO;AAAA,EAAA;AAEf,KACqBF,CAAQ,IAAIC,CAAI,KAAK;AAwD3C,SAASE,EAAWH,GAAkB;AACzC,QAAMI,IAAMJ,EAAS,SAAS,SAAS,IACjC,QACAA,EAAS,SAAS,QAAQ,IAC1B,UACAA,EAAS,SAAS,MAAM,IACxB,SACA;AAEC,SADU,UAAUA,CAAQ,IAAII,CAAG;AAE9C;"}