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.

2 lines 1.17 kB
const e=require("./_virtual/_rolldown/runtime.js"),t=require("./gen/index.js");require("./decodeReporter.js");let n=require("path");n=e.__toESM(n);let r=require("fs-extra");r=e.__toESM(r);var i=async e=>{let t={};return typeof e.input==`string`?t.input=await r.default.readFile(e.input):t.input=e.input,Array.isArray(e.subsets)&&(t.subsets=e.subsets.map(e=>new Uint8Array(new Uint32Array(e).buffer))),{...e,...t}},a=(e,a,o)=>async function(s){let c=await i(s),l=t.api_interface.InputTemplate.fromObject(c);if(!l.outDir)throw Error(`cn-font-split need outDir`);let u=Math.random().toString().slice(2,5);console.time(`cn-font-split `+u);let d=[];return new Promise(i=>{let o=l.serialize();e(o,o.length,a(e=>{let a=t.api_interface.EventMessage.deserialize(e);switch(a.event){case t.api_interface.EventName.END:i();break;case t.api_interface.EventName.OUTPUT_DATA:!s.silent&&console.log(a.message);let e=(s.outputFile||r.default.outputFile)(n.default.join(l.outDir,a.message),a.data);d.push(e);break;default:}}))}).then(async e=>(await Promise.all(d),e)).finally(()=>{console.timeEnd(`cn-font-split `+u),o?.()})};exports.createAPI=a; //# sourceMappingURL=createAPI.js.map