顶端反射
为Apex编程语言提供基本反射.
安装
npm i @cparra/apex-reflection
使用量
此库显示一个处理解析顶级类型( 类、 界面, 或) 的函数 enum)并返回结果.
import { reflect } from "@cparra/apex-reflection";
const classBody = "public with sharing class ExampleClass {}";
const response = reflect(classBody);
如果您想要解析来自文件的 Apex 类型, 您可以读取文件内容, 并将它用作源 反映
import * as fs from 'fs';
import {reflect} from '@cparra/apex-reflection';
const path = './MyClass.cls';
const rawFile = fs.readFileSync(path);
const response = reflect(rawFile.toString());
这个 reflect 函数返回 a ReflectionResult 包含解析结果 Type
(将是一个 ClassMirror,一个 InterfaceMirror,或一个 EnumMirror或一个 ParsingError 如果传入
未成功解析正文,并有信件显示出错地点.
捐款
尽管这个库作为Node.js库被曝光,项目源代码还是用达特来写. 源头可以
可见于 lib/src 存储器目录 .
这个软件包将编译成一个WebAssembly(dist/node.wasm及其联合来文装载机
(单位:千美元)dist/node.mjs),由薄薄的TypeScript包装器以懒散方式装入 index.mts需要22个节点或更新(
模块使用WasmGC). 要在更改 Dart 源码后重建模块, 从寄存器根运行 :
dart compile wasm lib/src/node/node.dart -o js/node.wasm
npm run build 编译 TypeScript 包装器, 并复制主题模块及其加载器 dist/。 。 。 .
测试
必须测试达特源代码和被包装的WebAssembly模块.
达特测试在仓库里直播 test 目录。 Dart 源代码必须进行单位测试
单个 Dart 文件以及验证总体剖析功能的端到端测试.
联合来文的测试情况 __tests__。这些是针对已建套件的端到端测试(dist/因此他们
也防止出版一部烂的网络大会文物。 跟着他们跑 npm test。 。 。 .
JSON 序列化
反射行动输出了JSON的顶级代表,然后在JS方面将其取消为 返回已键入对象.
序列化是通过 连续大小 软件包,哪个 帮助自动创建来回代码,用于串行和去串行.
在修改任何带有序列化支持的模型类时, 要重建序列化代码运行
dart run build_runner build
分析
手写解析 皮条客 语法. Apex 语法仅解析了反射所需的声明结构( 机构被跳出为 均衡块),而Apexdoc语法则由它组成,因此doc的评论在同一个单行道中解析. 见 详细内容的存储器 README.
字体
这个库提供了自己的TS类型定义.