@lytjs/renderer 6.0.0 → 6.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -369,3 +369,17 @@ import type {
369
369
  - [@lytjs/core](../core) - 框架核心入口,整合所有子包
370
370
  - [@lytjs/adapter-web](../adapter-web) - Web 平台适配器
371
371
  - [@lytjs/host-contract](../host-contract) - 渲染器宿主抽象
372
+
373
+ ## 依赖版本
374
+
375
+ - [@lytjs/reactivity](https://www.npmjs.com/package/@lytjs/reactivity): ^6.4.0
376
+ - [@lytjs/vdom](https://www.npmjs.com/package/@lytjs/vdom): ^6.4.0
377
+ - [@lytjs/common-is](https://www.npmjs.com/package/@lytjs/common-is): ^6.4.0
378
+ - [@lytjs/common-string](https://www.npmjs.com/package/@lytjs/common-string): ^6.4.0
379
+ - [@lytjs/common-events](https://www.npmjs.com/package/@lytjs/common-events): ^6.4.0
380
+ - [@lytjs/common-dom](https://www.npmjs.com/package/@lytjs/common-dom): ^6.4.0
381
+ - [@lytjs/common-error](https://www.npmjs.com/package/@lytjs/common-error): ^6.4.0
382
+ - [@lytjs/dom-runtime](https://www.npmjs.com/package/@lytjs/dom-runtime): ^6.4.0
383
+ - [@lytjs/compiler](https://www.npmjs.com/package/@lytjs/compiler): ^6.4.0
384
+ - [@lytjs/host-contract](https://www.npmjs.com/package/@lytjs/host-contract): ^6.4.0
385
+ - [@lytjs/adapter-web](https://www.npmjs.com/package/@lytjs/adapter-web): ^6.4.0
package/dist/index.cjs CHANGED
@@ -1122,17 +1122,13 @@ var signal_renderer_exports = {};
1122
1122
  __export(signal_renderer_exports, {
1123
1123
  createSignalRenderer: () => createSignalRenderer
1124
1124
  });
1125
- function setSafeHTML(el, html) {
1126
- const wrapper = el;
1127
- const realNode = "content" in wrapper && "firstChild" in wrapper && wrapper.firstChild !== null ? wrapper.firstChild : el;
1128
- realNode.textContent = html;
1129
- }
1130
1125
  function createSignalRenderer(template, context) {
1131
1126
  let cleanup = null;
1132
1127
  let code;
1133
1128
  let renderBody;
1134
1129
  try {
1135
- const compileResult = compiler.compile(template, { rendererMode: "signal" });
1130
+ compiler.clearCompileCache();
1131
+ const compileResult = compiler.compile(template, { rendererMode: "signal", optimizeSignal: false });
1136
1132
  code = compileResult.code;
1137
1133
  renderBody = extractRenderBody(code);
1138
1134
  if (!renderBody) {
@@ -1167,19 +1163,36 @@ function createSignalRenderer(template, context) {
1167
1163
  "insert",
1168
1164
  "remove",
1169
1165
  "createEventHandler",
1170
- "bindEffect",
1171
1166
  "onCleanup",
1172
1167
  "runCleanups",
1173
1168
  "_ctx",
1174
1169
  "_container",
1175
1170
  renderBody
1176
1171
  );
1172
+ const proxiedCtx = new Proxy(context, {
1173
+ get(target, prop) {
1174
+ const val = target[prop];
1175
+ if (val && typeof val === "object" && "value" in val) {
1176
+ return val.value;
1177
+ }
1178
+ return val;
1179
+ },
1180
+ set(target, prop, value) {
1181
+ const val = target[prop];
1182
+ if (val && typeof val === "object" && "value" in val) {
1183
+ val.value = value;
1184
+ return true;
1185
+ }
1186
+ target[prop] = value;
1187
+ return true;
1188
+ }
1189
+ });
1177
1190
  const cleanupFn = renderFn(
1178
1191
  reactivity.effect,
1179
1192
  domRuntime.reconcileArray,
1180
1193
  domRuntime.createTemplate,
1181
1194
  domRuntime.setText,
1182
- setSafeHTML,
1195
+ domRuntime.setHTML,
1183
1196
  domRuntime.setAttribute,
1184
1197
  domRuntime.setProperty,
1185
1198
  domRuntime.setStyle,
@@ -1187,10 +1200,9 @@ function createSignalRenderer(template, context) {
1187
1200
  domRuntime.insert,
1188
1201
  domRuntime.remove,
1189
1202
  domRuntime.createEventHandler,
1190
- domRuntime.bindEffect,
1191
1203
  domRuntime.onCleanup,
1192
1204
  domRuntime.runCleanups,
1193
- context,
1205
+ proxiedCtx,
1194
1206
  el
1195
1207
  );
1196
1208
  if (typeof cleanupFn === "function") {