• Home
Name Date Size #Lines LOC

..--

docs/12-May-2024-1,301902

examples/12-May-2024-5917

figures/12-May-2024-

hdc/12-May-2024-22,15416,062

napi_IntelliJ_plugin/12-May-2024-2,7771,820

napi_vs_plugin/12-May-2024-1,4001,098

release-notes/12-May-2024-7566

src/12-May-2024-7,8696,604

test/12-May-2024-5,3133,558

.clang-formatD12-May-20243.1 KiB111111

.gitattributesD12-May-2024533 87

.gitignoreD12-May-2024572 2928

FAQ.mdD12-May-20249.8 KiB158101

LICENSED12-May-202411.3 KiB202169

OAT.xmlD12-May-20244.8 KiB7724

README_zh.mdD12-May-20245.3 KiB13884

package.jsonD12-May-20241.3 KiB3736

README_zh.md

1# NAPI框架生成工具
2
3## 简介
4本文主要介绍NAPI框架代码生成工具,它可以根据用户指定路径下的ts(typescript)接口文件一键生成NAPI框架代码、业务代码框架、GN文件等。在开发JS应用与NAPI间接口时,底层框架开发者无需关注Nodejs语法、C++与JS之间的数据类型转换等上层应用转换逻辑,只关注底层业务逻辑即可,专业的人做专业的事,从而可以大大提高开发效率。目前工具支持可执行文件、VS Code插件、IntelliJ插件三种入口。
5
6更多工具的架构和实现原理详情,可以左键单击以下链接了解:
7
8[工具使用说明](https://gitee.com/openharmony/napi_generator/blob/master/docs/INSTRUCTION_ZH.md)
9
10## 目录
11
12	├── napi_generator                # NAPI框架代码生成工具
13	│   ├── docs                      # 工具说明、版本规划
14	│   ├── examples                  # 工具需要的文件样例
15	│   ├── figures                   # 图片资源文件
16	│   ├── hdc                       # hdc相关工具
17	│   ├── napi_IntelliJ_plugin      # Intellij IDEA插件代码
18	│   ├── napi_vs_plugin            # VS Code插件代码
19	│   ├── release-notes             # 发布说明
20	│   ├── src                       # 工具源码
21	│   │   ├── gen                   # napi工具源码
22	│   │   |   ├── analyze           # 解析器
23	│   │   |   |── extend            # 扩展模块,包括gn文件生成、linux环境适配代码等
24	│   │   |   |── generate          # 生成器
25	│   │   |   └── tools             # 公共模块代码,包括消息体校验、文件读写、正则表达式转换等
26	│   │   ├── tsGen                 # TS工具源码
27	│   ├── test                      # UT、ST测试
28	│   ├── FAQ                       # NAPI框架工具问题反馈
29	│   └── README                    # 工具使用指导
30
31## 约束
32系统:建议Ubuntu 20.04或者Windows 10
33
34依赖版本:VS Code 1.62.0
35
36## 使用方法
37
38### 使用对象
39
40系统开发者
41
42### 使用场景
43
441) 系统框架层新增子系统,需对应用层提供接口。
452) 系统框架层子系统能力增强后,需对应用层提供新接口。
46
47### 工具使用
48
49工具有三种类型,分别是可执行文件、VS Code插件、IntelliJ插件。其中的可执行文件可根据工具使用者的开发环境选择,支持Windows,Linux和Mac。可执行文件、VS Code插件下载路径如下。
50
51[下载链接1]( http://ftpkaihongdigi.i234.me:5000/sharing/PC6uOorrM)
52
53[下载链接2]( http://ftp.kaihong.com:5000/sharing/PC6uOorrM)
54
55[下载链接3]( http://ftp.kaihongdigi.com:5000/sharing/PC6uOorrM)
56
57IntelliJ插件下载路径如下:
58
59[IntelliJ插件下载链接](https://plugins.jetbrains.com/plugin/19593-napi-generator/versions)
60
61具体的工具使用步骤,可以左键单击以下链接了解:
62
63[工具使用说明](https://gitee.com/openharmony/napi_generator/blob/master/docs/INSTRUCTION_ZH.md)
64
65### 工具输出
66
67根据使用者指定的typescript文件,工具会输出NAPI框架代码、业务代码框架、GN脚本等文件。
68
69为了方便使用者快速上手工具,可供测试的typescript文件存放在以下路径:
70
71```
72napi_generator/examples/ts
73```
74
75在window环境下的,根据输入文件@ohos.napitest.d.tsbasic.d.ts生成的输出文件,如下所示:
76
77![](./figures/pic-d-ts-transition.png)
78
79其中生成的"napitest.h"文件,定义了框架代码的接口,如下所示:
80
81
82```c++
83#include "napitest.h"
84
85namespace napitest {
86bool func1(std::string& v1, std::string& out)
87{
88    // TODO
89    return true;
90}
91}
92```
93
94### 代码集成
95
96为了实现工具生成的接口被其他子系统或者应用调用,需将生成的代码编译集成到OpenHarmony系统中,编译生成动态库。
97
98把工具的生成代码集成到OpenHarmony的具体操作步骤,可以左键单击以下链接了解:
99
100[生成代码集成到OpenHarmony的方法](https://gitee.com/openharmony/napi_generator/blob/master/docs/ENSEMBLE_METHOD_ZH.md)
101
102## 工具开发说明
103
104### 对象
105
106工具的开发者
107
108### 开发场景
109
110若当前工具的功能已经不能满足开发者的全部需求,则开发者可以基于已有的源码对工具进行二次开发,来增强工具的能力,编译打包生成自定义的可执行文件和插件。
111
112### 开发步骤
113
114开发者可以根据如下的步骤来完成对工具的开发:
115
116 [工具开发说明](https://gitee.com/openharmony/napi_generator/blob/master/docs/DEVELOP_ZH.md)
117
118## 版本说明
119
120 当前版本已支持的特性和待开发的特性,如下所示:
121
122 [已支持特性](https://gitee.com/openharmony/napi_generator/blob/master/release-notes/napi_generator-1.0.md)
123
124 [待支持特性](https://gitee.com/openharmony/napi_generator/blob/master/docs/ROADMAP_ZH.md)
125
126## FAQ
127对于常见问题解决方法指导如下:
128
129  [FAQ](https://gitee.com/openharmony/napi_generator/blob/master/FAQ.md)
130
131## 参与贡献
132
133暂无
134
135## 相关仓
136
137[ts生成工具README_zh](https://gitee.com/openharmony/napi_generator/blob/master/docs/ts/README_ZH.md)
138