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 • 2.49 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../src/node/index.ts"],"sourcesContent":["import path from 'path';\nimport { FontSplitProps } from '../interface.js';\nimport { getBinName, matchPlatform } from '../load.js';\nimport { isMusl } from './isMusl.js';\nexport * from '../interface.js';\nexport * from '../createAPI.js';\n// @ts-ignore\nimport { dlopen, Callback } from '@xan105/ffi/koffi';\nimport koffi from 'koffi';\nimport { fileURLToPath } from 'url';\nimport { dirname } from 'path';\nimport { createAPI } from '../createAPI.js';\n\n// @ts-ignore 获取当前模块的 URL\nconst __filename = fileURLToPath(import.meta.url);\n\n// 获取当前模块所在的目录\nconst __dirname = dirname(__filename);\n\nlet binPath = process.env.CN_FONT_SPLIT_BIN;\nif (!binPath) {\n binPath = path.resolve(\n __dirname,\n '../' +\n getBinName(matchPlatform(process.platform, process.arch, isMusl)),\n );\n // throw new Error('CN_FONT_SPLIT_BIN is undefined!');\n}\nconst dylib = dlopen(binPath, {\n font_split: {\n parameters: ['pointer', 'usize', 'function'],\n result: 'void',\n },\n});\nconst createCallback = (cb: (data: Uint8Array) => void) =>\n new Callback(\n {\n parameters: ['pointer', 'usize'],\n result: 'void',\n },\n (ptr: any, length: number) => {\n const data = koffi.decode(\n ptr,\n koffi.array('uint8_t', length, 'Array'),\n );\n cb(new Uint8Array(data));\n },\n ).pointer;\n\nexport const fontSplit = createAPI(dylib.font_split, createCallback);\n"],"names":["__filename","fileURLToPath","__dirname","dirname","binPath","path","getBinName","matchPlatform","isMusl","dylib","dlopen","createCallback","cb","Callback","ptr","length","data","koffi","fontSplit","createAPI"],"mappings":";;;;;;;;;;;AAcA,MAAMA,IAAaC,EAAc,YAAY,GAAG,GAG1CC,IAAYC,EAAQH,CAAU;AAEpC,IAAII,IAAU,QAAQ,IAAI;AACrBA,MACDA,IAAUC,EAAK;AAAA,EACXH;AAAA,EACA,QACII,EAAWC,EAAc,QAAQ,UAAU,QAAQ,MAAMC,CAAM,CAAC;AACxE;AAGJ,MAAMC,IAAQC,EAAON,GAAS;AAAA,EAC1B,YAAY;AAAA,IACR,YAAY,CAAC,WAAW,SAAS,UAAU;AAAA,IAC3C,QAAQ;AAAA,EAAA;AAEhB,CAAC,GACKO,IAAiB,CAACC,MACpB,IAAIC;AAAA,EACA;AAAA,IACI,YAAY,CAAC,WAAW,OAAO;AAAA,IAC/B,QAAQ;AAAA,EACZ;AAAA,EACA,CAACC,GAAUC,MAAmB;AAC1B,UAAMC,IAAOC,EAAM;AAAA,MACfH;AAAA,MACAG,EAAM,MAAM,WAAWF,GAAQ,OAAO;AAAA,IAC1C;AACG,IAAAH,EAAA,IAAI,WAAWI,CAAI,CAAC;AAAA,EAAA;AAE/B,EAAE,SAEOE,IAAYC,EAAUV,EAAM,YAAYE,CAAc;"}