# BitFun_JsonTransformer **Repository Path**: ywp7913/bitfunjsontransformer ## Basic Information - **Project Name**: BitFun_JsonTransformer - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 9 - **Created**: 2024-07-24 - **Last Updated**: 2024-07-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # BitFun_JsonTransformer #### 介绍 Sendable对象生成工具可以根据用户的配置,将用户自定义的tts格式对象,转化@Sendable类型的ArkTS格式对象,支撑高性能对象序列化场景。 #### 安装编译教程 1. 从[Download Visual Studio Code](https://code.visualstudio.com/download)下载vscode并安装,或安装其他IDE。 2. 从[Download Node.js](https://nodejs.org/en/download/current)下载Node.js并安装,Node.js为JavaScript的运行时环境,自带包管理器npm。 3. 通过npm安装TypeScript编译器,命令行输入 ```shell npm install -g typescript ``` 4. 拉取bitfunjsontransformer仓库代码 ```shell git clone git@gitee.com:BitFun4HarmonyOS/bitfunjsontransformer.git --recursive or git clone https://gitee.com/BitFun4HarmonyOS/bitfunjsontransformer.git --recursive ``` 5. 安装npm依赖 ```shell cd bitfunjsontransformer npm install ``` 6. 利用webpack打包 ```shell cd bitfunjsontransformer npm run pack ``` #### 使用说明 1. ttsconfig.json5编写: ```shell # ttsconfig.json5中内容必须是严格的json格式,不能有注释,末尾大括号前不能有","。 # onConvertError: 在tts转化成ets过程中,如果遇到ERROR级别异常,Class-Transformer直接停止执行,默认是true。 # addGeneratedFilesIntoGitIgnore:是否将生成的ets文件加入到当前module的.gitignore中,默认是false。 # targetFiles: 使用glob语法,描述tts文件基于ttsconfig.json5的相对路径匹配规则,工具将会扫描解析所有匹配的tts文件并转化成对应的ets文件。 # logLevel: 日志会打印到dist/out/SRCodeGen.log中,该配置描述写入日志文件的最低日志级别,默认是WARN。 # copyImportPrefixes: 生成的ets文件默认引用的包。 ``` 举例: ```shell { "abortOptions": { "onScanError": true, "onConvertError": true }, "addGeneratedFilesIntoGitIgnore": false, "targetFiles": ["**/*.tts"], "logLevel": "INFO", "copyImportPrefixes": [""] } ``` 2. 运行工具 ```shell cd bitfunjsontransformer/dist # For Windows ./run.bat ${filepath of ttsconfig.json5} # For Linux and Mac ./run.sh ${filepath of ttsconfig.json5} # 注:ttsconfig.json5的路径可以用相对路径或绝对路径。 ``` 3. 添加har包依赖 ```shell 在项目根目录创建文件夹har,并将library.har包复制到该目录中 在oh-package.json5文件中添加依赖,如下: "dependencies": { "sendable-transformer" : "file:../har/library.har" } ``` #### 软件架构 SRConfigBuilder: 负责解析用户自定义的ttsconfig.json5配置文件,扫描到所有用户配置的tts文件路径,日志级别,日志文件路径,新生成文件是否加入.gitignore等等配置。 SRConfig: 负责记录用户在ttsconfig.json5中定义的各项静态扫描和代码生成过程中需要用到的配置。 SRSceneBuilder: 负责做所有tts文件的静态代码扫描,解析生成SRScene, SRFile, SRClass, SRField, SRMethod, SRDecorator等等在SRCodeGen中需要用到的数据结构。 SRCodeGen: 负责将SRSeceneBuilder解析出来的用户自定义对象转换成对应的Sendable类型对象,并写入到ets文件中。