diff --git a/FAQ.md b/FAQ.md index 1185f047194651cfb0a0498a578f70a72aeb6dd1..7c2e63c5c9e6b8e475c46f7dfe8feb569f6a406e 100644 --- a/FAQ.md +++ b/FAQ.md @@ -98,4 +98,19 @@ 问题定位:代码中后缀为gyp的文件中包含/*,但工具不能解析,只能解析#后面的注释,导致执行用例失败。 -问题解决:修改代码。 \ No newline at end of file +问题解决:修改代码。 + +## 6.Map类型的函数转换框架代码失败 + +问题描述:当待转换的ts文件中包含map数据类型,且书写方式为Map时,框架代码转换失败。 + + 2022-6-28 9:16:42 [ERR] @ohos.napitest.d.ts (17,20): Cannot find name 'Map'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2015' or later. + 2022-6-28 9:16:42 [INF] fail@ohos.napitest.d.ts (17,20): Cannot find name 'Map'. Do you need to change your target library? Try changing the 'lib' compiler option to 'es2015' or later. + +问题定位:当前代码不支持Map此种书写方式。 + +问题解决:当ts文件中包含Map书写方式的方法时,通过可执行文件方式进行框架代码转换之前安装@types/node依赖,即可转换成功,命令如下: + + npm install @types/node -D + +通过Intellij IDEA插件或VS Code插件转换时,不支持ts文件包含Map书写方式的方法,敬请期待后续更新解决方案。 \ No newline at end of file diff --git a/README_zh.md b/README_zh.md index 0cb39ff235f8d63ee4f48cab93532d07bc9fac3b..ba6a971617816311d233e263e0b6041305be90a2 100755 --- a/README_zh.md +++ b/README_zh.md @@ -11,18 +11,21 @@ ├── napi_generator # NAPI框架代码生成工具 │ ├── docs # 工具说明、版本规划 + │ ├── examples # 工具需要的文件样例 │ ├── figures # 图片资源文件 - │ ├── prebuilt # VS Code插件文件 + │ ├── napi_IntelliJ_plugin # Intellij IDEA插件代码 + │ ├── napi_vs_plugin # VS Code插件代码 │ ├── release-notes # 发布说明 │ ├── src # 工具源码 - | | ├── gen - │ | | ├── analyze # 解析器 - │ | | |── extend # 扩展模块,包括gn文件生成、linux环境适配代码等 + │ │ ├── gen + │ │ | ├── analyze # 解析器 + │ │ | |── extend # 扩展模块,包括gn文件生成、linux环境适配代码等 │ │ | |── generate # 生成器 │ │ | └── tools # 公共模块代码,包括消息体校验、文件读写、正则表达式转换等 - | | └── generator #IntelliJ IDEA插件代码 - | ├── examples # 工具需要的文件样例 - │ └── README # 工具使用指导 + │ │ └── generator #IntelliJ IDEA插件代码 + │ ├── test # UT、ST测试 + │ ├── FAQ # NAPI框架工具问题反馈 + │ └── README # 工具使用指导 ## 约束 系统:建议Ubuntu 20.04或者Windows 10 @@ -33,7 +36,7 @@ ### 使用对象 -工具的使用者 +系统开发者 ### 使用场景 @@ -42,15 +45,7 @@ ### 工具使用 -工具有三种类型,分别是可执行文件、VS Code插件、IntelliJ插件。其中的可执行文件可根据工具使用者的开发环境选择,支持Windows,Linux和Mac。 - -使用者可以根据自己的需要选择合适的工具,VS Code插件存放在以下路径: - -``` -napi_generator/prebuilt -``` - -可执行文件与IntelliJ插件下载路径如下,选择napi_generator_outputs.zip下载。 +工具有三种类型,分别是可执行文件、VS Code插件、IntelliJ插件。其中的可执行文件可根据工具使用者的开发环境选择,支持Windows,Linux和Mac。可执行文件、IntelliJ插件、VS Code插件下载路径如下,选择napi_generator_outputs.zip下载。 [下载链接](http://ftpkaihongdigi.i234.me:5000/fsdownload/PPVcNMgVv/2022-06-13) diff --git a/docs/DEVELOP_ZH.md b/docs/DEVELOP_ZH.md index 5e2a15cfc5fd58571f04c096326b4b78df54dbc3..2aa4553ef820dc37e12afd5f4463f5863aa5af33 100755 --- a/docs/DEVELOP_ZH.md +++ b/docs/DEVELOP_ZH.md @@ -134,7 +134,7 @@ #### 开发步骤 -1.将napi_generator目录下的可执行文件分别放置在napi_generator\src\generator\resources\cmds目录下对应系统的文件夹下。 +1.将napi_generator目录下的可执行文件分别放置在napi_generator/src/generator/resources/cmds目录下对应系统的文件夹下。 2.通过IntelliJ IDEA打开napi_generator/src/generator目录下的代码。 diff --git a/docs/INSTRUCTION_ZH.md b/docs/INSTRUCTION_ZH.md index 6988c19b4aa2c2b9eebf3c4f72aab6ea50bf69c6..b6d337aa61089b5705bb479adeea4c4c6658b9f5 100755 --- a/docs/INSTRUCTION_ZH.md +++ b/docs/INSTRUCTION_ZH.md @@ -1,23 +1,17 @@ # NAPI框架生成工具使用说明 ## 简介 -NAPI框架生成工具支持三种入口,分别是可执行程序、VS Code插件、IntelliJ插件,使用者可以根据自己的需要选择合适的工具,VS Code插件存放在以下路径: - -``` -napi_generator/prebuilt -``` - -可执行文件与IntelliJ插件下载路径如下,选择napi_generator_outputs.zip下载。 +NAPI框架生成工具支持三种入口,分别是可执行程序、VS Code插件、IntelliJ插件,使用者可以根据自己的需要选择合适的工具。可执行文件、IntelliJ插件、VS Code插件下载路径如下,选择napi_generator_outputs.zip下载。 [下载链接](http://ftpkaihongdigi.i234.me:5000/fsdownload/PPVcNMgVv/2022-06-13) 下载文件说明如下: - - │ | ├── generator.jar # IntelliJ插件 + │ │ |── generator.jar # IntelliJ插件 + │ │ |── gnapi-0.0.1.vsix # VS Code插件 │ │ |── napi_generator-linux # Linux可执行程序 │ │ |── napi_generator-win.exe # Windows可执行程序 - | | └── napi_generator-macos # Mac可执行程序 + │ │ └── napi_generator-macos # Mac可执行程序 ## 工具介绍 @@ -128,7 +122,6 @@ napi_generator的可执行程序方式和插件方式都具有预检查的功能 3)多级模块.d.ts文件转换。.../gen目录下存在@ohos.napi_.test.A.d.ts文件。命令执行成功后,gen目录中成功生成对应的文件,与指定路径下.d.ts文件转换效果图一致,转换命令如下: - E:\napi_generator\napi_generator-master\examples\gen>napi_generator-win.exe -f @ohos.napi_.test.A.d.ts #### Mac diff --git a/release-notes/napi_generator-1.0.md b/release-notes/napi_generator-1.0.md index 9accf94235c51210d7e062d61635624c512e2897..6f32853373d972909115f2e5059210f030b0a2cd 100644 --- a/release-notes/napi_generator-1.0.md +++ b/release-notes/napi_generator-1.0.md @@ -16,17 +16,17 @@

变量

-
  • 支持ts语言中string、number基础类型的变量/函数入参自动转换为C++类型
  • 支持ts语言中interface复合类型的变量/函数入参自动转换为C++类型
  • 支持ts语言中string、number、interface数组类型的变量/函数入参自动转换为C++类型
+
  • 支持ts语言中string、number、boolean基础类型的变量/函数入参自动转换为C++类型
  • 支持ts语言中interface复合类型的变量/函数入参自动转换为C++类型
  • 支持ts语言中enum复合类型变量/函数入参自动转换为C++类型
  • 支持ts语言中string、number、boolean、enum、interface数组类型的变量/函数入参自动转换为C++类型,且数组书写方式可以为array<>或[]两种
  • 支持ts语言中string、number、boolean、array、map、interface的map类型的变量/函数入参自动转换为C++类型,且map书写方式可以为{[key:string]:any}或Map<>两种

函数返回值

-
  • 支持ts语言中void、string、number、boolean、interface 数组类型的函数返回值自动转换为C++类型
  • 支持ts语言中string、number、interface、blean 数组类型的函数返回值自动转换为C++类型
+
  • 支持ts语言中void、string、number、boolean、interface的函数返回值自动转换为C++类型
  • 支持ts语言中string、number、interface、boolean、enum数组类型的函数返回值自动转换为C++类型,且数组书写方式可以为array<>或[]两种
  • 支持ts语言中enum(string、number)类型的函数返回值自动转换为C++类型

函数类型

-
  • 支持ts语言中返回值、callback类型的同步函数自动转换为C++类型
  • 支持ts语言中callback、promise类型的异步函数自动转换为C++类型
+
  • 支持ts语言中返回值、callback类型的同步函数自动转换为C++类型
  • 支持ts语言中callback、promise类型的异步函数自动转换为C++类型
  • 支持ts接口文件中namespace域的static函数自动转换为对应C++的函数
  • 支持ts接口文件中namespace域的以$开头的函数自动转换为对应C++的自动函数

interface

@@ -41,7 +41,7 @@

文件

-
  • 支持ts文件中namespace数据类型转换为C++类型
+
  • 支持ts文件中namespace数据类型转换为C++类型
  • 支持ts接口文件名格式如下ohos.A.B.C.d.ts的文件转换
  • 命令行方式转换时支持多个文件路径,相互之间用英文逗号分开
  • 命令行方式转换时支持指定路径下的ts文件转换
diff --git a/test/storytest/README_ZH.md b/test/storytest/README_ZH.md index 53eb4faac1a6a3bed1b0f4eef733efbe9a1fb8ab..5fbf4a94049aa18f8fc92dafc47f8007432e1594 100755 --- a/test/storytest/README_ZH.md +++ b/test/storytest/README_ZH.md @@ -6,18 +6,28 @@ ## 目录 - ├── napi_generator # NAPI框架代码生成工具 - │ ├── src # 工具源码 - │ ├── ... # 其他文件夹 - │ ├── test # 测试用例 - | | ├── storytest # story测试代码 - │ | | ├── test_direct # 同步直接返回函数用例 - │ | | ├── test_interface # ts文件输入interface测试用例 - │ | | ├── test_namespace # ts文件输入namespace测试用例 - │ | | ├── test_number # ts文件输入number测试用例 - │ | | ├── test_string # ts文件输入string测试用例 - │ | | └── test.py # 用例执行脚本 - | | └── unittest # 单元测试用例 + ├── napi_generator # NAPI框架代码生成工具 + │ ├── ... # 其他文件夹 + │ ├── test # 测试用例 + │ | ├── ... # 其他文件夹 + │ | ├── storytest # story测试代码 + │ | | ├── test_$ # ts文件输入以$开头的函数测试用例 + │ | | ├── test_[] # ts文件输入[]格式数组测试用例 + │ | | ├── test_array # ts文件输入array<>格式数组测试用例 + │ | | ├── test_bool # ts文件输入boolean测试用例 + │ | | ├── test_direct # 同步直接返回函数用例 + │ | | ├── test_enum # ts文件输入enum测试用例 + │ | | ├── test_enum_interface # ts文件输入interface嵌套enum测试用例 + │ | | ├── test_interface # ts文件输入interface测试用例 + │ | | ├── test_interface_no_name # ts文件输入interface测试用例 + │ | | ├── test_map # ts文件输入map测试用例 + │ | | ├── test_namespace # ts文件输入namespace测试用例 + │ | | ├── test_number # ts文件输入number测试用例 + │ | | ├── test_static # ts文件输入static的函数测试用例 + │ | | ├── test_string # ts文件输入string测试用例 + │ | | ├── basic.d.ts # 基础函数模板 + │ | | ├── README_ZH.md # 测试用例使用指导 + │ | | └── test.py # 用例执行脚本 ## 软件环境准备 @@ -70,14 +80,12 @@ napi_generator/src目录下安装以下依赖: python test/storytest/test.py test_interface - ## 查看结果 红色:用例执行失败,代表修改的代码有bug或者用例的输出发生变化,需要修复bug或修改用例。 绿色:用例执行成功。 - ## 相关仓 暂无 diff --git a/test/unittest/README_ZH .md b/test/unittest/README_ZH .md index fa6fe68d42450507c7e62f1d5b5db960b40ade7f..7a8f9ca521eea8baa8a8cbf769e3c68a7e87a230 100755 --- a/test/unittest/README_ZH .md +++ b/test/unittest/README_ZH .md @@ -6,19 +6,20 @@ ## 目录 - ├── napi_generator # NAPI框架代码生成工具 - │ ├── src # 工具源码 - │ ├── ... # 其他文件夹 - │ ├── test # 测试用例 - | | ├── unittest # 单元测试代码 + ├── napi_generator # NAPI框架代码生成工具 + │ ├── src # 工具源码 + │ ├── ... # 其他文件夹 + │ ├── test # 测试用例 + │ | ├── ... # 其他文件夹 + │ | ├── unittest # 单元测试代码 │ | | ├── analyze.test.js #执行gen/analyze目录下函数测试用例 │ | | ├── basic.d.ts* #基础函数模板 │ | | ├── extend.test.js* #执行gen/extend目录下函数测试用例 │ | | ├── generate.test.js* #执行gen/generate目录下函数测试用例 │ | | ├── napi_generator.test.js* #执行全部测试用例 │ | | ├── '@ohos.input_sample.d.ts'* #接口、函数等定义模板 + │ | | ├── README_ZH.md # 测试用例使用指导 │ | | └── tools.test.js* #执行gen/tools目录下函数测试用例 - | | └── storytest # 功能测试用例 ## 软件环境准备 @@ -26,7 +27,6 @@ 依赖版本:python3.8 - 步骤一: napi_generator目录下安装以下依赖: @@ -47,8 +47,6 @@ napi_generator/src目录下安装以下依赖: npm i - - ## 使用说明 进入napi_generator/目录: @@ -61,14 +59,12 @@ napi_generator/src目录下安装以下依赖: npx mocha test/unittest/analyze.test.js - ## 查看结果 红色:用例执行失败,代表修改的代码有bug或者用例的输出发生变化,需要修复bug或修改用例。 绿色:用例执行成功。 - ## 相关仓 暂无