From 767c99bb7a14c5490ce2cceb57ba0e1c6a96b43f Mon Sep 17 00:00:00 2001 From: shitao Date: Thu, 28 Aug 2025 15:59:06 +0800 Subject: [PATCH] Hybrid support aop Issue: ICV8Z3 Signed-off-by: shitao --- ets2panda/driver/build_system/package.json | 3 ++- ets2panda/driver/build_system/src/entry.ts | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/ets2panda/driver/build_system/package.json b/ets2panda/driver/build_system/package.json index 1b1672985c..25d9739b0e 100644 --- a/ets2panda/driver/build_system/package.json +++ b/ets2panda/driver/build_system/package.json @@ -68,7 +68,8 @@ "rimraf": "6.0.1", "ts-node": "^10.9.2", "ts-jest": "^29.1.1", - "typescript": "^5.0.0" + "typescript": "^5.0.0", + "ffi-napi": "^4.0.3" }, "babel": { "presets": [ diff --git a/ets2panda/driver/build_system/src/entry.ts b/ets2panda/driver/build_system/src/entry.ts index b590749038..33551e686f 100644 --- a/ets2panda/driver/build_system/src/entry.ts +++ b/ets2panda/driver/build_system/src/entry.ts @@ -65,3 +65,23 @@ function main(): void { if (require.main === module) { main(); } + +function transformLib(soPath: string, dynamicAbcPath: string, staticAbcPath: string): void { + try { + const ffi = require('ffi-napi'); + + const dllObj = ffi.Library(soPath, { + 'Transform': ['int', ['string']], + 'TransformHybrid': ['int', ['string', 'string']] + }); + + let result: number = dllObj.Transform(dynamicAbcPath); + console.info(`Transform result: ${result}`); + result = dllObj.TransformHybrid(dynamicAbcPath, staticAbcPath); + console.info(`TransformHybrid result: ${result}`); + } catch (e) { + console.error('transformLib error: ', e); + } +} + +exports.transformLib = transformLib; \ No newline at end of file -- Gitee