{"version":3,"file":"index.mjs","names":[],"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"],"mappings":";;;;;;;;;;;;AAiBA,IAAM,IAAY,EAHC,EAAc,OAAO,KAAK,GAGnB,CAAU,GAEhC,IAAU,QAAQ,IAAI;AAC1B,AACI,MAAU,EAAK,QACX,GACA,QACI,EAAW,EAAc,QAAQ,UAAU,QAAQ,MAAM,CAAM,CAAC,CACxE;AAwBJ,IAAa,IAAY,EArBX,EAAO,GAAS,EAC1B,YAAY;CACR,YAAY;EAAC;EAAW;EAAS;CAAU;CAC3C,QAAQ;AACZ,EACJ,CAgBmC,EAAM,aAfjB,MACpB,IAAI,EACA;CACI,YAAY,CAAC,WAAW,OAAO;CAC/B,QAAQ;AACZ,IACC,GAAU,MAAmB;CAC1B,IAAM,IAAO,EAAM,OACf,GACA,EAAM,MAAM,WAAW,GAAQ,OAAO,CAC1C;CACA,EAAG,IAAI,WAAW,CAAI,CAAC;AAC3B,CACJ,EAAE,OAE6D"}