@vobs/runtime 1.2.0 → 1.2.2
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/dist/async-boundary.cjs +73 -374
- package/dist/async-boundary.cjs.map +1 -1
- package/dist/async-boundary.js +44 -367
- package/dist/async-boundary.js.map +1 -1
- package/dist/bind.cjs +83 -234
- package/dist/bind.cjs.map +1 -1
- package/dist/bind.js +54 -227
- package/dist/bind.js.map +1 -1
- package/dist/boundary.cjs +67 -369
- package/dist/boundary.cjs.map +1 -1
- package/dist/boundary.js +42 -366
- package/dist/boundary.js.map +1 -1
- package/dist/debug.cjs +41 -12
- package/dist/debug.cjs.map +1 -1
- package/dist/debug.js +10 -3
- package/dist/debug.js.map +1 -1
- package/dist/dynamic.cjs +76 -378
- package/dist/dynamic.cjs.map +1 -1
- package/dist/dynamic.js +43 -367
- package/dist/dynamic.js.map +1 -1
- package/dist/error-boundary.cjs +72 -371
- package/dist/error-boundary.cjs.map +1 -1
- package/dist/error-boundary.js +43 -366
- package/dist/error-boundary.js.map +1 -1
- package/dist/error.cjs +35 -9
- package/dist/error.cjs.map +1 -1
- package/dist/error.js +7 -3
- package/dist/error.js.map +1 -1
- package/dist/fragment.cjs +44 -133
- package/dist/fragment.cjs.map +1 -1
- package/dist/fragment.js +19 -130
- package/dist/fragment.js.map +1 -1
- package/dist/hmr.cjs +50 -22
- package/dist/hmr.cjs.map +1 -1
- package/dist/hmr.js +9 -3
- package/dist/hmr.js.map +1 -1
- package/dist/index.cjs +193 -462
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +92 -385
- package/dist/index.js.map +1 -1
- package/dist/ops.cjs +126 -242
- package/dist/ops.cjs.map +1 -1
- package/dist/ops.js +76 -214
- package/dist/ops.js.map +1 -1
- package/dist/profiler.cjs +69 -320
- package/dist/profiler.cjs.map +1 -1
- package/dist/profiler.js +40 -315
- package/dist/profiler.js.map +1 -1
- package/dist/ref.cjs +33 -131
- package/dist/ref.cjs.map +1 -1
- package/dist/ref.js +10 -130
- package/dist/ref.js.map +1 -1
- package/dist/renderer.cjs +18 -2
- package/dist/renderer.cjs.map +1 -1
- package/dist/renderer.js +0 -2
- package/dist/renderer.js.map +1 -1
- package/dist/template.cjs +29 -6
- package/dist/template.cjs.map +1 -1
- package/dist/template.js +4 -3
- package/dist/template.js.map +1 -1
- package/package.json +6 -2
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,85 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
var __VOBS_CJS_FILE_URL = require("url").pathToFileURL(__filename).href;
|
|
2
|
+
"use strict";
|
|
3
3
|
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
4
7
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
|
+
|
|
22
|
+
// packages/runtime/src/index.ts
|
|
23
|
+
var src_exports = {};
|
|
24
|
+
__export(src_exports, {
|
|
25
|
+
AsyncBoundary: () => AsyncBoundary,
|
|
26
|
+
ErrorBoundary: () => ErrorBoundary,
|
|
27
|
+
Profiler: () => Profiler,
|
|
28
|
+
VobsError: () => VobsError,
|
|
29
|
+
addEventListener: () => addEventListener,
|
|
30
|
+
bindAttribute: () => bindAttribute,
|
|
31
|
+
bindProperty: () => bindProperty,
|
|
32
|
+
bindText: () => bindText,
|
|
33
|
+
clear: () => clear,
|
|
34
|
+
cloneTemplate: () => cloneTemplate,
|
|
35
|
+
createBlock: () => createBlock,
|
|
36
|
+
createComment: () => createComment,
|
|
37
|
+
createComponent: () => createComponent,
|
|
38
|
+
createElement: () => createElement,
|
|
39
|
+
createFragment: () => createFragment,
|
|
40
|
+
createHmrStateStore: () => createHmrStateStore,
|
|
41
|
+
createTemplate: () => createTemplate,
|
|
42
|
+
createText: () => createText,
|
|
43
|
+
createVobsError: () => createVobsError,
|
|
44
|
+
describeDebugNode: () => describeDebugNode,
|
|
45
|
+
disposeHmrModule: () => disposeHmrModule,
|
|
46
|
+
disposeNodeOwner: () => disposeNodeOwner,
|
|
47
|
+
formatVobsError: () => formatVobsError,
|
|
48
|
+
getRenderer: () => getRenderer,
|
|
49
|
+
getRuntimeDebugContext: () => getRuntimeDebugContext,
|
|
50
|
+
getRuntimeDebugHooks: () => getRuntimeDebugHooks,
|
|
51
|
+
insertAsyncBoundary: () => insertAsyncBoundary,
|
|
52
|
+
insertBefore: () => insertBefore,
|
|
53
|
+
insertBoundary: () => insertBoundary,
|
|
54
|
+
insertDynamic: () => insertDynamic,
|
|
55
|
+
insertDynamicValue: () => insertDynamicValue,
|
|
56
|
+
insertErrorBoundary: () => insertErrorBoundary,
|
|
57
|
+
insertList: () => insertList,
|
|
58
|
+
insertProfiler: () => insertProfiler,
|
|
59
|
+
invokeRuntimeDebug: () => invokeRuntimeDebug,
|
|
60
|
+
isVobsError: () => isVobsError,
|
|
61
|
+
isVobsFragment: () => isVobsFragment,
|
|
62
|
+
markHmrInstanceMounted: () => markHmrInstanceMounted,
|
|
63
|
+
normalizeDynamicChild: () => normalizeDynamicChild,
|
|
64
|
+
normalizeVobsError: () => normalizeVobsError,
|
|
65
|
+
pushRuntimeDebugContext: () => pushRuntimeDebugContext,
|
|
66
|
+
ref: () => ref,
|
|
67
|
+
registerHmrInstance: () => registerHmrInstance,
|
|
68
|
+
removeChild: () => removeChild,
|
|
69
|
+
removeEventListener: () => removeEventListener,
|
|
70
|
+
resolveComponent: () => resolveComponent,
|
|
71
|
+
runWithRuntimeDebugContext: () => runWithRuntimeDebugContext,
|
|
72
|
+
setAttribute: () => setAttribute,
|
|
73
|
+
setProperty: () => setProperty,
|
|
74
|
+
setRef: () => setRef,
|
|
75
|
+
setRenderer: () => setRenderer,
|
|
76
|
+
setRuntimeDebugHooks: () => setRuntimeDebugHooks,
|
|
77
|
+
setStaticProps: () => setStaticProps,
|
|
78
|
+
setTextContent: () => setTextContent,
|
|
79
|
+
spreadProps: () => spreadProps,
|
|
80
|
+
updateHmrModule: () => updateHmrModule
|
|
81
|
+
});
|
|
82
|
+
module.exports = __toCommonJS(src_exports);
|
|
5
83
|
|
|
6
84
|
// packages/runtime/src/debug.ts
|
|
7
85
|
var activeRuntimeDebugHooks = null;
|
|
@@ -82,373 +160,19 @@ function describeDebugNode(node) {
|
|
|
82
160
|
}
|
|
83
161
|
__name(describeDebugNode, "describeDebugNode");
|
|
84
162
|
|
|
85
|
-
// packages/
|
|
86
|
-
var
|
|
87
|
-
var signalNames = /* @__PURE__ */ new WeakMap();
|
|
88
|
-
function hasDebugHooks() {
|
|
89
|
-
return activeDebugHooks !== null;
|
|
90
|
-
}
|
|
91
|
-
__name(hasDebugHooks, "hasDebugHooks");
|
|
92
|
-
function setSignalDebugName(signal, name) {
|
|
93
|
-
signalNames.set(signal, name);
|
|
94
|
-
invokeDebug("signalNamed", signal, name);
|
|
95
|
-
}
|
|
96
|
-
__name(setSignalDebugName, "setSignalDebugName");
|
|
97
|
-
function invokeDebug(name, ...args) {
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
__name(invokeDebug, "invokeDebug");
|
|
101
|
-
|
|
102
|
-
// packages/reactivity/src/owner.ts
|
|
103
|
-
var currentOwner = null;
|
|
104
|
-
var nextOwnerId = 1;
|
|
105
|
-
var ownerNames = /* @__PURE__ */ new WeakMap();
|
|
106
|
-
function createOwner() {
|
|
107
|
-
const parent = currentOwner;
|
|
108
|
-
let disposed = parent?.disposed ?? false;
|
|
109
|
-
const children = [];
|
|
110
|
-
const cleanups = [];
|
|
111
|
-
const errorHandlers = /* @__PURE__ */ new Set();
|
|
112
|
-
const owner = {
|
|
113
|
-
id: `owner-${nextOwnerId++}`,
|
|
114
|
-
parent,
|
|
115
|
-
children,
|
|
116
|
-
depth: (parent?.depth ?? -1) + 1,
|
|
117
|
-
get disposed() {
|
|
118
|
-
return disposed;
|
|
119
|
-
},
|
|
120
|
-
run(fn) {
|
|
121
|
-
if (disposed) throw new Error("Vobs: \u5DF2\u9500\u6BC1\u7684 Owner \u4E0D\u80FD\u7EE7\u7EED\u8FD0\u884C");
|
|
122
|
-
const previous = currentOwner;
|
|
123
|
-
currentOwner = owner;
|
|
124
|
-
try {
|
|
125
|
-
return fn();
|
|
126
|
-
} finally {
|
|
127
|
-
currentOwner = previous;
|
|
128
|
-
}
|
|
129
|
-
},
|
|
130
|
-
addCleanup(cleanup) {
|
|
131
|
-
if (disposed) {
|
|
132
|
-
cleanup();
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
cleanups.push(cleanup);
|
|
136
|
-
},
|
|
137
|
-
onDispose(cleanup) {
|
|
138
|
-
owner.addCleanup(cleanup);
|
|
139
|
-
},
|
|
140
|
-
onError(handler) {
|
|
141
|
-
errorHandlers.add(handler);
|
|
142
|
-
const remove = /* @__PURE__ */ __name(() => errorHandlers.delete(handler), "remove");
|
|
143
|
-
owner.addCleanup(remove);
|
|
144
|
-
return remove;
|
|
145
|
-
},
|
|
146
|
-
handleError(error) {
|
|
147
|
-
for (const handler of [...errorHandlers].reverse()) {
|
|
148
|
-
try {
|
|
149
|
-
handler(error);
|
|
150
|
-
return true;
|
|
151
|
-
} catch (handlerError) {
|
|
152
|
-
return parent?.handleError(handlerError) ?? false;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
return parent?.handleError(error) ?? false;
|
|
156
|
-
},
|
|
157
|
-
dispose() {
|
|
158
|
-
if (disposed) return;
|
|
159
|
-
disposed = true;
|
|
160
|
-
for (const child of [...children]) child.dispose();
|
|
161
|
-
children.length = 0;
|
|
162
|
-
let firstError;
|
|
163
|
-
for (let index = cleanups.length - 1; index >= 0; index--) {
|
|
164
|
-
try {
|
|
165
|
-
cleanups[index]();
|
|
166
|
-
} catch (error) {
|
|
167
|
-
firstError ?? (firstError = error);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
cleanups.length = 0;
|
|
171
|
-
if (parent) {
|
|
172
|
-
const index = parent.children.indexOf(owner);
|
|
173
|
-
if (index >= 0) parent.children.splice(index, 1);
|
|
174
|
-
}
|
|
175
|
-
if (firstError) throw firstError;
|
|
176
|
-
}
|
|
177
|
-
};
|
|
178
|
-
if (parent && !parent.disposed) parent.children.push(owner);
|
|
179
|
-
return owner;
|
|
180
|
-
}
|
|
181
|
-
__name(createOwner, "createOwner");
|
|
182
|
-
function setOwnerDebugName(owner, name) {
|
|
183
|
-
ownerNames.set(owner, name);
|
|
184
|
-
}
|
|
185
|
-
__name(setOwnerDebugName, "setOwnerDebugName");
|
|
186
|
-
function getCurrentOwner() {
|
|
187
|
-
return currentOwner;
|
|
188
|
-
}
|
|
189
|
-
__name(getCurrentOwner, "getCurrentOwner");
|
|
190
|
-
|
|
191
|
-
// packages/reactivity/src/signal.ts
|
|
192
|
-
var currentSubscriber = null;
|
|
193
|
-
function getCurrentSubscriber() {
|
|
194
|
-
return currentSubscriber;
|
|
195
|
-
}
|
|
196
|
-
__name(getCurrentSubscriber, "getCurrentSubscriber");
|
|
197
|
-
function setCurrentSubscriber(subscriber) {
|
|
198
|
-
currentSubscriber = subscriber;
|
|
199
|
-
}
|
|
200
|
-
__name(setCurrentSubscriber, "setCurrentSubscriber");
|
|
201
|
-
function trackDependency(dependency) {
|
|
202
|
-
if (!currentSubscriber || currentSubscriber.disposed) return;
|
|
203
|
-
!currentSubscriber.dependencies.has(dependency);
|
|
204
|
-
currentSubscriber.dependencies.add(dependency);
|
|
205
|
-
}
|
|
206
|
-
__name(trackDependency, "trackDependency");
|
|
207
|
-
function state(initialValue, debugName) {
|
|
208
|
-
let value = initialValue;
|
|
209
|
-
let disposed = false;
|
|
210
|
-
const subscribers = /* @__PURE__ */ new Set();
|
|
211
|
-
const signalInstance = {
|
|
212
|
-
get value() {
|
|
213
|
-
const subscriber = getCurrentSubscriber();
|
|
214
|
-
if (subscriber && !subscriber.disposed) {
|
|
215
|
-
subscribers.add(subscriber);
|
|
216
|
-
trackDependency(signalInstance);
|
|
217
|
-
}
|
|
218
|
-
return value;
|
|
219
|
-
},
|
|
220
|
-
set value(nextValue) {
|
|
221
|
-
if (disposed || Object.is(value, nextValue)) return;
|
|
222
|
-
value = nextValue;
|
|
223
|
-
for (const subscriber of [...subscribers]) subscriber.notify();
|
|
224
|
-
},
|
|
225
|
-
unsubscribe(subscriber) {
|
|
226
|
-
subscribers.delete(subscriber);
|
|
227
|
-
},
|
|
228
|
-
// 与 `.value =` 赋值同一条路径:判等短路、debug hook、notify 全部一致。
|
|
229
|
-
// 以闭包实现,可安全地作为回调直接传递(无 this 绑定问题)。
|
|
230
|
-
set(next) {
|
|
231
|
-
signalInstance.value = next;
|
|
232
|
-
},
|
|
233
|
-
dispose() {
|
|
234
|
-
if (disposed) return;
|
|
235
|
-
disposed = true;
|
|
236
|
-
subscribers.clear();
|
|
237
|
-
}
|
|
238
|
-
};
|
|
239
|
-
const owner = getCurrentOwner();
|
|
240
|
-
owner?.addCleanup(signalInstance.dispose);
|
|
241
|
-
if (debugName?.trim()) setSignalDebugName(signalInstance, debugName.trim());
|
|
242
|
-
return signalInstance;
|
|
243
|
-
}
|
|
244
|
-
__name(state, "state");
|
|
245
|
-
|
|
246
|
-
// packages/reactivity/src/scheduler.ts
|
|
247
|
-
var _Scheduler = class _Scheduler {
|
|
248
|
-
constructor() {
|
|
249
|
-
this.dirtyEffects = /* @__PURE__ */ new Set();
|
|
250
|
-
this.lowPriorityEffects = /* @__PURE__ */ new Set();
|
|
251
|
-
// flush 不可重入(flushing 标志保证),缓冲数组可在轮次间安全复用,避免每轮分配。
|
|
252
|
-
this.normalBuffer = [];
|
|
253
|
-
this.lowBuffer = [];
|
|
254
|
-
this.flushing = false;
|
|
255
|
-
this.scheduled = false;
|
|
256
|
-
this.batchDepth = 0;
|
|
257
|
-
}
|
|
258
|
-
schedule(effect2) {
|
|
259
|
-
if (effect2.disposed) return;
|
|
260
|
-
this.dirtyEffects.add(effect2);
|
|
261
|
-
this.lowPriorityEffects.delete(effect2);
|
|
262
|
-
this.ensureScheduled();
|
|
263
|
-
}
|
|
264
|
-
/** Queue an effect behind normal updates while preserving deterministic order. */
|
|
265
|
-
scheduleLow(effect2) {
|
|
266
|
-
if (effect2.disposed) return;
|
|
267
|
-
if (!this.dirtyEffects.has(effect2)) this.lowPriorityEffects.add(effect2);
|
|
268
|
-
this.ensureScheduled();
|
|
269
|
-
}
|
|
270
|
-
ensureScheduled() {
|
|
271
|
-
if (this.batchDepth === 0 && !this.flushing && !this.scheduled) {
|
|
272
|
-
this.scheduled = true;
|
|
273
|
-
queueMicrotask(() => {
|
|
274
|
-
this.scheduled = false;
|
|
275
|
-
this.flush();
|
|
276
|
-
});
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
remove(effect2) {
|
|
280
|
-
this.dirtyEffects.delete(effect2);
|
|
281
|
-
this.lowPriorityEffects.delete(effect2);
|
|
282
|
-
}
|
|
283
|
-
batch(fn) {
|
|
284
|
-
this.batchDepth++;
|
|
285
|
-
try {
|
|
286
|
-
return fn();
|
|
287
|
-
} finally {
|
|
288
|
-
this.batchDepth--;
|
|
289
|
-
if (this.batchDepth === 0) this.flush();
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
flush() {
|
|
293
|
-
if (this.flushing || this.batchDepth > 0) return;
|
|
294
|
-
this.flushing = true;
|
|
295
|
-
let rounds = 0;
|
|
296
|
-
let firstError;
|
|
297
|
-
let hasError = false;
|
|
298
|
-
try {
|
|
299
|
-
while (this.dirtyEffects.size > 0 || this.lowPriorityEffects.size > 0) {
|
|
300
|
-
if (++rounds > 100) {
|
|
301
|
-
this.dirtyEffects.clear();
|
|
302
|
-
this.lowPriorityEffects.clear();
|
|
303
|
-
throw new Error("Vobs: \u54CD\u5E94\u5F0F\u66F4\u65B0\u8D85\u8FC7 100 \u8F6E\uFF0C\u53EF\u80FD\u5B58\u5728\u5FAA\u73AF\u4F9D\u8D56");
|
|
304
|
-
}
|
|
305
|
-
this.collectRunnable(this.dirtyEffects, this.normalBuffer);
|
|
306
|
-
this.collectRunnable(this.lowPriorityEffects, this.lowBuffer);
|
|
307
|
-
sortEffects(this.normalBuffer);
|
|
308
|
-
sortEffects(this.lowBuffer);
|
|
309
|
-
for (const effect2 of this.normalBuffer) {
|
|
310
|
-
try {
|
|
311
|
-
effect2.run();
|
|
312
|
-
} catch (error) {
|
|
313
|
-
if (!hasError) {
|
|
314
|
-
firstError = error;
|
|
315
|
-
hasError = true;
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
for (const effect2 of this.lowBuffer) {
|
|
320
|
-
try {
|
|
321
|
-
effect2.run();
|
|
322
|
-
} catch (error) {
|
|
323
|
-
if (!hasError) {
|
|
324
|
-
firstError = error;
|
|
325
|
-
hasError = true;
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
this.normalBuffer.length = 0;
|
|
330
|
-
this.lowBuffer.length = 0;
|
|
331
|
-
}
|
|
332
|
-
} finally {
|
|
333
|
-
this.normalBuffer.length = 0;
|
|
334
|
-
this.lowBuffer.length = 0;
|
|
335
|
-
this.flushing = false;
|
|
336
|
-
}
|
|
337
|
-
if (hasError) throw firstError;
|
|
338
|
-
}
|
|
339
|
-
/** 收集未 disposed 的 effect 并清空源集合;run() 期间新调度的 effect 留给下一轮。 */
|
|
340
|
-
collectRunnable(source, target) {
|
|
341
|
-
for (const effect2 of source) {
|
|
342
|
-
if (!effect2.disposed) target.push(effect2);
|
|
343
|
-
}
|
|
344
|
-
source.clear();
|
|
345
|
-
}
|
|
346
|
-
};
|
|
347
|
-
__name(_Scheduler, "Scheduler");
|
|
348
|
-
var Scheduler = _Scheduler;
|
|
349
|
-
function sortEffects(effects) {
|
|
350
|
-
if (effects.length > 1) {
|
|
351
|
-
effects.sort((a, b) => b.depth - a.depth || a.order - b.order);
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
__name(sortEffects, "sortEffects");
|
|
355
|
-
var scheduler = new Scheduler();
|
|
163
|
+
// packages/runtime/src/fragment.ts
|
|
164
|
+
var import_reactivity3 = require("@vobs/reactivity");
|
|
356
165
|
|
|
357
|
-
// packages/
|
|
358
|
-
var
|
|
359
|
-
function cleanupDependencies(subscriber) {
|
|
360
|
-
for (const dependency of subscriber.dependencies) {
|
|
361
|
-
dependency.unsubscribe(subscriber);
|
|
362
|
-
}
|
|
363
|
-
subscriber.dependencies.clear();
|
|
364
|
-
}
|
|
365
|
-
__name(cleanupDependencies, "cleanupDependencies");
|
|
366
|
-
function effect(callback) {
|
|
367
|
-
const owner = getCurrentOwner();
|
|
368
|
-
let cleanup;
|
|
369
|
-
let dirty = true;
|
|
370
|
-
let disposed = false;
|
|
371
|
-
const eff = {
|
|
372
|
-
order: nextEffectOrder++,
|
|
373
|
-
depth: owner?.depth ?? 0,
|
|
374
|
-
dependencies: /* @__PURE__ */ new Set(),
|
|
375
|
-
get disposed() {
|
|
376
|
-
return disposed;
|
|
377
|
-
},
|
|
378
|
-
notify() {
|
|
379
|
-
if (disposed || dirty) return;
|
|
380
|
-
dirty = true;
|
|
381
|
-
scheduler.schedule(eff);
|
|
382
|
-
},
|
|
383
|
-
run() {
|
|
384
|
-
if (disposed || !dirty) return;
|
|
385
|
-
dirty = false;
|
|
386
|
-
const previousCleanup = cleanup;
|
|
387
|
-
cleanup = void 0;
|
|
388
|
-
let cleanupError;
|
|
389
|
-
if (previousCleanup) {
|
|
390
|
-
try {
|
|
391
|
-
previousCleanup();
|
|
392
|
-
} catch (error) {
|
|
393
|
-
const handled2 = owner?.handleError(error) ?? false;
|
|
394
|
-
if (!handled2) cleanupError = error;
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
|
-
cleanupDependencies(eff);
|
|
398
|
-
const previous = getCurrentSubscriber();
|
|
399
|
-
setCurrentSubscriber(eff);
|
|
400
|
-
let thrown;
|
|
401
|
-
let handled = false;
|
|
402
|
-
try {
|
|
403
|
-
const result = owner ? owner.run(callback) : callback();
|
|
404
|
-
cleanup = typeof result === "function" ? result : void 0;
|
|
405
|
-
} catch (error) {
|
|
406
|
-
thrown = error;
|
|
407
|
-
handled = owner?.handleError(error) ?? false;
|
|
408
|
-
if (!handled) throw error;
|
|
409
|
-
} finally {
|
|
410
|
-
setCurrentSubscriber(previous);
|
|
411
|
-
}
|
|
412
|
-
if (cleanupError && !thrown) throw cleanupError;
|
|
413
|
-
},
|
|
414
|
-
scheduleLow() {
|
|
415
|
-
if (disposed || dirty) return;
|
|
416
|
-
dirty = true;
|
|
417
|
-
scheduler.scheduleLow(eff);
|
|
418
|
-
},
|
|
419
|
-
dispose() {
|
|
420
|
-
if (disposed) return;
|
|
421
|
-
disposed = true;
|
|
422
|
-
dirty = false;
|
|
423
|
-
scheduler.remove(eff);
|
|
424
|
-
const previousCleanup = cleanup;
|
|
425
|
-
cleanup = void 0;
|
|
426
|
-
let cleanupError;
|
|
427
|
-
if (previousCleanup) {
|
|
428
|
-
try {
|
|
429
|
-
previousCleanup();
|
|
430
|
-
} catch (error) {
|
|
431
|
-
const handled = owner?.handleError(error) ?? false;
|
|
432
|
-
if (!handled) cleanupError = error;
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
cleanupDependencies(eff);
|
|
436
|
-
if (cleanupError) throw cleanupError;
|
|
437
|
-
}
|
|
438
|
-
};
|
|
439
|
-
owner?.addCleanup(eff.dispose);
|
|
440
|
-
eff.run();
|
|
441
|
-
return eff;
|
|
442
|
-
}
|
|
443
|
-
__name(effect, "effect");
|
|
166
|
+
// packages/runtime/src/ops.ts
|
|
167
|
+
var import_reactivity2 = require("@vobs/reactivity");
|
|
444
168
|
|
|
445
169
|
// packages/runtime/src/hmr.ts
|
|
446
170
|
var globalTarget = globalThis;
|
|
447
171
|
var hmrGlobal = globalTarget.__VOBS_HMR__ ?? { modules: /* @__PURE__ */ new Map() };
|
|
448
172
|
globalTarget.__VOBS_HMR__ = hmrGlobal;
|
|
449
173
|
function resolveComponent(component, moduleId, exportName) {
|
|
450
|
-
const
|
|
451
|
-
const existing =
|
|
174
|
+
const module2 = getModule(moduleId);
|
|
175
|
+
const existing = module2.components.get(exportName);
|
|
452
176
|
if (existing) return existing;
|
|
453
177
|
const proxy = /* @__PURE__ */ __name(((props) => {
|
|
454
178
|
const current = proxy.current;
|
|
@@ -459,15 +183,15 @@ function resolveComponent(component, moduleId, exportName) {
|
|
|
459
183
|
displayName: { configurable: true, value: component.name || exportName },
|
|
460
184
|
hmrKey: { configurable: false, value: `${moduleId}:${exportName}` }
|
|
461
185
|
});
|
|
462
|
-
|
|
186
|
+
module2.components.set(exportName, proxy);
|
|
463
187
|
return proxy;
|
|
464
188
|
}
|
|
465
189
|
__name(resolveComponent, "resolveComponent");
|
|
466
190
|
function updateHmrModule(_moduleId, nextModule) {
|
|
467
191
|
const modules = [...hmrGlobal.modules.values()];
|
|
468
|
-
for (const
|
|
192
|
+
for (const module2 of modules) {
|
|
469
193
|
let changed = false;
|
|
470
|
-
for (const [name, proxy] of
|
|
194
|
+
for (const [name, proxy] of module2.components) {
|
|
471
195
|
const next = nextModule[name];
|
|
472
196
|
if (typeof next !== "function") continue;
|
|
473
197
|
const hmrProxy = proxy;
|
|
@@ -476,7 +200,7 @@ function updateHmrModule(_moduleId, nextModule) {
|
|
|
476
200
|
changed = true;
|
|
477
201
|
}
|
|
478
202
|
if (!changed) continue;
|
|
479
|
-
for (const instance of
|
|
203
|
+
for (const instance of module2.instances) {
|
|
480
204
|
try {
|
|
481
205
|
instance.refresh();
|
|
482
206
|
} catch {
|
|
@@ -489,21 +213,21 @@ function disposeHmrModule(_moduleId) {
|
|
|
489
213
|
}
|
|
490
214
|
__name(disposeHmrModule, "disposeHmrModule");
|
|
491
215
|
function createHmrStateStore(moduleId) {
|
|
492
|
-
const
|
|
216
|
+
const state4 = getModule(moduleId).state;
|
|
493
217
|
return {
|
|
494
218
|
get(key, initial) {
|
|
495
|
-
if (!
|
|
496
|
-
return
|
|
219
|
+
if (!state4.has(key)) state4.set(key, typeof initial === "function" ? initial() : initial);
|
|
220
|
+
return state4.get(key);
|
|
497
221
|
},
|
|
498
222
|
set(key, value) {
|
|
499
|
-
|
|
223
|
+
state4.set(key, value);
|
|
500
224
|
},
|
|
501
|
-
has: /* @__PURE__ */ __name((key) =>
|
|
225
|
+
has: /* @__PURE__ */ __name((key) => state4.has(key), "has"),
|
|
502
226
|
delete: /* @__PURE__ */ __name((key) => {
|
|
503
|
-
|
|
227
|
+
state4.delete(key);
|
|
504
228
|
}, "delete"),
|
|
505
229
|
clear: /* @__PURE__ */ __name(() => {
|
|
506
|
-
|
|
230
|
+
state4.clear();
|
|
507
231
|
}, "clear")
|
|
508
232
|
};
|
|
509
233
|
}
|
|
@@ -520,12 +244,12 @@ function markHmrInstanceMounted(node, parent) {
|
|
|
520
244
|
}
|
|
521
245
|
__name(markHmrInstanceMounted, "markHmrInstanceMounted");
|
|
522
246
|
function getModule(moduleId) {
|
|
523
|
-
let
|
|
524
|
-
if (!
|
|
525
|
-
|
|
526
|
-
hmrGlobal.modules.set(moduleId,
|
|
247
|
+
let module2 = hmrGlobal.modules.get(moduleId);
|
|
248
|
+
if (!module2) {
|
|
249
|
+
module2 = { components: /* @__PURE__ */ new Map(), state: /* @__PURE__ */ new Map(), instances: /* @__PURE__ */ new Set() };
|
|
250
|
+
hmrGlobal.modules.set(moduleId, module2);
|
|
527
251
|
}
|
|
528
|
-
return
|
|
252
|
+
return module2;
|
|
529
253
|
}
|
|
530
254
|
__name(getModule, "getModule");
|
|
531
255
|
var hmrInstances = /* @__PURE__ */ new WeakMap();
|
|
@@ -535,6 +259,7 @@ function associateHmrInstance(node, instance) {
|
|
|
535
259
|
__name(associateHmrInstance, "associateHmrInstance");
|
|
536
260
|
|
|
537
261
|
// packages/runtime/src/ref.ts
|
|
262
|
+
var import_reactivity = require("@vobs/reactivity");
|
|
538
263
|
function ref(initialValue = null) {
|
|
539
264
|
return { current: initialValue };
|
|
540
265
|
}
|
|
@@ -542,7 +267,7 @@ __name(ref, "ref");
|
|
|
542
267
|
function setRef(node, target) {
|
|
543
268
|
if (!isRefTarget(target)) return;
|
|
544
269
|
if (isSSRNode(node)) return;
|
|
545
|
-
const owner = getCurrentOwner();
|
|
270
|
+
const owner = (0, import_reactivity.getCurrentOwner)();
|
|
546
271
|
assignRef(target, node);
|
|
547
272
|
owner?.onDispose(() => {
|
|
548
273
|
if (isObjectRef(target) && target.current !== node) return;
|
|
@@ -710,7 +435,7 @@ function formatStyle(value) {
|
|
|
710
435
|
__name(formatStyle, "formatStyle");
|
|
711
436
|
function addEventListener(node, event, handler) {
|
|
712
437
|
const renderer = getRenderer();
|
|
713
|
-
const owner = getCurrentOwner();
|
|
438
|
+
const owner = (0, import_reactivity2.getCurrentOwner)();
|
|
714
439
|
let bindings = eventBindings.get(node);
|
|
715
440
|
if (!bindings) {
|
|
716
441
|
bindings = /* @__PURE__ */ new Map();
|
|
@@ -756,9 +481,9 @@ function clear(container) {
|
|
|
756
481
|
}
|
|
757
482
|
__name(clear, "clear");
|
|
758
483
|
function createComponent(component, props, source) {
|
|
759
|
-
const owner = createOwner();
|
|
484
|
+
const owner = (0, import_reactivity2.createOwner)();
|
|
760
485
|
const componentName = component.displayName || component.name || "anonymous";
|
|
761
|
-
setOwnerDebugName(owner, source ? `${componentName} (${source.file}:${source.line}:${source.column})` : componentName);
|
|
486
|
+
(0, import_reactivity2.setOwnerDebugName)(owner, source ? `${componentName} (${source.file}:${source.line}:${source.column})` : componentName);
|
|
762
487
|
owner.onError((reason) => {
|
|
763
488
|
attachSourceLocation(reason, source);
|
|
764
489
|
attachComponentContext(reason, componentName, owner.id);
|
|
@@ -827,8 +552,8 @@ function attachComponentContext(reason, component, ownerId) {
|
|
|
827
552
|
}
|
|
828
553
|
__name(attachComponentContext, "attachComponentContext");
|
|
829
554
|
function createBlock(factory) {
|
|
830
|
-
const owner = createOwner();
|
|
831
|
-
setOwnerDebugName(owner, "dynamic");
|
|
555
|
+
const owner = (0, import_reactivity2.createOwner)();
|
|
556
|
+
(0, import_reactivity2.setOwnerDebugName)(owner, "dynamic");
|
|
832
557
|
let node;
|
|
833
558
|
try {
|
|
834
559
|
node = owner.run(factory);
|
|
@@ -862,7 +587,7 @@ function createFragment(factory) {
|
|
|
862
587
|
const end = createComment("vobs:fragment:end");
|
|
863
588
|
let parent = null;
|
|
864
589
|
let initialized = false;
|
|
865
|
-
const owner = getCurrentOwner();
|
|
590
|
+
const owner = (0, import_reactivity3.getCurrentOwner)();
|
|
866
591
|
const fragment = {
|
|
867
592
|
kind: "vobs-fragment",
|
|
868
593
|
start,
|
|
@@ -924,37 +649,39 @@ function moveRange(parent, start, end, anchor) {
|
|
|
924
649
|
__name(moveRange, "moveRange");
|
|
925
650
|
|
|
926
651
|
// packages/runtime/src/bind.ts
|
|
652
|
+
var import_reactivity4 = require("@vobs/reactivity");
|
|
927
653
|
function readSource(source) {
|
|
928
654
|
return typeof source === "function" ? source() : source.value;
|
|
929
655
|
}
|
|
930
656
|
__name(readSource, "readSource");
|
|
931
657
|
function bindText(node, source) {
|
|
932
|
-
effect(() => {
|
|
658
|
+
(0, import_reactivity4.effect)(() => {
|
|
933
659
|
const value = readSource(source);
|
|
934
660
|
setTextContent(node, value === null || value === void 0 || typeof value === "boolean" ? "" : String(value));
|
|
935
661
|
});
|
|
936
662
|
}
|
|
937
663
|
__name(bindText, "bindText");
|
|
938
664
|
function bindAttribute(node, key, source) {
|
|
939
|
-
effect(() => {
|
|
665
|
+
(0, import_reactivity4.effect)(() => {
|
|
940
666
|
const value = readSource(source);
|
|
941
667
|
setAttribute(node, key, key === "style" && value && typeof value === "object" && !Array.isArray(value) ? Object.entries(value).filter(([, entry]) => entry !== null && entry !== void 0 && entry !== false).map(([name, entry]) => `${name.replace(/[A-Z]/gu, (match) => `-${match.toLowerCase()}`)}:${String(entry)}`).join(";") : String(value));
|
|
942
668
|
});
|
|
943
669
|
}
|
|
944
670
|
__name(bindAttribute, "bindAttribute");
|
|
945
671
|
function bindProperty(node, key, source) {
|
|
946
|
-
effect(() => {
|
|
672
|
+
(0, import_reactivity4.effect)(() => {
|
|
947
673
|
setProperty(node, key, readSource(source));
|
|
948
674
|
});
|
|
949
675
|
}
|
|
950
676
|
__name(bindProperty, "bindProperty");
|
|
951
677
|
|
|
952
678
|
// packages/runtime/src/dynamic.ts
|
|
679
|
+
var import_reactivity5 = require("@vobs/reactivity");
|
|
953
680
|
function insertDynamic(parent, anchor, factory) {
|
|
954
681
|
const marker = createComment("vobs:dynamic");
|
|
955
682
|
insertBefore(parent, marker, anchor);
|
|
956
683
|
let current = null;
|
|
957
|
-
effect(() => {
|
|
684
|
+
(0, import_reactivity5.effect)(() => {
|
|
958
685
|
const next = createBlock(factory);
|
|
959
686
|
if (next === current) return;
|
|
960
687
|
if (current) removeChild(parent, current);
|
|
@@ -968,8 +695,8 @@ function insertDynamicValue(parent, anchor, factory) {
|
|
|
968
695
|
insertBefore(parent, marker, anchor);
|
|
969
696
|
let current = null;
|
|
970
697
|
let scope = null;
|
|
971
|
-
effect(() => {
|
|
972
|
-
const nextScope = createOwner();
|
|
698
|
+
(0, import_reactivity5.effect)(() => {
|
|
699
|
+
const nextScope = (0, import_reactivity5.createOwner)();
|
|
973
700
|
const next = nextScope.run(() => normalizeDynamicChild(factory()));
|
|
974
701
|
if (next === current) {
|
|
975
702
|
nextScope.dispose();
|
|
@@ -1009,7 +736,7 @@ function insertList(parent, anchor, source, renderItem, keyOf) {
|
|
|
1009
736
|
insertBefore(parent, marker, anchor);
|
|
1010
737
|
let entries = [];
|
|
1011
738
|
const tracksIndex = renderItem.length >= 2;
|
|
1012
|
-
effect(() => {
|
|
739
|
+
(0, import_reactivity5.effect)(() => {
|
|
1013
740
|
const items = source();
|
|
1014
741
|
let keys = null;
|
|
1015
742
|
if (keyOf) {
|
|
@@ -1165,13 +892,13 @@ function isPrimitiveItem(item) {
|
|
|
1165
892
|
}
|
|
1166
893
|
__name(isPrimitiveItem, "isPrimitiveItem");
|
|
1167
894
|
function createListEntry(item, index, key, renderItem) {
|
|
1168
|
-
const owner = createOwner();
|
|
895
|
+
const owner = (0, import_reactivity5.createOwner)();
|
|
1169
896
|
let itemSignal;
|
|
1170
897
|
let viewOwner;
|
|
1171
898
|
let node;
|
|
1172
899
|
owner.run(() => {
|
|
1173
|
-
itemSignal = state(item);
|
|
1174
|
-
viewOwner = createOwner();
|
|
900
|
+
itemSignal = (0, import_reactivity5.state)(item);
|
|
901
|
+
viewOwner = (0, import_reactivity5.createOwner)();
|
|
1175
902
|
node = viewOwner.run(() => renderItem(toReactiveItem(itemSignal, item), index));
|
|
1176
903
|
});
|
|
1177
904
|
associateNodeOwner(node, viewOwner);
|
|
@@ -1183,7 +910,7 @@ function refreshListEntry(parent, entry, index, renderItem) {
|
|
|
1183
910
|
entry.index = index;
|
|
1184
911
|
const previousView = entry.viewOwner;
|
|
1185
912
|
entry.owner.run(() => {
|
|
1186
|
-
entry.viewOwner = createOwner();
|
|
913
|
+
entry.viewOwner = (0, import_reactivity5.createOwner)();
|
|
1187
914
|
entry.node = entry.viewOwner.run(() => renderItem(
|
|
1188
915
|
toReactiveItem(entry.item, entry.value),
|
|
1189
916
|
index
|
|
@@ -1344,10 +1071,11 @@ function capitalize(value) {
|
|
|
1344
1071
|
__name(capitalize, "capitalize");
|
|
1345
1072
|
|
|
1346
1073
|
// packages/runtime/src/boundary.ts
|
|
1074
|
+
var import_reactivity6 = require("@vobs/reactivity");
|
|
1347
1075
|
function insertBoundary(parent, anchor, options) {
|
|
1348
|
-
const boundary = createOwner();
|
|
1076
|
+
const boundary = (0, import_reactivity6.createOwner)();
|
|
1349
1077
|
boundary.run(() => {
|
|
1350
|
-
const error = state(null);
|
|
1078
|
+
const error = (0, import_reactivity6.state)(null);
|
|
1351
1079
|
let fallbackActive = false;
|
|
1352
1080
|
let lastError = null;
|
|
1353
1081
|
let initialized = false;
|
|
@@ -1422,13 +1150,14 @@ function ErrorBoundary(props) {
|
|
|
1422
1150
|
__name(ErrorBoundary, "ErrorBoundary");
|
|
1423
1151
|
|
|
1424
1152
|
// packages/runtime/src/async-boundary.ts
|
|
1153
|
+
var import_reactivity7 = require("@vobs/reactivity");
|
|
1425
1154
|
function insertAsyncBoundary(parent, anchor, options) {
|
|
1426
|
-
const boundary = createOwner();
|
|
1155
|
+
const boundary = (0, import_reactivity7.createOwner)();
|
|
1427
1156
|
boundary.run(() => {
|
|
1428
|
-
const loading = state(true);
|
|
1429
|
-
const data = state(void 0);
|
|
1430
|
-
const resolved = state(false);
|
|
1431
|
-
const error = state(null);
|
|
1157
|
+
const loading = (0, import_reactivity7.state)(true);
|
|
1158
|
+
const data = (0, import_reactivity7.state)(void 0);
|
|
1159
|
+
const resolved = (0, import_reactivity7.state)(false);
|
|
1160
|
+
const error = (0, import_reactivity7.state)(null);
|
|
1432
1161
|
let token = 0;
|
|
1433
1162
|
let previousKey;
|
|
1434
1163
|
let initialized = false;
|
|
@@ -1505,8 +1234,9 @@ function normalizeError(reason) {
|
|
|
1505
1234
|
__name(normalizeError, "normalizeError");
|
|
1506
1235
|
|
|
1507
1236
|
// packages/runtime/src/profiler.ts
|
|
1237
|
+
var import_reactivity8 = require("@vobs/reactivity");
|
|
1508
1238
|
function insertProfiler(parent, anchor, options) {
|
|
1509
|
-
const profiler = createOwner();
|
|
1239
|
+
const profiler = (0, import_reactivity8.createOwner)();
|
|
1510
1240
|
let mounted = false;
|
|
1511
1241
|
profiler.run(() => {
|
|
1512
1242
|
insertDynamic(parent, anchor, () => {
|
|
@@ -1536,62 +1266,63 @@ function now() {
|
|
|
1536
1266
|
return typeof performance !== "undefined" && typeof performance.now === "function" ? performance.now() : Date.now();
|
|
1537
1267
|
}
|
|
1538
1268
|
__name(now, "now");
|
|
1539
|
-
|
|
1540
|
-
exports
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1269
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
1270
|
+
0 && (module.exports = {
|
|
1271
|
+
AsyncBoundary,
|
|
1272
|
+
ErrorBoundary,
|
|
1273
|
+
Profiler,
|
|
1274
|
+
VobsError,
|
|
1275
|
+
addEventListener,
|
|
1276
|
+
bindAttribute,
|
|
1277
|
+
bindProperty,
|
|
1278
|
+
bindText,
|
|
1279
|
+
clear,
|
|
1280
|
+
cloneTemplate,
|
|
1281
|
+
createBlock,
|
|
1282
|
+
createComment,
|
|
1283
|
+
createComponent,
|
|
1284
|
+
createElement,
|
|
1285
|
+
createFragment,
|
|
1286
|
+
createHmrStateStore,
|
|
1287
|
+
createTemplate,
|
|
1288
|
+
createText,
|
|
1289
|
+
createVobsError,
|
|
1290
|
+
describeDebugNode,
|
|
1291
|
+
disposeHmrModule,
|
|
1292
|
+
disposeNodeOwner,
|
|
1293
|
+
formatVobsError,
|
|
1294
|
+
getRenderer,
|
|
1295
|
+
getRuntimeDebugContext,
|
|
1296
|
+
getRuntimeDebugHooks,
|
|
1297
|
+
insertAsyncBoundary,
|
|
1298
|
+
insertBefore,
|
|
1299
|
+
insertBoundary,
|
|
1300
|
+
insertDynamic,
|
|
1301
|
+
insertDynamicValue,
|
|
1302
|
+
insertErrorBoundary,
|
|
1303
|
+
insertList,
|
|
1304
|
+
insertProfiler,
|
|
1305
|
+
invokeRuntimeDebug,
|
|
1306
|
+
isVobsError,
|
|
1307
|
+
isVobsFragment,
|
|
1308
|
+
markHmrInstanceMounted,
|
|
1309
|
+
normalizeDynamicChild,
|
|
1310
|
+
normalizeVobsError,
|
|
1311
|
+
pushRuntimeDebugContext,
|
|
1312
|
+
ref,
|
|
1313
|
+
registerHmrInstance,
|
|
1314
|
+
removeChild,
|
|
1315
|
+
removeEventListener,
|
|
1316
|
+
resolveComponent,
|
|
1317
|
+
runWithRuntimeDebugContext,
|
|
1318
|
+
setAttribute,
|
|
1319
|
+
setProperty,
|
|
1320
|
+
setRef,
|
|
1321
|
+
setRenderer,
|
|
1322
|
+
setRuntimeDebugHooks,
|
|
1323
|
+
setStaticProps,
|
|
1324
|
+
setTextContent,
|
|
1325
|
+
spreadProps,
|
|
1326
|
+
updateHmrModule
|
|
1327
|
+
});
|
|
1597
1328
|
//# sourceMappingURL=index.cjs.map
|