Commit Graph

22 Commits

Author SHA1 Message Date
“chenhuachun”
d7040b389d fix(renderer): 修复 async setup 中的 expose 行为及模板 ref 限制
- 修改 setup 签名,去除参数默认值,避免 Vue 误判 setupContext
- 在第一个 await 前主动调用 setupContext.expose,确保暴露属性即时生效
- 通过动态 getter 暴露声明的 expose 项,兼容后续 getter 定义
- 修正 Composition 生命周期异步执行的 warn 格式
- 添加测试用例,验证 async setup 模板 ref 仅暴露 expose 列表中的成员,屏蔽其它属性
2026-08-18 20:53:15 +08:00
“chenhuachun”
1c8f88e507 fix(renderer): 修正 scoped CSS 中无父选择器的编译行为
- 当无父选择器时,按 Vue 官方 scoped 语义将 :deep(.child) 转换为 [scopeId] .child,
  使 scopeId 作为前缀匹配组件根元素内部目标元素
- 修改 compileScoped 以支持上述行为,确保样式正确作用于子元素
- 增加单元测试校验无父选择器的 scoped CSS 转换结果
- 增加运行时集成测试,验证组件根元素携带 scope 属性,
  内部元素不携带且样式选择器匹配正确
- 优化部分测试代码格式,提升一致性和可读性
2026-08-05 11:27:49 +08:00
“chenhuachun”
eb891ed6ce feat(designer): 支持组合式函数名称解析与显示
- 新增 getComposableNames 方法,用于获取组合式函数及其解构名称
- useBinder 钩子中增加组合式函数选项展示
- defined 组件中添加组合式函数信息的展示逻辑
- 为 getComposableNames 添加单元测试,确保正确解析组合式函数名称
- useBinder 添加单元测试,验证组合式函数展示项包含正确名称

fix(renderer): 支持组件默认值深克隆与空属性处理

