diff --git a/arkoala-arkts/arkui/arktsconfig-unmemoized.json b/arkoala-arkts/arkui/arktsconfig-unmemoized.json index 0f382e2b007dce7c22304cd3851d2a7b45ba907c..399c60f244d3eb2e6a5fe940b240e762059e0115 100644 --- a/arkoala-arkts/arkui/arktsconfig-unmemoized.json +++ b/arkoala-arkts/arkui/arktsconfig-unmemoized.json @@ -1,21 +1,24 @@ { "compilerOptions": { + "package": "@koalaui/arkts-arkui", "outDir": "build/abc", - "baseUrl": ".", + "baseUrl": "./build/unmemoized/src", "paths": { - "#components": ["./build/unmemoized/src/generated/arkts"], - "#arkcompat/*": ["../../arkoala/arkui-common/build/unmemoized/src/arkts/*"], - "@koalaui/arkui-common": ["../../arkoala/arkui-common/build/unmemoized/src/arkts"], - "@koalaui/arkts-arkui": ["./build/unmemoized/src"], - "@koalaui/arkts-arkui/*": ["./build/unmemoized/src/*"], - "@koalaui/interop": ["../../interop/src/arkts"], - "@koalaui/common": ["../../incremental/common/src"], - "@koalaui/compat": ["../../incremental/compat/src/arkts"], - "@koalaui/runtime": ["../../incremental/runtime/build/unmemoized/src"] + "#components": ["./generated/arkts"], + "#arkcompat/*": ["../../../../../arkoala/arkui-common/build/unmemoized/src/arkts/*"], + "#arkstate": ["../../../../../arkoala/arkui-common/build/unmemoized/src"], + "@koalaui/arkui-common": ["../../../../../arkoala/arkui-common/build/unmemoized/src"], + "@koalaui/arkts-arkui": ["./"], + "@koalaui/arkts-arkui/*": ["./*"], + "@koalaui/interop": ["../../../../../interop/src/arkts"], + "@koalaui/common": ["../../../../../incremental/common/src"], + "@koalaui/compat": ["../../../../../incremental/compat/src/arkts"], + "@koalaui/runtime": ["../../../../../incremental/runtime/build/unmemoized/src"], + "#helpindexarkui": ["index.ts"] } }, "include": [ - "build/unmemoized/src/**/*.ts" + "build/unmemoized/src/**/*.ts", "build/unmemoized/src/*.ts" ], "exclude": [ "**/index.ts", diff --git a/arkoala-arkts/arkui/src/Application.ts b/arkoala-arkts/arkui/src/Application.ts index 9269973a92f5ba5318730a07c199d2d75086b3d4..8f403e57371e662a77945863147df19ef2776af4 100644 --- a/arkoala-arkts/arkui/src/Application.ts +++ b/arkoala-arkts/arkui/src/Application.ts @@ -358,4 +358,5 @@ function makeClickEvent(x: number, y: number): ClickEvent { y: y, preventDefault: () => {} } -} \ No newline at end of file +} + diff --git a/arkoala-arkts/arkui/src/ForEach.ts b/arkoala-arkts/arkui/src/ForEach.ts index a7b27089b6345d686499d5c4bcda768a95cd196d..c3cec55c0b5a2b34294552bb1dbc37d7e8e01d0a 100644 --- a/arkoala-arkts/arkui/src/ForEach.ts +++ b/arkoala-arkts/arkui/src/ForEach.ts @@ -26,5 +26,5 @@ export function ForEach(data: Array, ) { RepeatByArray(data, (element: T, index: int32) => keyGenerator ? hashCodeFromString(keyGenerator!(element, (index as number))) : index, - (element: T, index: int32) => itemGenerator(element, (index as number))) + (element: T, index: int32) => { itemGenerator(element, (index as number)) }) } diff --git a/arkoala-arkts/arkui/src/LazyForEach.ts b/arkoala-arkts/arkui/src/LazyForEach.ts index 045a076c52198c1be89a0ff34b7514721ab7f61e..6dfc36cdaef1d9b3a4e0cc09d2f848af531f34a6 100644 --- a/arkoala-arkts/arkui/src/LazyForEach.ts +++ b/arkoala-arkts/arkui/src/LazyForEach.ts @@ -138,7 +138,7 @@ export function LazyForEach(dataSource: IDataSource, memoEntry2( __context(), generator(element, index), - (element: T, index: number): void => itemGenerator(element, index), + (element: T, index: number): void => { itemGenerator(element, index) }, element, index ) diff --git a/arkoala-arkts/shopping/arktsconfig-run-unmemoized.json b/arkoala-arkts/shopping/arktsconfig-run-unmemoized.json index b8bb898722da2088c5cdc38527240e130fefe1e4..20e3c0651ba086394c410c809a0bd0fe4e56853d 100644 --- a/arkoala-arkts/shopping/arktsconfig-run-unmemoized.json +++ b/arkoala-arkts/shopping/arktsconfig-run-unmemoized.json @@ -1,8 +1,6 @@ { - "include": [ - "./build/unmemoized/**/*.ts" - ], "compilerOptions": { + "package": "@koalaui/shopping", "outDir": "build/abc", "baseUrl": ".", "paths": { @@ -21,9 +19,6 @@ "@koalaui/arkts-arkui": [ "../arkui/build/unmemoized/src" ], - "@koalaui/arkts-arkui/ohos.router": [ - "../arkui/build/unmemoized/src/ohos.router.ts" - ], "@koalaui/interop": [ "../../interop/src/arkts" ], @@ -31,7 +26,7 @@ "../arkui/build/unmemoized/src/generated/arkts" ], "@koalaui/arkui-common": [ - "../../arkoala/arkui-common/build/unmemoized/src/arkts" + "../../arkoala/arkui-common/build/unmemoized/src", "../../arkoala/arkui-common/build/unmemoized/src/arkts" ], "#arkcompat": [ "../../arkoala/arkui-common/build/unmemoized/src/arkts" @@ -41,5 +36,8 @@ "@ohos.hilog":{"language" : "js", "hasDecl" : false}, "@bundle:com.arkoala.app/entry/ets/jsFiles/pure" : {"language" : "js", "hasDecl" : false} } - } + }, + "include": [ + "./build/unmemoized/**/*.ts" + ] } diff --git a/arkoala-arkts/shopping/src/ets/pages/index-entry.ets b/arkoala-arkts/shopping/src/ets/pages/index-entry.ets index fcd6e8dd36b10cb4e26bdc35c0ccdbdd19d75bd8..c075dc927c542d9e6824d45df22546f2936acb08 100644 --- a/arkoala-arkts/shopping/src/ets/pages/index-entry.ets +++ b/arkoala-arkts/shopping/src/ets/pages/index-entry.ets @@ -23,6 +23,18 @@ import { Detail } from './detailPage/detail' import { SearchPage } from './search/searchPage' //import mediaquery from '@ohos.mediaquery'; import { SearchParam } from '../model/routeModel' + +@Builder +function shoppingRouter(name: string, param: Object) { + if (name === 'detailPage') { + Detail() + } else if (name === 'searchPage') { + // Arkoala: original Shopping passed param to SearchPage + // But it does not good. + SearchPage() + } +} + @Entry @Component struct Index { @@ -50,18 +62,6 @@ struct Index { } } */ - @Builder - shoppingRouter(name: string, param: Object) { - if (name === 'detailPage') { - Detail() - } else if (name === 'searchPage') { - // Arkoala: original Shopping passed param to SearchPage - // But it does not good. - SearchPage() - } - - - } build() { Stack() { @@ -123,7 +123,7 @@ struct Index { } .mode(NavigationMode.Stack) .hideTitleBar(true) - .navDestination(this.shoppingRouter) + .navDestination(shoppingRouter) } .margin({top:50, bottom: 50} as Padding) } diff --git a/arkoala-arkts/user/arktsconfig-run-unmemoized.json b/arkoala-arkts/user/arktsconfig-run-unmemoized.json index 0ff90ba8a6573ec0e0b96dcefe1f02db0105c7e1..663efbf66c71f1adf9550edc258d81801d296317 100644 --- a/arkoala-arkts/user/arktsconfig-run-unmemoized.json +++ b/arkoala-arkts/user/arktsconfig-run-unmemoized.json @@ -1,8 +1,6 @@ { - "include": [ - "./build/unmemoized/**/*.ts" - ], "compilerOptions": { + "package": "@koalaui/user", "outDir": "build/abc", "baseUrl": ".", "paths": { @@ -21,9 +19,6 @@ "@koalaui/arkts-arkui": [ "../arkui/build/unmemoized/src" ], - "@koalaui/arkts-arkui/ohos.router": [ - "../arkui/build/unmemoized/src/ohos.router.ts" - ], "@koalaui/interop": [ "../../interop/src/arkts" ], @@ -31,11 +26,15 @@ "../arkui/build/unmemoized/src/generated/arkts" ], "@koalaui/arkui-common": [ - "../../arkoala/arkui-common/build/unmemoized/src/arkts" + "../../arkoala/arkui-common/build/unmemoized/src", "../../arkoala/arkui-common/build/unmemoized/src/arkts" ], "#arkcompat": [ "../../arkoala/arkui-common/build/unmemoized/src/arkts" - ] + ], + "#arkstate": ["../../arkoala/arkui-common/build/unmemoized/src"] } - } + }, + "include": [ + "./build/unmemoized/**/*.ts" + ] } diff --git a/arkoala/arkui-common/arktsconfig.json b/arkoala/arkui-common/arktsconfig.json index 5e154406a50c7faaea3ff487a19d1d8ba9afa90d..a64cf68943381b191c3da8b67efaa7b01fdd951c 100644 --- a/arkoala/arkui-common/arktsconfig.json +++ b/arkoala/arkui-common/arktsconfig.json @@ -1,32 +1,35 @@ { "compilerOptions": { + "package": "@koalaui/arkui-common", "outDir": "./build/abc", - "baseUrl": ".", + "baseUrl": "./build/unmemoized/src", "paths": { "@koalaui/common": [ - "../../incremental/common/src" + "../../../../../incremental/common/src" ], "@koalaui/runtime": [ - "../../incremental/runtime/build/unmemoized/src" - ], - "@koalaui/compat": [ - "../../incremental/compat/src" + "../../../../../incremental/runtime/build/unmemoized/src" ], "#arkcompat/*": [ - "./build/unmemoized/src/arkts/*" + "./../../../build/unmemoized/src/arkts/*" ], "#platform": [ - "../../incremental/compat/src/arkts" - ] + "../../../../../incremental/compat/src/arkts" + ], + "@koalaui/compat": [ + "../../../../../incremental/compat/src/arkts", "../../../../../incremental/compat/src" + ], + "@koalaui/arkui-common": ["../"] } }, "include": [ "build/unmemoized/src/**/*.ts" ], "exclude": [ - "**/index.ts", "build/unmemoized/src/ts/**/*", - "build/unmemoized/src/typescript/**/*" + "build/unmemoized/src/typescript/**/*", + "build/unmemoized/src/arkts/index.ts", + "#platform" ], "references": [ { diff --git a/arkoala/arkui-common/scripts/download-interface-sdk.mjs b/arkoala/arkui-common/scripts/download-interface-sdk.mjs index 17731168d518e9758a748ae43fa6b7b004695c7e..2fca65ea0c009e1284cf7ffb538c4d943ce086a8 100644 --- a/arkoala/arkui-common/scripts/download-interface-sdk.mjs +++ b/arkoala/arkui-common/scripts/download-interface-sdk.mjs @@ -25,20 +25,18 @@ const sdkInfo = JSON.parse(fs.readFileSync(path.join(__dirname, "ohos-sdk.json") const dir = "./interface_sdk-js" -if (fs.existsSync(dir)) { - //execSync(`cd ${dir} && git pull`) -} else { - console.log("Downloading sdk") - execSync("git clone https://gitee.com/openharmony/interface_sdk-js.git") +if (!fs.existsSync(dir)) { + fs.mkdirSync(dir) } +execSync(`cd interface_sdk-js`) +execSync(`git init`, { cwd: dir }) +execSync(`git remote add origin https://gitee.com/openharmony/interface_sdk-js.git`, { cwd: dir }) +console.log("Downloading sdk") +execSync(`num=0; until git fetch --depth 1 origin ${sdkInfo.hash}; do num=$((num+1)); if [[ $num -eq 5 ]]; then break; fi; done`, { cwd: dir }) +execSync(`git checkout FETCH_HEAD`, { cwd: dir }) const components = "interface_sdk-js/api/@internal/component/ets" const fakeComponents = "fake-interface-sdk-declarations/" // TODO: We need patch sdk -fs.cpSync( - path.join(fakeComponents, "koala-extensions.d.ts"), - path.join(components, "koala-extensions.d.ts"), - { recursive: true } -) -execSync(`cd interface_sdk-js && git fetch origin && git checkout ${sdkInfo.hash}`) \ No newline at end of file +fs.cpSync(path.join(fakeComponents, "koala-extensions.d.ts"), path.join(components, "koala-extensions.d.ts"), { recursive: true }) diff --git a/arkoala/arkui/arktsconfig.json b/arkoala/arkui/arktsconfig.json index cb77bc014ca66b315f0958c5665d8ac464f6af56..5964d8a7e1d01778c871ed7e0e1e3de7c9a17035 100644 --- a/arkoala/arkui/arktsconfig.json +++ b/arkoala/arkui/arktsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { + "package": "@arkoala/arkui", "baseUrl": ".", "outDir": "build", "paths": { diff --git a/arkoala/framework/native/src/generated/bridge_custom.cc b/arkoala/framework/native/src/generated/bridge_custom.cc index da7672d72c226c4d5826eb9ef0eed4007e5483fd..ab84e18a465c4601b7c492eea2e616d7ba9ddf0a 100644 --- a/arkoala/framework/native/src/generated/bridge_custom.cc +++ b/arkoala/framework/native/src/generated/bridge_custom.cc @@ -464,6 +464,8 @@ KVMObjectHandle impl_LoadUserView(KVMContext vm, const KStringPtr& viewClass, co std:: string className(viewClass.c_str()); // TODO: hack, fix it! if (className == "ViewLoaderApp") className = "Page.App"; + if (className == "Page.ViewShoppingApp") className = "@koalaui.shopping.build.unmemoized.src.Page.ViewShoppingApp"; + if (className == "Page.ViewTrivialApp") className = "@koalaui.user.build.unmemoized.src.Page.ViewTrivialApp"; std::replace(className.begin(), className.end(), '.', '/'); ets_class viewClassClass = env->FindClass(className.c_str()); if (!viewClassClass) { @@ -474,6 +476,7 @@ KVMObjectHandle impl_LoadUserView(KVMContext vm, const KStringPtr& viewClass, co } return nullptr; } + ets_method viewClassCtor = env->Getp_method(viewClassClass, "", "Lstd/core/String;:V"); if (!viewClassCtor) { fprintf(stderr, "Cannot find user class ctor\n"); diff --git a/incremental/common/arktsconfig.json b/incremental/common/arktsconfig.json index c5cf554c77a30e87dfa5674338bbd55efd0cca41..dcacec76b99a9d7f60c6f2f3a3b18c1a87480bea 100644 --- a/incremental/common/arktsconfig.json +++ b/incremental/common/arktsconfig.json @@ -1,13 +1,13 @@ { "compilerOptions": { + "package": "@koalaui/common", "outDir": "build/abc", - "baseUrl": ".", + "baseUrl": "./src", "paths": { - "@koalaui/compat": ["../compat/src/arkts"] + "@koalaui/compat": ["../../compat/src/arkts"] } }, "include": ["src/**/*.ts"], - "exclude": ["src/index.ts"], "references": [ { "path": "../compat" } ] diff --git a/incremental/compat/arktsconfig.json b/incremental/compat/arktsconfig.json index 617e2e88a7716ae9fbb764c31101f7cd09ce481d..6b515b376363ad6fa66a8d74cde7c9c3987dd1e4 100644 --- a/incremental/compat/arktsconfig.json +++ b/incremental/compat/arktsconfig.json @@ -1,11 +1,14 @@ { "compilerOptions": { + "package": "@koalaui/compat", "outDir": "build/abc", - "rootDir": "./src", + "rootDir": "./src/arkts", + "baseUrl": "./src/arkts", "paths": { - "#platform": ["./src/arkts"] + "#platform": ["./"], + "@koalaui/compat": ["../"] } }, "include": ["src/index.ts", "src/arkts/**/*.ts"], - "exclude": ["src/arkts/index.ts"] + "exclude": ["./src/arkts/index.ts"] } diff --git a/incremental/demo-playground/arktsconfig-run-unmemoized.json b/incremental/demo-playground/arktsconfig-run-unmemoized.json index d46697e55e18902cf2e7e9db6bdbb6e254137b68..06d34f192f562f7f333f7af937898331782a1a5b 100644 --- a/incremental/demo-playground/arktsconfig-run-unmemoized.json +++ b/incremental/demo-playground/arktsconfig-run-unmemoized.json @@ -1,5 +1,6 @@ { "compilerOptions": { + "package": "@koalaui/demo", "outDir": "build", "baseUrl": ".", "paths": { diff --git a/incremental/demo-playground/arktsconfig.json b/incremental/demo-playground/arktsconfig.json index 95119c938835a6e20baa46e34a04b3fdb5d009c0..9f073f903eacd806faea42963782d7a0c1ed05b7 100644 --- a/incremental/demo-playground/arktsconfig.json +++ b/incremental/demo-playground/arktsconfig.json @@ -1,5 +1,6 @@ { "compilerOptions": { + "package": "@koalaui/demo", "outDir": "build/abc", "baseUrl": ".", "paths": { diff --git a/incremental/demo-playground/package.json b/incremental/demo-playground/package.json index e2da19fda1a16e63a51799a7c6103da9115a7703..6b06290c116dd759d7a144590ca6e9495b996441 100644 --- a/incremental/demo-playground/package.json +++ b/incremental/demo-playground/package.json @@ -27,7 +27,7 @@ "run": "npm run compile && node lib/js/app.js", "run:unmemoizing": "npm run compile:unmemoizing && node lib/unmemoized/js/app.js", "run:panda": "bash ../tools/panda/arkts/ark build/abc/src/main.abc --ark-boot-files $(find ../compat/build/abc ../common/build/abc/ ../runtime/build/abc/ -name '*.abc' | paste -sd ':' -) --ark-entry-point main.ETSGLOBAL::main", - "run:panda:unmemoizing:linked": "bash ../tools/panda/arkts/ark build/unmemoized/src/main.abc --ark-boot-files ../runtime/build/incremental.abc --ark-entry-point main.ETSGLOBAL::main", + "run:panda:unmemoizing:linked": "bash ../tools/panda/arkts/ark build/unmemoized/src/main.abc --ark-boot-files ../runtime/build/incremental.abc --ark-entry-point @koalaui.demo.build.unmemoized.src.main.ETSGLOBAL::main", "run:panda:unmemoizing": "npm run compile:arkts:unmemoizing && npm run build:incremental:inc --prefix ../runtime && npm run run:panda:unmemoizing:linked", "clean:unmemoized": "rimraf unmemoized", "clean": "rimraf build unmemoized" diff --git a/incremental/runtime/arktsconfig-run-unmemoized.json b/incremental/runtime/arktsconfig-run-unmemoized.json index 40d8c5824854151ed0d19a9274c7c694567e1758..b2d38a2786582539c24ffced380094cb833dbb4a 100644 --- a/incremental/runtime/arktsconfig-run-unmemoized.json +++ b/incremental/runtime/arktsconfig-run-unmemoized.json @@ -1,14 +1,14 @@ { "compilerOptions": { + "package": "@koalaui/runtime", "outDir": "build/unmemoized/abc", - "baseUrl": ".", + "baseUrl": "./build/unmemoized/src", "paths": { - "@koalaui/common": ["../common/src"], - "@koalaui/compat": ["../compat/src/arkts"] + "@koalaui/common": ["../../../../common/src"], + "@koalaui/compat": ["../../../../compat/src/arkts"] } }, - "include": ["build/unmemoized/src/**/*.ts"], - "exclude": ["build/unmemoized/src/**/index.ts"], + "include": ["build/unmemoized/src/**/*.ts", "build/unmemoized/src/*.ts"], "references": [ { "path": "../common" }, { "path": "../compat" } diff --git a/incremental/runtime/arktsconfig.json b/incremental/runtime/arktsconfig.json index 7e914a99a92f8a9f6e00c5f64202937ded52fc49..f2abbcdadb140d4f85f00992bfdabba147523d53 100644 --- a/incremental/runtime/arktsconfig.json +++ b/incremental/runtime/arktsconfig.json @@ -1,10 +1,11 @@ { "compilerOptions": { + "package": "@koalaui/runtime", "outDir": "build/abc", - "baseUrl": ".", + "baseUrl": "./src", "paths": { - "@koalaui/common": ["../common/src"], - "@koalaui/compat": ["../compat/src/arkts"] + "@koalaui/common": ["../../common/src"], + "@koalaui/compat": ["../../compat/src/arkts"] } }, "include": ["./src/**/*.ts"], diff --git a/incremental/runtime/src/memo/bind.ts b/incremental/runtime/src/memo/bind.ts index c74f8ef3ea8d31b2628a63f84434489fa90e9327..67e56e2d42f6533e7a4555ec3f1be9a2c0dc3efb 100644 --- a/incremental/runtime/src/memo/bind.ts +++ b/incremental/runtime/src/memo/bind.ts @@ -64,7 +64,7 @@ export function memoBind( { return ( /** @memo */ - () => item(value) + () => { item(value) } ) } @@ -78,7 +78,7 @@ export function memoBind2( { return ( /** @memo */ - () => item(value1, value2) + () => { item(value1, value2) } ) } @@ -93,7 +93,7 @@ export function memoPartialBind2_1( { return ( /** @memo */ - (arg2: T2) => item(value1, arg2) + (arg2: T2) => { item(value1, arg2) } ) } @@ -108,6 +108,6 @@ export function memoPartialBind3_2( { return ( /** @memo */ - (arg2: T2, arg3: T3) => item(value1, arg2, arg3) + (arg2: T2, arg3: T3) => { item(value1, arg2, arg3) } ) } diff --git a/incremental/tools/panda/arkts/arktsc.js b/incremental/tools/panda/arkts/arktsc.js index 70043517c2d8a53b6c9e9efbd24e8e2bc1548167..e86b1158c03175fc76e7aab1b0f0b4607105c21c 100644 --- a/incremental/tools/panda/arkts/arktsc.js +++ b/incremental/tools/panda/arkts/arktsc.js @@ -72,4 +72,5 @@ child.on('exit', (code, signal) => { console.log(`Received signal: ${signal} from '${formatCommand(cmd.join(' '), process.cwd())}'`) process.exit(1) } -}) \ No newline at end of file +}) + diff --git a/incremental/tools/panda/build_panda_sdk.mjs b/incremental/tools/panda/build_panda_sdk.mjs index 093c504be09ddad4b4ec1f3be9975f71a3f77279..d3138640442d0594e94cc5031940534fca506888 100644 --- a/incremental/tools/panda/build_panda_sdk.mjs +++ b/incremental/tools/panda/build_panda_sdk.mjs @@ -103,13 +103,16 @@ function makeDir(path) { } function makeSymlink(target, dest) { - if (fs.lstatSync(dest).isDirectory()) { - fs.rmdirSync(dest, { recursive: true, force: true }) - fs.cpSync(target, dest, { recursive: true }) - } else { - if (fs.existsSync(dest)) { + if (fs.existsSync(dest)) { + if (fs.lstatSync(dest).isDirectory()) { + fs.rmdirSync(dest, { recursive: true, force: true }) + } else { fs.unlinkSync(dest) } + } + if (fs.lstatSync(target).isDirectory()) { + fs.cpSync(target, dest, { recursive: true }) + } else { fs.symlinkSync(target, dest) } } diff --git a/interop/arktsconfig.json b/interop/arktsconfig.json index 65d20bf9630bdb82ec7367811780e6b8b6b77d7f..f2491e241cb58717317dc9b6e071169ea4a468a7 100644 --- a/interop/arktsconfig.json +++ b/interop/arktsconfig.json @@ -1,15 +1,15 @@ { "compilerOptions": { + "package": "@koalaui/interop", "outDir": "build/abc", - "baseUrl": ".", + "baseUrl": "./src/arkts", "paths": { - "@koalaui/compat": ["../incremental/compat/src/arkts"], - "@koalaui/common": ["../incremental/common/src"], - "#common/wrappers/*": ["./src/napi/wrappers/*"] + "@koalaui/compat": ["../../../incremental/compat/src/arkts"], + "@koalaui/common": ["../../../incremental/common/src"], + "#common/wrappers/*": ["./../../src/napi/wrappers/*"] } }, - "include": ["src/arkts/*.sts", "src/interop/ResourceManager.ts"], - "exclude": ["*/**/index.sts"], + "include": ["src/arkts/*.sts", "src/arkts/ResourceManager.ts", "./index.ts"], "references": [ { "path": "../incremental/common" }, { "path": "../incremental/compat" } diff --git a/interop/index.ts b/interop/index.ts deleted file mode 100644 index ac57d1240ec618f291f4624f135240eb8c6bde18..0000000000000000000000000000000000000000 --- a/interop/index.ts +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright (c) 2022-2023 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - diff --git a/interop/src/interop/ResourceManager.ts b/interop/src/arkts/ResourceManager.ts similarity index 97% rename from interop/src/interop/ResourceManager.ts rename to interop/src/arkts/ResourceManager.ts index 7eaa6d2e5ac4b858805aed7bf9398e194e6fc876..fca2c6eea66f4c585fc358a062cef740413e8d3c 100644 --- a/interop/src/interop/ResourceManager.ts +++ b/interop/src/arkts/ResourceManager.ts @@ -15,8 +15,6 @@ import { int32 } from "@koalaui/common" -// todo maybe move this class to @koalaui/interop ? - export type ResourceId = int32 interface ResourceInfo { diff --git a/interop/src/arkts/index.sts b/interop/src/arkts/index.sts index 8ac2223d6653f97123fdc4abb584583f728f462a..ca8f8b5555438be8e220bc1d0bd4b9e429aaaced 100644 --- a/interop/src/arkts/index.sts +++ b/interop/src/arkts/index.sts @@ -16,6 +16,6 @@ export * from "./InteropTypes" export * from "./callback" export * from "./buffer" -export * from "../interop/ResourceManager" +export * from "./ResourceManager" export * from "./NativeBuffer" export * from "./InteropNativeModule" diff --git a/interop/src/cpp/common-interop.cc b/interop/src/cpp/common-interop.cc index c52cb340fa45798505436b01921b5f27b2874b0d..be40b75b4561cea35098ac00719cb95ac0da410d 100644 --- a/interop/src/cpp/common-interop.cc +++ b/interop/src/cpp/common-interop.cc @@ -447,4 +447,5 @@ KStringPtr impl_StdStringToString(KVMContext vmContext, KNativePointer stringPtr return result; } KOALA_INTEROP_CTX_1(StdStringToString, KStringPtr, KNativePointer) -#endif \ No newline at end of file +#endif + diff --git a/interop/src/cpp/ets/convertors-ets.cc b/interop/src/cpp/ets/convertors-ets.cc index 9b262c34f10f0ef9578e0c2542ad7a788cea3fce..6df3373d358afcae0fb26607615766588d456637 100644 --- a/interop/src/cpp/ets/convertors-ets.cc +++ b/interop/src/cpp/ets/convertors-ets.cc @@ -18,7 +18,7 @@ #include "signatures.h" #include "interop-logging.h" -static const char* nativeModule = "NativeModule/NativeModule"; +static const char* nativeModule = "@koalaui/arkts-arkui/generated/arkts/NativeModuleLoader/NativeModuleLoader"; static const char* callCallbackFromNative = "callCallbackFromNative"; static const char* callCallbackFromNativeSig = "I[BI:I"; @@ -53,18 +53,18 @@ static bool registerNatives(ets_env *env, const ets_class clazz, const std::vect return registerByOne ? true : result; } -// Init function name depends on native class name and the file name where this class is defined +// Init function name depends on native class name and the module qualified name where this class is defined // This information should be provided during compilation of native module // TODO Update build scripts and remove default values #ifndef ETS_NATIVE_MODULE_CLASS_NAME #define ETS_NATIVE_MODULE_CLASS_NAME NativeModuleLoader -#define ETS_NATIVE_MODULE_FILE_NAME NativeModuleLoader +#define ETS_NATIVE_MODULE_QUALIFIED_NAME _00040koalaui_arkts_0002darkui_generated_arkts_NativeModuleLoader #endif // expected ArkTS function signature - static native init(modules: string[]): void -#define NATIVE_MODULE_INIT_FUNC_(cls, file) ETS_ ## file ## _ ## cls ## _init___3Lstd_core_String_2 -#define NATIVE_MODULE_INIT_FUNC(cls, file) NATIVE_MODULE_INIT_FUNC_(cls, file) -#define NATIVE_MODULE_INIT NATIVE_MODULE_INIT_FUNC(ETS_NATIVE_MODULE_CLASS_NAME, ETS_NATIVE_MODULE_FILE_NAME) +#define NATIVE_MODULE_INIT_FUNC_(cls, moduleName) ETS_ ## moduleName ## _ ## cls ## _init___3Lstd_core_String_2 +#define NATIVE_MODULE_INIT_FUNC(cls, moduleName) NATIVE_MODULE_INIT_FUNC_(cls, moduleName) +#define NATIVE_MODULE_INIT NATIVE_MODULE_INIT_FUNC(ETS_NATIVE_MODULE_CLASS_NAME, ETS_NATIVE_MODULE_QUALIFIED_NAME) #define ETS_NATIVE_MODULE_CLASS_NAME_STR KOALA_QUOTE(ETS_NATIVE_MODULE_CLASS_NAME) @@ -116,6 +116,9 @@ bool registerAllModules(ets_env *env, ets_objectArray etsModuleMapping) { for (auto it = moduleNames.begin(); it != moduleNames.end(); ++it) { std::string className = fullClassName(moduleMapping, *it); + if (className == "ArkUIGeneratedNativeModule/ArkUIGeneratedNativeModule") className = "@koalaui/arkts-arkui/generated/arkts/ArkUIGeneratedNativeModule/ArkUIGeneratedNativeModule"; + if (className == "InteropNativeModule/InteropNativeModule") className = "@koalaui/interop/InteropNativeModule/InteropNativeModule"; + if (className == "ArkUINativeModule/ArkUINativeModule") className = "@koalaui/arkts-arkui/generated/arkts/ArkUINativeModule/ArkUINativeModule"; ets_class nativeModule = !splitPerModule ? defaultNativeModule : env->FindClass(className.c_str()); if (nativeModule == nullptr) { LOGE("Cannot find managed class %s", className.c_str()); @@ -131,6 +134,7 @@ bool registerAllModules(ets_env *env, ets_objectArray etsModuleMapping) { // TODO: EtsNapiOnLoad() hook shall be used to register native, but unfortunately, env->FindClass("NativeModule.NativeModule") // returns null. + extern "C" ETS_EXPORT void NATIVE_MODULE_INIT(ets_env *env, ets_class clazz, ets_objectArray moduleMapping) { registerAllModules(env, moduleMapping); setKoalaEtsNapiCallbackDispatcher(env, clazz, callCallbackFromNative, callCallbackFromNativeSig); diff --git a/interop/src/cpp/ets/convertors-ets.h b/interop/src/cpp/ets/convertors-ets.h index 4083921f14ded7bae1ac6f6abac36390623f4d84..f58fb3f35308f8dc941b648c41a29041dd701933 100644 --- a/interop/src/cpp/ets/convertors-ets.h +++ b/interop/src/cpp/ets/convertors-ets.h @@ -133,7 +133,7 @@ struct InteropTypeConverter { const static ets_class double_class = env->FindClass("std/core/Double"); const static ets_class int_class = env->FindClass("std/core/Int"); const static ets_class string_class = env->FindClass("std/core/String"); - const static ets_class resource_class = env->FindClass("ArkResourceInterfaces/Resource"); + const static ets_class resource_class = env->FindClass("@koalaui/arkts-arkui/generated/ArkResourceInterfaces/Resource"); if (env->IsInstanceOf(value, double_class)) { const static ets_method double_p = env->Getp_method(double_class, "unboxed", ":D"); diff --git a/interop/src/cpp/vmloader.cc b/interop/src/cpp/vmloader.cc index 1c2debf6ef5bf3fdbbfbfc18abc9821fb813f617..56cdac2b57ecd6eefd9293da0df88d69d0fd19aa 100644 --- a/interop/src/cpp/vmloader.cc +++ b/interop/src/cpp/vmloader.cc @@ -310,9 +310,9 @@ const AppInfo javaAppInfo = { #ifdef KOALA_ETS_NAPI const AppInfo pandaAppInfo = { - "Application/Application", + "@koalaui/arkts-arkui/Application/Application", "createApplication", - "Lstd/core/String;Lstd/core/String;Z:LApplication/Application;", + "Lstd/core/String;Lstd/core/String;Z:L@koalaui/arkts-arkui/Application/Application;", "start", ":J", "enter", diff --git a/interop/src/interop/index.ts b/interop/src/interop/index.ts index 9606ea79432c4fdb60fc78c2319ef89cf45493af..db9ade1b1ebfb7efe6b61e9fa9aea69d64ecff5b 100644 --- a/interop/src/interop/index.ts +++ b/interop/src/interop/index.ts @@ -64,7 +64,7 @@ export * from "./InteropTypes" export * from "./InteropOps" export * from "./buffer" -export * from "./ResourceManager" +export * from "../arkts/ResourceManager" export * from "./NativeBuffer" export { registerLoadedLibrary, registerNativeModule } from "./loadLibraries" export { InteropNativeModule } from "./InteropNativeModule"