{"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;AAAA;AAI5E,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,EAAA;AAAA,EAEZ,CAACC,GAAUC,MAAmB;AAC1B,UAAMC,IAAOC,EAAM;AAAA,MACfH;AAAA,MACAG,EAAM,MAAM,WAAWF,GAAQ,OAAO;AAAA,IAAA;AAE1C,IAAAH,EAAG,IAAI,WAAWI,CAAI,CAAC;AAAA,EAC3B;AACJ,EAAE,SAEOE,IAAYC,EAAUV,EAAM,YAAYE,CAAc;"}