@vobs/runtime 1.7.8 → 1.8.1
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 +1 -1
- package/dist/async-boundary.cjs +14 -4
- package/dist/async-boundary.cjs.map +1 -1
- package/dist/async-boundary.js +17 -7
- package/dist/async-boundary.js.map +1 -1
- package/dist/bind.cjs +43 -3
- package/dist/bind.cjs.map +1 -1
- package/dist/bind.js +48 -8
- package/dist/bind.js.map +1 -1
- package/dist/boundary.cjs +159 -84
- package/dist/boundary.cjs.map +1 -1
- package/dist/boundary.js +162 -87
- package/dist/boundary.js.map +1 -1
- package/dist/client-only.cjs +323 -0
- package/dist/client-only.cjs.map +1 -0
- package/dist/client-only.d.cts +42 -0
- package/dist/client-only.d.ts +42 -0
- package/dist/client-only.js +299 -0
- package/dist/client-only.js.map +1 -0
- package/dist/debug.cjs.map +1 -1
- package/dist/debug.d.cts +12 -2
- package/dist/debug.d.ts +12 -2
- package/dist/debug.js.map +1 -1
- package/dist/dom-events.cjs +46 -0
- package/dist/dom-events.cjs.map +1 -0
- package/dist/dom-events.d.cts +23 -0
- package/dist/dom-events.d.ts +23 -0
- package/dist/dom-events.js +21 -0
- package/dist/dom-events.js.map +1 -0
- package/dist/dom-props.cjs +154 -0
- package/dist/dom-props.cjs.map +1 -0
- package/dist/dom-props.d.cts +21 -0
- package/dist/dom-props.d.ts +21 -0
- package/dist/dom-props.js +128 -0
- package/dist/dom-props.js.map +1 -0
- package/dist/dynamic.cjs +68 -14
- package/dist/dynamic.cjs.map +1 -1
- package/dist/dynamic.js +73 -19
- package/dist/dynamic.js.map +1 -1
- package/dist/error-boundary.cjs +159 -84
- package/dist/error-boundary.cjs.map +1 -1
- package/dist/error-boundary.js +162 -87
- package/dist/error-boundary.js.map +1 -1
- package/dist/error.cjs +52 -20
- package/dist/error.cjs.map +1 -1
- package/dist/error.d.cts +8 -0
- package/dist/error.d.ts +8 -0
- package/dist/error.js +52 -20
- package/dist/error.js.map +1 -1
- package/dist/fragment.cjs.map +1 -1
- package/dist/fragment.js +1 -1
- package/dist/fragment.js.map +1 -1
- package/dist/hmr.cjs +137 -1
- package/dist/hmr.cjs.map +1 -1
- package/dist/hmr.js +135 -1
- package/dist/hmr.js.map +1 -1
- package/dist/index.cjs +713 -236
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -2
- package/dist/index.d.ts +5 -2
- package/dist/index.js +715 -245
- package/dist/index.js.map +1 -1
- package/dist/ops.cjs +561 -107
- package/dist/ops.cjs.map +1 -1
- package/dist/ops.d.cts +49 -4
- package/dist/ops.d.ts +49 -4
- package/dist/ops.js +557 -108
- package/dist/ops.js.map +1 -1
- package/dist/profiler.cjs +14 -4
- package/dist/profiler.cjs.map +1 -1
- package/dist/profiler.js +17 -7
- package/dist/profiler.js.map +1 -1
- package/dist/ref.cjs +160 -5
- package/dist/ref.cjs.map +1 -1
- package/dist/ref.js +160 -5
- package/dist/ref.js.map +1 -1
- package/dist/renderer.cjs.map +1 -1
- package/dist/renderer.d.cts +2 -0
- package/dist/renderer.d.ts +2 -0
- package/dist/show.cjs +196 -0
- package/dist/show.cjs.map +1 -0
- package/dist/show.d.cts +54 -0
- package/dist/show.d.ts +54 -0
- package/dist/show.js +171 -0
- package/dist/show.js.map +1 -0
- package/dist/svg.cjs +102 -0
- package/dist/svg.cjs.map +1 -0
- package/dist/svg.d.cts +21 -0
- package/dist/svg.d.ts +21 -0
- package/dist/svg.js +76 -0
- package/dist/svg.js.map +1 -0
- package/package.json +20 -2
- package/src/bind.ts +30 -2
- package/src/boundaries.test.ts +54 -1
- package/src/boundary.ts +24 -8
- package/src/clear-remove.test.ts +85 -0
- package/src/client-only.test.ts +140 -0
- package/src/client-only.ts +65 -0
- package/src/component-empty-return.test.ts +123 -0
- package/src/debug.ts +12 -1
- package/src/dom-events.ts +32 -0
- package/src/dom-props-consistency.test.ts +149 -0
- package/src/dom-props.test.ts +70 -0
- package/src/dom-props.ts +107 -0
- package/src/dynamic.ts +91 -14
- package/src/error.test.ts +76 -1
- package/src/error.ts +87 -22
- package/src/event-cleanup-growth.test.ts +128 -0
- package/src/events.test.ts +16 -3
- package/src/hmr.ts +8 -2
- package/src/index.ts +13 -1
- package/src/invariants.test.ts +252 -0
- package/src/list-fast-path.test.ts +83 -0
- package/src/list-reactive-item.test.ts +77 -0
- package/src/ops.ts +419 -60
- package/src/props.test.ts +61 -1
- package/src/ref-cleanup.test.ts +144 -0
- package/src/ref.ts +57 -8
- package/src/remove-listener-identity.test.ts +97 -0
- package/src/renderer.ts +3 -1
- package/src/select-hidden-subscription.test.ts +104 -0
- package/src/show-classlist.test.ts +205 -0
- package/src/show.ts +107 -0
- package/src/spread-stable-shape.test.ts +109 -0
- package/src/spread.test.ts +86 -0
- package/src/svg.test.ts +28 -1
- package/src/svg.ts +34 -0
package/dist/error-boundary.cjs
CHANGED
|
@@ -33,6 +33,139 @@ var import_reactivity3 = require("@vobs/reactivity");
|
|
|
33
33
|
// packages/runtime/src/ops.ts
|
|
34
34
|
var import_reactivity2 = require("@vobs/reactivity");
|
|
35
35
|
|
|
36
|
+
// packages/runtime/src/error.ts
|
|
37
|
+
var _VobsError = class _VobsError extends Error {
|
|
38
|
+
constructor(options) {
|
|
39
|
+
super(options.message);
|
|
40
|
+
this.name = "VobsError";
|
|
41
|
+
this.code = options.code;
|
|
42
|
+
this.severity = options.severity ?? "error";
|
|
43
|
+
this.layer = options.layer ?? "runtime";
|
|
44
|
+
this.cause = options.cause;
|
|
45
|
+
this.fix = options.fix;
|
|
46
|
+
this.location = options.location;
|
|
47
|
+
this.trace = options.trace;
|
|
48
|
+
this.example = options.example;
|
|
49
|
+
this.docs = options.docs;
|
|
50
|
+
this.codeFrame = options.codeFrame;
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
__name(_VobsError, "VobsError");
|
|
54
|
+
var VobsError = _VobsError;
|
|
55
|
+
function isVobsError(value) {
|
|
56
|
+
return value instanceof VobsError || Boolean(value && typeof value === "object" && typeof value.code === "string" && typeof value.message === "string");
|
|
57
|
+
}
|
|
58
|
+
__name(isVobsError, "isVobsError");
|
|
59
|
+
function isForeignVobsError(value) {
|
|
60
|
+
return value instanceof Error && value.name === "VobsError" && typeof value.code === "string";
|
|
61
|
+
}
|
|
62
|
+
__name(isForeignVobsError, "isForeignVobsError");
|
|
63
|
+
function describeUnknown(value) {
|
|
64
|
+
if (value === null || value === void 0) return String(value);
|
|
65
|
+
if (typeof value === "string") return value;
|
|
66
|
+
if (typeof value === "object") {
|
|
67
|
+
const message = value.message;
|
|
68
|
+
if (typeof message === "string" && message !== "") return message;
|
|
69
|
+
try {
|
|
70
|
+
return JSON.stringify(value) ?? String(value);
|
|
71
|
+
} catch {
|
|
72
|
+
return String(value);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return String(value);
|
|
76
|
+
}
|
|
77
|
+
__name(describeUnknown, "describeUnknown");
|
|
78
|
+
function adoptVobsError(value, defaults) {
|
|
79
|
+
return new VobsError({
|
|
80
|
+
code: value.code,
|
|
81
|
+
message: value.message,
|
|
82
|
+
severity: value.severity ?? defaults.severity,
|
|
83
|
+
layer: value.layer ?? defaults.layer,
|
|
84
|
+
cause: value.cause ?? (value instanceof Error ? value : void 0),
|
|
85
|
+
fix: value.fix ?? defaults.fix,
|
|
86
|
+
location: value.location,
|
|
87
|
+
trace: value.trace,
|
|
88
|
+
example: value.example,
|
|
89
|
+
docs: value.docs,
|
|
90
|
+
codeFrame: value.codeFrame
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
__name(adoptVobsError, "adoptVobsError");
|
|
94
|
+
function normalizeVobsError(value, defaults = {}) {
|
|
95
|
+
if (value instanceof VobsError) return value;
|
|
96
|
+
if (isForeignVobsError(value)) return adoptVobsError(value, defaults);
|
|
97
|
+
if (value instanceof Error) {
|
|
98
|
+
const metadata = value;
|
|
99
|
+
const code = defaults.code ?? (typeof metadata.vobsCode === "string" ? metadata.vobsCode : void 0);
|
|
100
|
+
if (code) {
|
|
101
|
+
defineErrorMetadata(value, "code", code);
|
|
102
|
+
if (value.code !== code) {
|
|
103
|
+
return new VobsError({
|
|
104
|
+
code,
|
|
105
|
+
message: value.message,
|
|
106
|
+
severity: defaults.severity ?? "error",
|
|
107
|
+
layer: defaults.layer ?? "runtime",
|
|
108
|
+
cause: value,
|
|
109
|
+
fix: defaults.fix ?? (typeof metadata.vobsHint === "string" ? metadata.vobsHint : void 0)
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
defineErrorMetadata(value, "severity", defaults.severity ?? "error");
|
|
114
|
+
defineErrorMetadata(value, "layer", defaults.layer ?? "runtime");
|
|
115
|
+
const fix = defaults.fix ?? (typeof metadata.vobsHint === "string" ? metadata.vobsHint : void 0);
|
|
116
|
+
if (fix) defineErrorMetadata(value, "fix", fix);
|
|
117
|
+
const source = metadata.vobsSource;
|
|
118
|
+
if (source && typeof source === "object" && typeof source.file === "string" && typeof source.line === "number" && typeof source.column === "number") {
|
|
119
|
+
defineErrorMetadata(value, "location", source);
|
|
120
|
+
}
|
|
121
|
+
return value;
|
|
122
|
+
}
|
|
123
|
+
if (isVobsError(value)) return adoptVobsError(value, defaults);
|
|
124
|
+
return new VobsError({
|
|
125
|
+
code: defaults.code ?? "VOBS_UNKNOWN",
|
|
126
|
+
message: describeUnknown(value),
|
|
127
|
+
severity: defaults.severity ?? "error",
|
|
128
|
+
layer: defaults.layer ?? "runtime",
|
|
129
|
+
cause: void 0,
|
|
130
|
+
fix: defaults.fix
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
__name(normalizeVobsError, "normalizeVobsError");
|
|
134
|
+
function defineErrorMetadata(target, key, value) {
|
|
135
|
+
if (key in target) return;
|
|
136
|
+
try {
|
|
137
|
+
Object.defineProperty(target, key, { configurable: true, enumerable: false, value, writable: true });
|
|
138
|
+
} catch {
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
__name(defineErrorMetadata, "defineErrorMetadata");
|
|
142
|
+
function formatVobsError(value, options = {}) {
|
|
143
|
+
const error = normalizeVobsError(value);
|
|
144
|
+
const code = error.code || "VOBS_UNKNOWN";
|
|
145
|
+
const severity = error.severity || "error";
|
|
146
|
+
if (options.environment === "production") return `[Vobs ${code}] ${error.message}`;
|
|
147
|
+
const lines = [`[Vobs ${capitalize(severity)}] ${error.message}`, `Code: ${code}`];
|
|
148
|
+
if (error.location) lines.push(`Location: ${error.location.file}:${error.location.line}:${error.location.column}`);
|
|
149
|
+
if (error.codeFrame) lines.push("", error.codeFrame);
|
|
150
|
+
if (error.cause !== void 0) lines.push(`Cause: ${formatCause(error.cause)}`);
|
|
151
|
+
if (error.trace?.length) lines.push("", `Trace: ${error.trace.join(" \u2192 ")}`);
|
|
152
|
+
if (error.fix) lines.push("", `Fix: ${error.fix}`);
|
|
153
|
+
if (error.example) lines.push("", `Example:
|
|
154
|
+
${error.example}`);
|
|
155
|
+
if (error.docs) lines.push(`Docs: ${error.docs}`);
|
|
156
|
+
if (options.includeStack && error.stack) lines.push("", error.stack);
|
|
157
|
+
return lines.join("\n");
|
|
158
|
+
}
|
|
159
|
+
__name(formatVobsError, "formatVobsError");
|
|
160
|
+
function formatCause(value) {
|
|
161
|
+
return value instanceof Error ? `${value.name}: ${value.message}` : String(value);
|
|
162
|
+
}
|
|
163
|
+
__name(formatCause, "formatCause");
|
|
164
|
+
function capitalize(value) {
|
|
165
|
+
return value.slice(0, 1).toUpperCase() + value.slice(1);
|
|
166
|
+
}
|
|
167
|
+
__name(capitalize, "capitalize");
|
|
168
|
+
|
|
36
169
|
// packages/runtime/src/debug.ts
|
|
37
170
|
var activeRuntimeDebugHooks = null;
|
|
38
171
|
function getRuntimeDebugHooks() {
|
|
@@ -119,7 +252,7 @@ function syncSelectValue(parent) {
|
|
|
119
252
|
while (current !== null) {
|
|
120
253
|
if (current.nodeName === "SELECT") {
|
|
121
254
|
const read = selectValueReaders.get(current);
|
|
122
|
-
if (read !== void 0) setProperty(current, "value",
|
|
255
|
+
if (read !== void 0) setProperty(current, "value", (0, import_reactivity2.untrack)(read));
|
|
123
256
|
return;
|
|
124
257
|
}
|
|
125
258
|
current = current.parentNode;
|
|
@@ -127,9 +260,9 @@ function syncSelectValue(parent) {
|
|
|
127
260
|
}
|
|
128
261
|
__name(syncSelectValue, "syncSelectValue");
|
|
129
262
|
function removeChild(parent, child) {
|
|
130
|
-
disposeNodeOwner(child);
|
|
131
263
|
if (isVobsFragment(child)) {
|
|
132
264
|
child.unmount(parent);
|
|
265
|
+
disposeNodeOwner(child);
|
|
133
266
|
return;
|
|
134
267
|
}
|
|
135
268
|
getRenderer().removeChild(parent, child);
|
|
@@ -140,11 +273,12 @@ function removeChild(parent, child) {
|
|
|
140
273
|
parent: describeDebugNode(parent)
|
|
141
274
|
});
|
|
142
275
|
}
|
|
276
|
+
disposeNodeOwner(child);
|
|
143
277
|
}
|
|
144
278
|
__name(removeChild, "removeChild");
|
|
145
279
|
function setProperty(node, key, value) {
|
|
146
280
|
const previousValue = getRuntimeDebugHooks() ? readDebugValue(() => Reflect.get(node, key)) : void 0;
|
|
147
|
-
getRenderer().setProperty(node, key, value);
|
|
281
|
+
getRenderer().setProperty(node, PROPERTY_IDL_NAMES[key] ?? key, value);
|
|
148
282
|
if (key === "value" && node.tagName === "SELECT") {
|
|
149
283
|
scheduleSelectValueSync(node, value);
|
|
150
284
|
}
|
|
@@ -165,15 +299,19 @@ function scheduleSelectValueSync(node, value) {
|
|
|
165
299
|
pendingSelectValues.set(node, value);
|
|
166
300
|
if (selectSyncScheduled.has(node)) return;
|
|
167
301
|
selectSyncScheduled.add(node);
|
|
302
|
+
const renderer = getRenderer();
|
|
168
303
|
queueMicrotask(() => {
|
|
169
304
|
selectSyncScheduled.delete(node);
|
|
170
305
|
if (!pendingSelectValues.has(node)) return;
|
|
171
306
|
const pending = pendingSelectValues.get(node);
|
|
172
307
|
pendingSelectValues.delete(node);
|
|
173
|
-
|
|
308
|
+
renderer.setProperty(node, "value", pending);
|
|
174
309
|
});
|
|
175
310
|
}
|
|
176
311
|
__name(scheduleSelectValueSync, "scheduleSelectValueSync");
|
|
312
|
+
var PROPERTY_IDL_NAMES = {
|
|
313
|
+
autoFocus: "autofocus"
|
|
314
|
+
};
|
|
177
315
|
function createBlock(factory) {
|
|
178
316
|
const owner = (0, import_reactivity2.createOwner)();
|
|
179
317
|
(0, import_reactivity2.setOwnerDebugName)(owner, "dynamic");
|
|
@@ -193,6 +331,11 @@ function createBlock(factory) {
|
|
|
193
331
|
}
|
|
194
332
|
__name(createBlock, "createBlock");
|
|
195
333
|
function associateNodeOwner(node, owner) {
|
|
334
|
+
if (node === null || node === void 0 || typeof node !== "object" && typeof node !== "function") {
|
|
335
|
+
throw new Error(
|
|
336
|
+
`Vobs: associateNodeOwner \u6536\u5230\u975E\u8282\u70B9\u503C\uFF08${String(node)}\uFF09\u3002\u7EC4\u4EF6\u5FC5\u987B\u8FD4\u56DE VobsNode\uFF1B\u8FD4\u56DE null/undefined \u7531 createComponent \u8F6C\u6210\u7A7A\u6CE8\u91CA\u8282\u70B9\u3002`
|
|
337
|
+
);
|
|
338
|
+
}
|
|
196
339
|
nodeOwners.set(node, owner);
|
|
197
340
|
}
|
|
198
341
|
__name(associateNodeOwner, "associateNodeOwner");
|
|
@@ -290,82 +433,14 @@ function insertDynamic(parent, anchor, factory) {
|
|
|
290
433
|
}
|
|
291
434
|
__name(insertDynamic, "insertDynamic");
|
|
292
435
|
|
|
293
|
-
// packages/runtime/src/
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
this.code = options.code;
|
|
299
|
-
this.severity = options.severity ?? "error";
|
|
300
|
-
this.layer = options.layer ?? "runtime";
|
|
301
|
-
this.cause = options.cause;
|
|
302
|
-
this.fix = options.fix;
|
|
303
|
-
this.location = options.location;
|
|
304
|
-
this.trace = options.trace;
|
|
305
|
-
this.example = options.example;
|
|
306
|
-
this.docs = options.docs;
|
|
307
|
-
this.codeFrame = options.codeFrame;
|
|
308
|
-
}
|
|
309
|
-
};
|
|
310
|
-
__name(_VobsError, "VobsError");
|
|
311
|
-
var VobsError = _VobsError;
|
|
312
|
-
function isVobsError(value) {
|
|
313
|
-
return value instanceof VobsError || Boolean(value && typeof value === "object" && typeof value.code === "string" && typeof value.message === "string" && typeof value.layer === "string");
|
|
314
|
-
}
|
|
315
|
-
__name(isVobsError, "isVobsError");
|
|
316
|
-
function normalizeVobsError(value, defaults = {}) {
|
|
317
|
-
if (value instanceof VobsError) return value;
|
|
318
|
-
if (value instanceof Error) {
|
|
319
|
-
const metadata = value;
|
|
320
|
-
const code = defaults.code ?? (typeof metadata.vobsCode === "string" ? metadata.vobsCode : void 0);
|
|
321
|
-
if (code) defineErrorMetadata(value, "code", code);
|
|
322
|
-
defineErrorMetadata(value, "severity", defaults.severity ?? "error");
|
|
323
|
-
defineErrorMetadata(value, "layer", defaults.layer ?? "runtime");
|
|
324
|
-
const fix = defaults.fix ?? (typeof metadata.vobsHint === "string" ? metadata.vobsHint : void 0);
|
|
325
|
-
if (fix) defineErrorMetadata(value, "fix", fix);
|
|
326
|
-
const source = metadata.vobsSource;
|
|
327
|
-
if (source && typeof source === "object" && typeof source.file === "string" && typeof source.line === "number" && typeof source.column === "number") {
|
|
328
|
-
defineErrorMetadata(value, "location", source);
|
|
329
|
-
}
|
|
330
|
-
return value;
|
|
331
|
-
}
|
|
332
|
-
if (isVobsError(value)) {
|
|
333
|
-
const candidate = value;
|
|
334
|
-
return new VobsError({
|
|
335
|
-
code: candidate.code,
|
|
336
|
-
message: candidate.message,
|
|
337
|
-
severity: candidate.severity ?? defaults.severity,
|
|
338
|
-
layer: candidate.layer ?? defaults.layer,
|
|
339
|
-
cause: candidate.cause,
|
|
340
|
-
fix: candidate.fix ?? defaults.fix,
|
|
341
|
-
location: candidate.location,
|
|
342
|
-
trace: candidate.trace,
|
|
343
|
-
example: candidate.example,
|
|
344
|
-
docs: candidate.docs,
|
|
345
|
-
codeFrame: candidate.codeFrame
|
|
346
|
-
});
|
|
347
|
-
}
|
|
348
|
-
const message = String(value);
|
|
349
|
-
return new VobsError({
|
|
350
|
-
code: defaults.code ?? "VOBS_UNKNOWN",
|
|
351
|
-
message,
|
|
352
|
-
severity: defaults.severity ?? "error",
|
|
353
|
-
layer: defaults.layer ?? "runtime",
|
|
354
|
-
cause: void 0,
|
|
355
|
-
fix: defaults.fix
|
|
356
|
-
});
|
|
357
|
-
}
|
|
358
|
-
__name(normalizeVobsError, "normalizeVobsError");
|
|
359
|
-
function defineErrorMetadata(target, key, value) {
|
|
360
|
-
if (key in target) return;
|
|
361
|
-
try {
|
|
362
|
-
Object.defineProperty(target, key, { configurable: true, enumerable: false, value, writable: true });
|
|
363
|
-
} catch {
|
|
436
|
+
// packages/runtime/src/boundary.ts
|
|
437
|
+
function reportBoundaryError(event, loud) {
|
|
438
|
+
invokeRuntimeDebug("error", event);
|
|
439
|
+
if (loud && getRuntimeDebugHooks()?.error === void 0) {
|
|
440
|
+
console.error(formatVobsError(event.error, { includeStack: true }));
|
|
364
441
|
}
|
|
365
442
|
}
|
|
366
|
-
__name(
|
|
367
|
-
|
|
368
|
-
// packages/runtime/src/boundary.ts
|
|
443
|
+
__name(reportBoundaryError, "reportBoundaryError");
|
|
369
444
|
function insertBoundary(parent, anchor, options) {
|
|
370
445
|
const boundary = (0, import_reactivity5.createOwner)();
|
|
371
446
|
boundary.run(() => {
|
|
@@ -382,24 +457,24 @@ function insertBoundary(parent, anchor, options) {
|
|
|
382
457
|
fix: "\u68C0\u67E5\u7EC4\u4EF6\u6E32\u67D3\u903B\u8F91\uFF0C\u6216\u5728\u8FB9\u754C fallback \u4E2D\u63D0\u4F9B\u6062\u590D\u64CD\u4F5C\u3002"
|
|
383
458
|
});
|
|
384
459
|
lastError = normalized;
|
|
385
|
-
|
|
460
|
+
reportBoundaryError({
|
|
386
461
|
error: normalized,
|
|
387
462
|
owner: boundary,
|
|
388
463
|
phase: "boundary",
|
|
389
464
|
handled: true,
|
|
390
465
|
recovery: "fallback"
|
|
391
|
-
});
|
|
466
|
+
}, true);
|
|
392
467
|
error.value = normalized;
|
|
393
468
|
});
|
|
394
469
|
const retry = /* @__PURE__ */ __name(() => {
|
|
395
470
|
if (error.value) {
|
|
396
|
-
|
|
471
|
+
reportBoundaryError({
|
|
397
472
|
error: error.value,
|
|
398
473
|
owner: boundary,
|
|
399
474
|
phase: "boundary",
|
|
400
475
|
handled: true,
|
|
401
476
|
recovery: "retrying"
|
|
402
|
-
});
|
|
477
|
+
}, false);
|
|
403
478
|
}
|
|
404
479
|
error.value = null;
|
|
405
480
|
return options.onRetry?.();
|
|
@@ -414,13 +489,13 @@ function insertBoundary(parent, anchor, options) {
|
|
|
414
489
|
const currentError = error.value;
|
|
415
490
|
if (!currentError) {
|
|
416
491
|
if (fallbackActive && lastError) {
|
|
417
|
-
|
|
492
|
+
reportBoundaryError({
|
|
418
493
|
error: lastError,
|
|
419
494
|
owner: boundary,
|
|
420
495
|
phase: "boundary",
|
|
421
496
|
handled: true,
|
|
422
497
|
recovery: "recovered"
|
|
423
|
-
});
|
|
498
|
+
}, false);
|
|
424
499
|
lastError = null;
|
|
425
500
|
}
|
|
426
501
|
fallbackActive = false;
|