- render block 组件属性默认值支持深度克隆,避免引用共享问题
- render node 深度解析 props 时,增加 null 值判断,正确处理空属性
- 增加运行时集成测试,验证 null 值 prop 能够被正确传递和渲染
- 增加测试确保每个组件实例的对象与数组 prop 默认值相互独立,避免状态污染
2026-08-01 12:24:17 +08:00
“chenhuachun”
d3b0701e4f test(renderer): 增加页面路由和运行时集成测试
- 在 PageContainer 路由测试中新增跳转顺序处理,避免旧页面加载覆盖新页面
- 修改运行时集成测试的挂载函数,支持传入应用配置回调
- 添加多层嵌套区块组件加载测试,确保组件只加载一次
- 添加加载失败后清理缓存并重试加载的测试用例
- 测试嵌套组合式 API 状态追踪,避免未使用的响应式属性订阅
- 验证多种表单模型绑定(集合、单选、多选、命名组件模型)的支持和交互
- 检测阻止真实嵌套循环区块导致递归渲染的机制和警告输出
- 确认同一渲染器不同实例之间选项状态隔离,防止状态共享
- 测试快速 v-if 条件切换时,最新元素引用的保持逻辑
- 验证组合式可组合函数错误通过 Vue 错误处理器报告
- 保持 options API 状态和方法路径的正确运行时表现
2026-07-19 22:45:49 +08:00
“chenhuachun”
529878f243 fix(renderer): 优化Composition模式与v-model实现并增强样式处理
- 修复Provider中getDslByUrl请求失败缓存清理问题及重试逻辑
- 重构block渲染逻辑,延后执行composables以确保refs和reactives可用
- 在setup中优先注册provide和Composition生命周期钩子,支持生命周期异步执行
- 修改vNativeModelRender,支持checkbox、radio、select的v-model修饰符处理
- 调整vModelRender支持自定义组件并传递有效的modifiers作为props
- 优化样式模块adoptedStyleSheets,避免重复构建并支持replaceSync能力检测
- 移除block渲染时不必要的响应式访问以提升性能
- 增加多个单元测试覆盖v-model修饰符、Provider重试以及样式处理边界情况
- 修正节点渲染时事件与props分离逻辑,保证事件处理器上下文正确绑定
- 增强Runtime集成测试,覆盖provide/inject生命周期及composable参数解析场景
2026-07-19 22:37:14 +08:00
“chenhuachun”
afd0788bd8 feat(renderer): 支持可写计算属性绑定上下文
- 在解析表达式时,绑定 computed 的 get 和 set 方法到上下文对象
- 确保可写计算属性的 getter/setter 被正确绑定和调用
- 添加运行时集成测试,验证计算属性的读写和事件触发功能
- 测试中模拟输入控件双向绑定,实现对计算属性的动态赋值和监听
2026-07-19 13:29:38 +08:00
“chenhuachun”
caf78bf48f chore(core): 升级版本至0.13.5并完善加载器缓存管理
- 将版本号从0.13.4更新到0.13.5
- Renderer类中新增loader属性并在渲染流程中处理loader缓存
- 调用clearLoaderCache时传入当前loader实例并在适当时机清空loader
- 在page.ts中修正缓存meta读取逻辑,确保route.meta正常访问
- Provider中修正项目平台访问方式,避免项目平台判断错误
- block.ts中渲染返回对象新增loader字段
- utils中优化模块加载逻辑,移除重复查找过程
- 新增loader实例缓存清理测试用例,验证clearLoaderCache调用clear方法
- page-route.spec.ts和provider-components.spec.ts中新增激活缓存相关测试覆盖
- provider.spec.ts中新增基于项目平台决定路由初始化测试
- util.test.ts新增依赖脚本加载测试,确保资源二次加载行为正确
2026-07-19 13:01:43 +08:00
“chenhuachun”
882a35df83 refactor(renderer): 优化上下文缓存和加载器管理逻辑
- 替换 binder.vue 中的缓存清理,改用 context.__cache.clear()
- 将 RendererMenuDataItem 类型替换原 MenuDataItem,优化菜单数据结构及过滤逻辑
- 修改 access 插件存储,支持 session 类型存储并完善测试覆盖
- PageContainer 组件支持路由变化自动加载和更新页面组件及标题
- Provider 初始化流程添加 initialization Promise,支持异步初始化状态查询
- NodeCache 改为导出类,context 中添加独立缓存实例保证隔离
- loader 模块重构,局部维护插件和异步组件缓存,新增 clear 方法支持缓存清理
- nodeRender 中事件绑定改进,完整支持 Vue 事件修饰符映射
- parseExpression 调整,支持返回函数时正确绑定上下文
- 动态脚本加载改为顺序等待加载并复用加载状态,避免重复加载
- memory 服务修复删除历史数据时同步清理字典错误
- 新增多项测试覆盖,包括 context 缓存隔离、加载器缓存隔离、事件修饰符映射和路由组件刷新
- 修正多处测试中对依赖的模拟与用法,提升测试可靠性和准确性
2026-07-19 11:52:30 +08:00
“chenhuachun”
8fef119fc4 chore(parser): 优化 Vue 组件 computed 支持及脚本解析容错
- 支持 computed 选项中对象字面量(get/set)形式的表达式解析
- script 解析失败时,增加表达式上下文包裹尝试,提升对复杂语法的兼容
- scriptSetup 中 computed 支持 JSFunction 和 JSExpression 两种类型
- 调整方法、监听器、生命周期函数类型定义,支持 JSExpression
- 优化 methods 和 watchers 的类型断言
- 将版本号升级到 0.13.4

fix(renderer): 同步上下文属性时避免共享不应共享状态

- 使用 Object.assign 代替逐个属性赋值,确保全局注入属性同步
- 清理 sharedContext 中不应共享的 per-instance 内部状态字段
- 修正测试用例中 onMounted 调用次数,匹配实际调用逻辑
2026-07-18 21:22:35 +08:00
“chenhuachun”
0841565873 test(vitest): 配置覆盖率阈值和报告格式
- 在各包的 vitest 配置中添加覆盖率提供者为 v8
- 设置包含及排除的覆盖范围,排除索引文件和版本文件
- 设置覆盖率阈值:行、函数、分支、语句均不低于85%,部分包分支为80%
- 增加覆盖率报告格式:文本、文本摘要及 JSON 摘要格式

test(base): 完善 util 函数的边界值测试

- 补充 trim 函数对非字符串、非数组、非对象值的正常返回测试
- 追加 splitParser 字符串分割对空字符串和 undefined 的处理测试
- 增加 splitStringify 对 undefined 输入返回空字符串测试

test(coder/parser): 增加数据源解析相关测试用例

- 覆盖 mock 数据源和 API 数据源的解析过程
- 测试空数据源输入的返回值为空数组
- 测试非函数类型的 transform 和 mockTemplate 使用默认处理
- 新增对函数映射解析的无效格式过滤及有效过滤测试
- 补充 inject 解析时未设置来源的默认行为测试

