UNPKG

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.52 kB
{"version":3,"file":"index.mjs","sources":["../../src/bun/index.ts"],"sourcesContent":["/** @ts-ignore */\nimport { dlopen, FFIType, ptr, JSCallback, toArrayBuffer } from 'bun:ffi';\nimport path from 'path';\nimport { FontSplitProps } from '../interface.js';\nimport { getBinName, matchPlatform } from '../load.js';\nimport { isMusl } from '../node/isMusl.js';\nimport { createAPI } from '../createAPI.js';\nexport * from '../interface.js';\nexport * from '../createAPI.js';\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 // console.log(binPath);\n // throw new Error('CN_FONT_SPLIT_BIN is undefined!');\n}\nconst {\n symbols: { font_split },\n close,\n} = dlopen(binPath, {\n font_split: {\n args: [FFIType.ptr, FFIType.usize, FFIType.callback],\n returns: FFIType.void,\n },\n});\nconst createCallback = (cb: (data: Uint8Array) => void) =>\n new JSCallback(\n (ptr: any, length: BigInt) => {\n const data = new Uint8Array(\n toArrayBuffer(ptr, 0, Number(length)).slice(),\n 0,\n Number(length),\n );\n cb(data);\n },\n {\n returns: FFIType.void,\n args: [FFIType.ptr, FFIType.usize],\n },\n ).ptr;\nexport const fontSplit = createAPI((buffer, length, cb) => {\n return font_split(ptr(buffer), length, cb);\n}, createCallback);\n"],"names":["binPath","path","getBinName","matchPlatform","isMusl","font_split","close","dlopen","FFIType","createCallback","cb","JSCallback","ptr","length","data","toArrayBuffer","fontSplit","createAPI","buffer"],"mappings":";;;;;;;AAUA,IAAIA,IAAU,QAAQ,IAAI;AACrBA,MACDA,IAAUC,EAAK;AAAA,EACX;AAAA,EACA,QACIC,EAAWC,EAAc,QAAQ,UAAU,QAAQ,MAAMC,CAAM,CAAC;AACxE;AAIJ,MAAM;AAAA,EACF,SAAS,EAAE,YAAAC,EAAW;AAAA,EACtB,OAAAC;AACJ,IAAIC,EAAOP,GAAS;AAAA,EAChB,YAAY;AAAA,IACR,MAAM,CAACQ,EAAQ,KAAKA,EAAQ,OAAOA,EAAQ,QAAQ;AAAA,IACnD,SAASA,EAAQ;AAAA,EAAA;AAEzB,CAAC,GACKC,IAAiB,CAACC,MACpB,IAAIC;AAAA,EACA,CAACC,GAAUC,MAAmB;AAC1B,UAAMC,IAAO,IAAI;AAAA,MACbC,EAAcH,GAAK,GAAG,OAAOC,CAAM,CAAC,EAAE,MAAM;AAAA,MAC5C;AAAA,MACA,OAAOA,CAAM;AAAA,IACjB;AACA,IAAAH,EAAGI,CAAI;AAAA,EACX;AAAA,EACA;AAAA,IACI,SAASN,EAAQ;AAAA,IACjB,MAAM,CAACA,EAAQ,KAAKA,EAAQ,KAAK;AAAA,EAAA;AAEzC,EAAE,KACOQ,IAAYC,EAAU,CAACC,GAAQL,GAAQH,MACzCL,EAAWO,EAAIM,CAAM,GAAGL,GAAQH,CAAE,GAC1CD,CAAc;"}