{"version":3,"file":"index.mjs","names":[],"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"],"mappings":";;;;;;;;AAUA,IAAI,IAAU,QAAQ,IAAI;AAC1B,AACI,MAAU,EAAK,QACX,WACA,QACI,EAAW,EAAc,QAAQ,UAAU,QAAQ,MAAM,CAAM,CAAC,CACxE;AAIJ,IAAM,EACF,SAAS,EAAE,iBACX,aACA,EAAO,GAAS,EAChB,YAAY;CACR,MAAM;EAAC,EAAQ;EAAK,EAAQ;EAAO,EAAQ;CAAQ;CACnD,SAAS,EAAQ;AACrB,EACJ,CAAC,GAgBY,IAAY,GAAW,GAAQ,GAAQ,MACzC,EAAW,EAAI,CAAM,GAAG,GAAQ,CAAE,IAhBrB,MACpB,IAAI,GACC,GAAU,MAAmB;CAM1B,EAAG,IALc,WACb,EAAc,GAAK,GAAG,OAAO,CAAM,CAAC,EAAE,MAAM,GAC5C,GACA,OAAO,CAAM,CAEd,CAAI;AACX,GACA;CACI,SAAS,EAAQ;CACjB,MAAM,CAAC,EAAQ,KAAK,EAAQ,KAAK;AACrC,CACJ,EAAE,GAGW"}