test(coder/parser/composition): 完善组合式 API 解析测试

- 过滤 useProvider 组合函数的测试逻辑添加
- 支持带参数和无名称(仅副作用)组合函数解析测试
- 支持 JSExpression 参数的组合函数解析测试
- 测试组合函数按名称去重功能

test(coder/parser/composition/inject): 增加 inject 相关测试

- 测试默认值为 null 和 JSExpression 的inject选项解析
- 测试缺省 from 时使用 name 的行为

test(parser): 添加逆向转换及 HTML 扩展测试

- 测试 reverseTransformExpression 函数对空输入及多种符号转换行为
- 增加针对 htmlToNodes 的文本与元素混合、多兄弟节点及属性为空值处理测试
- 增加 UniApp 平台及转义字符处理测试

test(parser): 补充替换器转换功能测试

- 测试代码中 __provider 相关标识符替换行为,使用不同 id 参数验证

test(parser): 丰富 Vue 脚本解析相关测试

- 测试组件名称、props、methods、数据源、注入、暴露和指令的完整解析
- 测试基于 computed 的 watcher 与 watch 选项解析
- 测试 emits 从 emits 数组及 $emit 调用解析
- 支持默认导入组件的检测

test(parser/scriptSetup): 增强 script setup 解析测试覆盖

- 测试从 __provider 创建的 mock 和 api 数据源的识别(含 then 回调)
- 函数声明中有无 api 调用对数据源提取的区别
- 完善生命周期钩子(onBeforeMount、onBeforeUpdate 等)解析测试
- watch 深度监听及无选项监听测试
- defineExpose 内联对象输出测试
- provide/inject 解析各场景的测试覆盖
- defineProps 和 withDefaults 类型推断及默认值测试
- 函数声明参数不同模式处理测试(含默认参数、解构参数)
- defineEmits 的类型声明和数组声明测试

test(parser/shared): 添加 TypeScript 代码剥离工具测试

- 测试剥离 TS 类型注解、接口、类型别名、枚举及断言的正确性
- 验证对不合法 TypeScript 代码的容错行为
- 处理非空断言和类型断言语法的准确剥离
2026-07-12 00:19:18 +08:00
“chenhuachun”
415319d6be test(renderer): 添加 renderer 和 Access 模块详细单元测试覆盖
- 为 renderer 中的 createEmits 处理 BlockEmit 对象添加测试
- 检验 createProps 正确处理含类型定义的 BlockProp
- 测试 createRenderer 支持含 JSFunction 和 JSExpression 的 state
- 验证 computed 和 methods 中 JSFunction 的正确创建
- 为 createRenderer 设置的 watch 功能添加覆盖测试
- 测试 createRenderer 中 createInject 对不同注入配置的处理
- 为 Access 类添加构造、登录、权限判断、守卫等功能单元测试
- 增加 Access 内部私有方法和异常情况的覆盖测试,包括 RSA 解密
- 覆盖 Access 的拦截器开关及登录跳转逻辑
- 添加 createSchemaApi、createMetaApi 等 apis 提供者模块测试
- 补充 mockApi 和 mockCleanup 相关单元测试
- 版本号升级至 0.13.3
- vitest.config.ts 中添加覆盖率配置,满足 80% 测试指标要求
2026-07-11 23:00:24 +08:00
“chenhuachun”
714b3af2e8 fix(renderer): 防止多实例共享 Context 导致 props 覆盖问题
- 为每个组件实例在 setup 中创建独立 Context,避免多实例间 props 和 state 互相覆盖
- 保留共享 Context 用于组件定义时的初始解析(如 props 默认值)
- 生命周期调用优先使用实例级 Context,防止状态错乱
- 渲染函数中使用实例级 Context,setup 未执行时回退到共享 Context
- 新增单元测试验证多实例渲染时 props 隔离性,确保上下文独立性
2026-07-04 11:54:41 +08:00
“chenhuachun”
a9ddf244d9 fix(renderer): 修复 parseExpression 中作用域变量名错误问题
- 将渲染器解析代码中 __self 变量赋值由 arguments[0] 修改为 $scope,避免与 arguments 对象冲突
- 添加单元测试,验证当上下文包含 arguments 属性时,parseExpression 正确使用 this 指向和作用域访问
- 测试覆盖空表达式返回 undefined 的情况保持不变,确保无副作用
2026-07-02 11:56:09 +08:00
“chenhuachun”
63695405f7 feat(renderer): 增加区块循环引用检测机制
- 在渲染链中引入区块 ID 的 provide/inject 机制,用于传递渲染路径上的区块集合
- 实现检测当前区块是否已存在于祖先链中,避免循环引用导致浏览器崩溃
- 对检测到循环引用的区块,中断渲染并返回特殊标记 __vtjCircular
- 在渲染函数中判断该标记,若存在则不渲染内容,防止无限递归
- 新增单元测试覆盖区块循环引用检测逻辑和相关渲染行为
- 升级版本号至 0.13.1
2026-07-01 16:22:29 +08:00
“chenhuachun”
736d3bc1f7 test(renderer): 修复 context.__contextRefs 初始化问题
- 将 context.__contextRefs 的值从固定对象改为指向 context 自身
- 确保 __reset 方法调用后 __refs 能被正确重置
- 修正测试用例以验证新的初始化逻辑
2026-06-15 00:17:00 +08:00
“chenhuachun”
21f39a2b32 refactor(renderer): 优化 Composition API 相关实现和错误处理
- 将 createComposables 函数参数优化为不依赖 Vue 实例
- 为 setup 及生命周期函数增加异常捕获,防止运行时抛出未捕获异常
- 调整 context 对象属性合并顺序,确保 attrs 优先覆盖 globalProperties
- 调整 context 构造函数,动态挂载 refs/reactives,避免重复初始化
- 丰富单元测试,覆盖 refs/reactives 创建,生命周期注册和异常处理逻辑
- 增加对 setup 返回值中 state、refs、reactives 的验证
- 修正 createRenderer 在不同 apiMode 下的 refs/reactives 创建行为
2026-06-15 00:13:43 +08:00
“chenhuachun”
adae502136 refactor(renderer): 支持 composable 使用 JSExpression 表达式
- 将 composable 表达式从字符串改为 JSExpression 类型,支持通过 this.$libs 访问
- 更新解析和执行逻辑,解析 JSExpression 引用并调用对应函数
- 修改 composables 配置示例,采用 JSExpression 格式
- 调整代码生成和导入处理,兼容旧协议字符串形式
- 更新类型定义,composable 字段改为 JSExpression 类型
- 增强错误处理,执行失败时提供更明确的降级提示
2026-06-10 21:41:55 +08:00
“chenhuachun”
8cd32e7ad3 feat(renderer): 支持 Composition API 模式及响应式数据处理
- 新增 composition.vue 示例,展示 Composition API 模式的完整用法
- 重构 block.ts 中状态创建逻辑,支持 refs 和 reactives 分开管理
- context.ts 中增加 refs 和 reactives 属性,保证响应式数据完整性
- 调整生命周期钩子调用,新增无效钩子警告提示
- 增强 createRenderer 支持 composables 插件调用及错误降级处理
- 补充 renderer 单元测试覆盖 Composition API 模式和生命周期钩子
- 优化 Context 类初始化及响应式引用缓存管理
- 修复 context 在 setup 阶段响应式数据的正确赋值和代理处理
2026-06-10 11:35:29 +08:00
“chenhuachun”
3b10b4b68f feat(renderer): 支持组合式 API 模式的组件解析与生命周期注册
- 新增 COMPOSITION_HOOKS_LIST 定义组合式生命周期钩子
- 支持根据 dsl.value.apiMode 区分 Options 和 Composition API 状态创建
- 在 Composition 模式中创建 refs 和 reactives 并合并为响应式 state
- 支持解析并调用组合式 composables,提高状态复用灵活性
- 在 Composition 模式内创建 provide 数据,支持依赖注入机制
- 在 setup 函数内注册 Composition API 生命周期钩子
- Options 模式保持传统生命周期钩子注册方式不变
- 为组合式 API 新增各类辅助函数,如 createRefs、createReactives、createComposables 等
- 提供设计模式下的错误降级处理,避免组合式函数调用异常
- 增加基础服务和权限访问相关单元测试覆盖新增功能和已有逻辑
- 新增对 CSS 范围编译、依赖解析及转换工具的测试用例增强稳定性
- 修改 rpx 转换函数接口,添加 window 参数支持浏览器环境差异处理
2026-06-09 23:34:43 +08:00
“chenhuachun”
d3bffef001 feat: uniapp 支持 rpx 样式单位 2025-12-20 10:32:56 +08:00
“chenhuachun”
84689eae58 fix: 🐛 compileScopedCSS 2025-06-06 18:07:53 +08:00
陈华春
af29669c56 module core 2023-11-30 18:27:53 +08:00