@jalvin/runtime 2.0.37 → 2.0.39
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/bibi.d.ts +4 -0
- package/dist/bibi.d.ts.map +1 -1
- package/dist/bibi.js +11 -9
- package/dist/bibi.js.map +1 -1
- package/dist/coroutines.js +22 -47
- package/dist/coroutines.js.map +1 -1
- package/dist/dom.d.ts +15 -0
- package/dist/dom.d.ts.map +1 -0
- package/dist/dom.js +212 -0
- package/dist/dom.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -224
- package/dist/index.js.map +1 -1
- package/dist/stateflow.js +8 -19
- package/dist/stateflow.js.map +1 -1
- package/dist/stdlib/collections.js +55 -108
- package/dist/stdlib/collections.js.map +1 -1
- package/dist/stdlib/conversions.d.ts +2 -0
- package/dist/stdlib/conversions.d.ts.map +1 -1
- package/dist/stdlib/conversions.js +17 -29
- package/dist/stdlib/conversions.js.map +1 -1
- package/dist/stdlib/delegates.js +14 -28
- package/dist/stdlib/delegates.js.map +1 -1
- package/dist/stdlib/equality.js +1 -4
- package/dist/stdlib/equality.js.map +1 -1
- package/dist/stdlib/index.js +12 -28
- package/dist/stdlib/index.js.map +1 -1
- package/dist/stdlib/io.js +2 -6
- package/dist/stdlib/io.js.map +1 -1
- package/dist/stdlib/math.js +29 -37
- package/dist/stdlib/math.js.map +1 -1
- package/dist/stdlib/random.js +3 -8
- package/dist/stdlib/random.js.map +1 -1
- package/dist/stdlib/regex.js +4 -8
- package/dist/stdlib/regex.js.map +1 -1
- package/dist/stdlib/result.js +3 -9
- package/dist/stdlib/result.js.map +1 -1
- package/dist/stdlib/strings.js +24 -51
- package/dist/stdlib/strings.js.map +1 -1
- package/dist/stdlib/timing.js +3 -8
- package/dist/stdlib/timing.js.map +1 -1
- package/dist/stdlib/types.js +13 -29
- package/dist/stdlib/types.js.map +1 -1
- package/dist/ui.d.ts +12 -69
- package/dist/ui.d.ts.map +1 -1
- package/dist/ui.js +130 -228
- package/dist/ui.js.map +1 -1
- package/package.json +4 -12
- package/dist/utils.d.ts +0 -375
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -1180
- package/dist/utils.js.map +0 -1
package/dist/bibi.d.ts
CHANGED
|
@@ -62,4 +62,8 @@ export declare class BibiRequestBuilder {
|
|
|
62
62
|
}
|
|
63
63
|
export type BibiInterceptor = (url: string, init: RequestInit) => RequestInit | Promise<RequestInit> | null | void;
|
|
64
64
|
export declare function Bibi(baseUrl: string, configure?: (b: BibiRequestBuilder) => void): BibiRequestBuilder;
|
|
65
|
+
/** DSL shim for Bibi builder */
|
|
66
|
+
export declare function timeout(ms: number): void;
|
|
67
|
+
/** DSL shim for Bibi builder */
|
|
68
|
+
export declare function headers(configure: (it: any) => void): void;
|
|
65
69
|
//# sourceMappingURL=bibi.d.ts.map
|
package/dist/bibi.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bibi.d.ts","sourceRoot":"","sources":["../src/bibi.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bibi.d.ts","sourceRoot":"","sources":["../src/bibi.ts"],"names":[],"mappings":"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"}
|
package/dist/bibi.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
3
2
|
// Bibi — Jalvin's built-in HTTP client
|
|
4
3
|
//
|
|
@@ -17,12 +16,9 @@
|
|
|
17
16
|
// Bibi is isomorphic — works in the browser (fetch), Node.js, and any
|
|
18
17
|
// JS environment with a global `fetch`.
|
|
19
18
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
20
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.BibiRequestBuilder = exports.BibiError = void 0;
|
|
22
|
-
exports.Bibi = Bibi;
|
|
23
19
|
/** Default request timeout in milliseconds. Override per-request or at the builder level. */
|
|
24
20
|
const DEFAULT_TIMEOUT_MS = 30_000;
|
|
25
|
-
class BibiError extends Error {
|
|
21
|
+
export class BibiError extends Error {
|
|
26
22
|
status;
|
|
27
23
|
response;
|
|
28
24
|
constructor(message, status, response) {
|
|
@@ -32,11 +28,10 @@ class BibiError extends Error {
|
|
|
32
28
|
this.name = "BibiError";
|
|
33
29
|
}
|
|
34
30
|
}
|
|
35
|
-
exports.BibiError = BibiError;
|
|
36
31
|
// ---------------------------------------------------------------------------
|
|
37
32
|
// BibiRequestBuilder — fluent builder returned by Bibi(...)
|
|
38
33
|
// ---------------------------------------------------------------------------
|
|
39
|
-
class BibiRequestBuilder {
|
|
34
|
+
export class BibiRequestBuilder {
|
|
40
35
|
_baseUrl;
|
|
41
36
|
_headers = {};
|
|
42
37
|
_timeout = DEFAULT_TIMEOUT_MS;
|
|
@@ -189,13 +184,20 @@ class BibiRequestBuilder {
|
|
|
189
184
|
}
|
|
190
185
|
}
|
|
191
186
|
}
|
|
192
|
-
exports.BibiRequestBuilder = BibiRequestBuilder;
|
|
193
187
|
// ---------------------------------------------------------------------------
|
|
194
188
|
// Factory — `Bibi(baseUrl, configure?)` — always capitalised as per spec
|
|
195
189
|
// ---------------------------------------------------------------------------
|
|
196
|
-
function Bibi(baseUrl, configure) {
|
|
190
|
+
export function Bibi(baseUrl, configure) {
|
|
197
191
|
return new BibiRequestBuilder(baseUrl, configure);
|
|
198
192
|
}
|
|
193
|
+
/** DSL shim for Bibi builder */
|
|
194
|
+
export function timeout(ms) {
|
|
195
|
+
// In a real DSL this would target an active builder
|
|
196
|
+
}
|
|
197
|
+
/** DSL shim for Bibi builder */
|
|
198
|
+
export function headers(configure) {
|
|
199
|
+
// In a real DSL this would target an active builder
|
|
200
|
+
}
|
|
199
201
|
// ---------------------------------------------------------------------------
|
|
200
202
|
// anySignal — combines multiple AbortSignals (polyfill for older envs)
|
|
201
203
|
// ---------------------------------------------------------------------------
|
package/dist/bibi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bibi.js","sourceRoot":"","sources":["../src/bibi.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bibi.js","sourceRoot":"","sources":["../src/bibi.ts"],"names":[],"mappings":"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"}
|
package/dist/coroutines.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
3
2
|
// Jalvin Coroutine runtime
|
|
4
3
|
//
|
|
@@ -11,23 +10,7 @@
|
|
|
11
10
|
// • CoroutineScope — structured concurrency scope
|
|
12
11
|
// • cancelAll — cancel all children of a scope
|
|
13
12
|
// ─────────────────────────────────────────────────────────────────────────────
|
|
14
|
-
|
|
15
|
-
exports.Flow = exports.Channel = exports.ChannelClosedException = exports.TimeoutCancellationException = exports.CoroutineScope = exports.Deferred = exports.JobCancellationException = exports.Job = void 0;
|
|
16
|
-
exports.yield_ = yield_;
|
|
17
|
-
exports.launch = launch;
|
|
18
|
-
exports.async_ = async_;
|
|
19
|
-
exports.delay = delay;
|
|
20
|
-
exports.withContext = withContext;
|
|
21
|
-
exports.repeat = repeat;
|
|
22
|
-
exports.runBlocking = runBlocking;
|
|
23
|
-
exports.withTimeout = withTimeout;
|
|
24
|
-
exports.withTimeoutOrNull = withTimeoutOrNull;
|
|
25
|
-
exports.flow = flow;
|
|
26
|
-
exports.flowOf = flowOf;
|
|
27
|
-
exports.asFlow = asFlow;
|
|
28
|
-
exports.coroutineScope = coroutineScope;
|
|
29
|
-
exports.supervisorScope = supervisorScope;
|
|
30
|
-
class Job {
|
|
13
|
+
export class Job {
|
|
31
14
|
_state = "active";
|
|
32
15
|
_children = new Set();
|
|
33
16
|
_promise;
|
|
@@ -74,18 +57,16 @@ class Job {
|
|
|
74
57
|
job._promise.finally(() => this._children.delete(job));
|
|
75
58
|
}
|
|
76
59
|
}
|
|
77
|
-
|
|
78
|
-
class JobCancellationException extends Error {
|
|
60
|
+
export class JobCancellationException extends Error {
|
|
79
61
|
constructor(message) {
|
|
80
62
|
super(message);
|
|
81
63
|
this.name = "JobCancellationException";
|
|
82
64
|
}
|
|
83
65
|
}
|
|
84
|
-
exports.JobCancellationException = JobCancellationException;
|
|
85
66
|
// ---------------------------------------------------------------------------
|
|
86
67
|
// Deferred<T>
|
|
87
68
|
// ---------------------------------------------------------------------------
|
|
88
|
-
class Deferred {
|
|
69
|
+
export class Deferred {
|
|
89
70
|
_promise;
|
|
90
71
|
_resolve;
|
|
91
72
|
_reject;
|
|
@@ -116,15 +97,14 @@ class Deferred {
|
|
|
116
97
|
return this._promise;
|
|
117
98
|
}
|
|
118
99
|
}
|
|
119
|
-
exports.Deferred = Deferred;
|
|
120
100
|
/** Yield to the next microtask */
|
|
121
|
-
async function yield_() {
|
|
101
|
+
export async function yield_() {
|
|
122
102
|
return new Promise((res) => setTimeout(res, 0));
|
|
123
103
|
}
|
|
124
104
|
// ---------------------------------------------------------------------------
|
|
125
105
|
// CoroutineScope
|
|
126
106
|
// ---------------------------------------------------------------------------
|
|
127
|
-
class CoroutineScope {
|
|
107
|
+
export class CoroutineScope {
|
|
128
108
|
_jobs = new Set();
|
|
129
109
|
_cancelled = false;
|
|
130
110
|
get isCancelled() { return this._cancelled; }
|
|
@@ -174,7 +154,6 @@ class CoroutineScope {
|
|
|
174
154
|
await Promise.all([...this._jobs].map((j) => j.join().catch(() => void 0)));
|
|
175
155
|
}
|
|
176
156
|
}
|
|
177
|
-
exports.CoroutineScope = CoroutineScope;
|
|
178
157
|
// ---------------------------------------------------------------------------
|
|
179
158
|
// Top-level launch / async helpers (global scope)
|
|
180
159
|
// ---------------------------------------------------------------------------
|
|
@@ -187,7 +166,7 @@ const _globalScope = new CoroutineScope();
|
|
|
187
166
|
* println(data.body())
|
|
188
167
|
* }
|
|
189
168
|
*/
|
|
190
|
-
function launch(fn) {
|
|
169
|
+
export function launch(fn) {
|
|
191
170
|
return _globalScope.launch(fn);
|
|
192
171
|
}
|
|
193
172
|
/**
|
|
@@ -196,27 +175,27 @@ function launch(fn) {
|
|
|
196
175
|
* val job = async { expensiveCompute() }
|
|
197
176
|
* val result = job.await()
|
|
198
177
|
*/
|
|
199
|
-
function async_(fn) {
|
|
178
|
+
export function async_(fn) {
|
|
200
179
|
return _globalScope.async_(fn);
|
|
201
180
|
}
|
|
202
181
|
// ---------------------------------------------------------------------------
|
|
203
182
|
// delay — suspendable sleep
|
|
204
183
|
// ---------------------------------------------------------------------------
|
|
205
|
-
function delay(ms) {
|
|
184
|
+
export function delay(ms) {
|
|
206
185
|
return new Promise((res) => setTimeout(res, ms));
|
|
207
186
|
}
|
|
208
187
|
// ---------------------------------------------------------------------------
|
|
209
188
|
// withContext — switch dispatcher context
|
|
210
189
|
// In JS all dispatchers are the same event loop; we yield for fairness.
|
|
211
190
|
// ---------------------------------------------------------------------------
|
|
212
|
-
async function withContext(_dispatcher, fn) {
|
|
191
|
+
export async function withContext(_dispatcher, fn) {
|
|
213
192
|
await yield_();
|
|
214
193
|
return fn();
|
|
215
194
|
}
|
|
216
195
|
// ---------------------------------------------------------------------------
|
|
217
196
|
// repeat — repeat a suspend block N times
|
|
218
197
|
// ---------------------------------------------------------------------------
|
|
219
|
-
async function repeat(times, fn) {
|
|
198
|
+
export async function repeat(times, fn) {
|
|
220
199
|
for (let i = 0; i < times; i++) {
|
|
221
200
|
await fn(i);
|
|
222
201
|
}
|
|
@@ -224,7 +203,7 @@ async function repeat(times, fn) {
|
|
|
224
203
|
// ---------------------------------------------------------------------------
|
|
225
204
|
// runBlocking — bridges suspend world into sync (test helper, not for UI)
|
|
226
205
|
// ---------------------------------------------------------------------------
|
|
227
|
-
function runBlocking(fn) {
|
|
206
|
+
export function runBlocking(fn) {
|
|
228
207
|
let result;
|
|
229
208
|
let error;
|
|
230
209
|
let done = false;
|
|
@@ -243,18 +222,17 @@ function runBlocking(fn) {
|
|
|
243
222
|
// ---------------------------------------------------------------------------
|
|
244
223
|
// withTimeout / withTimeoutOrNull
|
|
245
224
|
// ---------------------------------------------------------------------------
|
|
246
|
-
class TimeoutCancellationException extends Error {
|
|
225
|
+
export class TimeoutCancellationException extends Error {
|
|
247
226
|
constructor(ms) {
|
|
248
227
|
super(`Timed out waiting for ${ms} ms`);
|
|
249
228
|
this.name = "TimeoutCancellationException";
|
|
250
229
|
}
|
|
251
230
|
}
|
|
252
|
-
exports.TimeoutCancellationException = TimeoutCancellationException;
|
|
253
231
|
/**
|
|
254
232
|
* Run `fn` and throw `TimeoutCancellationException` if it doesn't complete
|
|
255
233
|
* within `timeoutMs` milliseconds.
|
|
256
234
|
*/
|
|
257
|
-
async function withTimeout(timeoutMs, fn) {
|
|
235
|
+
export async function withTimeout(timeoutMs, fn) {
|
|
258
236
|
let timer = null;
|
|
259
237
|
const timeoutPromise = new Promise((_, reject) => {
|
|
260
238
|
timer = setTimeout(() => reject(new TimeoutCancellationException(timeoutMs)), timeoutMs);
|
|
@@ -271,7 +249,7 @@ async function withTimeout(timeoutMs, fn) {
|
|
|
271
249
|
/**
|
|
272
250
|
* Like `withTimeout` but returns `null` on timeout instead of throwing.
|
|
273
251
|
*/
|
|
274
|
-
async function withTimeoutOrNull(timeoutMs, fn) {
|
|
252
|
+
export async function withTimeoutOrNull(timeoutMs, fn) {
|
|
275
253
|
try {
|
|
276
254
|
return await withTimeout(timeoutMs, fn);
|
|
277
255
|
}
|
|
@@ -285,13 +263,12 @@ async function withTimeoutOrNull(timeoutMs, fn) {
|
|
|
285
263
|
// Channel<T>
|
|
286
264
|
// A basic rendezvous channel. Senders await receivers and vice versa.
|
|
287
265
|
// ---------------------------------------------------------------------------
|
|
288
|
-
class ChannelClosedException extends Error {
|
|
266
|
+
export class ChannelClosedException extends Error {
|
|
289
267
|
constructor() {
|
|
290
268
|
super("Channel is closed");
|
|
291
269
|
this.name = "ChannelClosedException";
|
|
292
270
|
}
|
|
293
271
|
}
|
|
294
|
-
exports.ChannelClosedException = ChannelClosedException;
|
|
295
272
|
/**
|
|
296
273
|
* An unbuffered (rendezvous) channel`.
|
|
297
274
|
*
|
|
@@ -301,7 +278,7 @@ exports.ChannelClosedException = ChannelClosedException;
|
|
|
301
278
|
* val v = ch.receive()
|
|
302
279
|
* ```
|
|
303
280
|
*/
|
|
304
|
-
class Channel {
|
|
281
|
+
export class Channel {
|
|
305
282
|
_buffer = [];
|
|
306
283
|
_capacity;
|
|
307
284
|
_closed = false;
|
|
@@ -390,7 +367,6 @@ class Channel {
|
|
|
390
367
|
}
|
|
391
368
|
}
|
|
392
369
|
}
|
|
393
|
-
exports.Channel = Channel;
|
|
394
370
|
/**
|
|
395
371
|
* A cold asynchronous stream. The producer block only runs when `.collect()`
|
|
396
372
|
* is called — each collector gets its own independent execution.
|
|
@@ -404,7 +380,7 @@ exports.Channel = Channel;
|
|
|
404
380
|
* flow.collect { println(it) }
|
|
405
381
|
* ```
|
|
406
382
|
*/
|
|
407
|
-
class Flow {
|
|
383
|
+
export class Flow {
|
|
408
384
|
producer;
|
|
409
385
|
constructor(producer) {
|
|
410
386
|
this.producer = producer;
|
|
@@ -502,7 +478,6 @@ class Flow {
|
|
|
502
478
|
});
|
|
503
479
|
}
|
|
504
480
|
}
|
|
505
|
-
exports.Flow = Flow;
|
|
506
481
|
/**
|
|
507
482
|
* Build a cold Flow from a producer block.
|
|
508
483
|
*
|
|
@@ -515,13 +490,13 @@ exports.Flow = Flow;
|
|
|
515
490
|
* }
|
|
516
491
|
* ```
|
|
517
492
|
*/
|
|
518
|
-
function flow(producer) {
|
|
493
|
+
export function flow(producer) {
|
|
519
494
|
return new Flow(producer);
|
|
520
495
|
}
|
|
521
496
|
/**
|
|
522
497
|
* Build a Flow from a fixed collection.
|
|
523
498
|
*/
|
|
524
|
-
function flowOf(...values) {
|
|
499
|
+
export function flowOf(...values) {
|
|
525
500
|
return new Flow(async (emit) => {
|
|
526
501
|
for (const v of values)
|
|
527
502
|
await emit(v);
|
|
@@ -530,7 +505,7 @@ function flowOf(...values) {
|
|
|
530
505
|
/**
|
|
531
506
|
* Build a Flow from an async iterable (e.g. a Channel).
|
|
532
507
|
*/
|
|
533
|
-
function asFlow(source) {
|
|
508
|
+
export function asFlow(source) {
|
|
534
509
|
return new Flow(async (emit) => {
|
|
535
510
|
for await (const v of source)
|
|
536
511
|
await emit(v);
|
|
@@ -543,7 +518,7 @@ function asFlow(source) {
|
|
|
543
518
|
* Creates a new coroutine scope, executes the given block, and returns once
|
|
544
519
|
* all launched child jobs complete.
|
|
545
520
|
*/
|
|
546
|
-
async function coroutineScope(fn) {
|
|
521
|
+
export async function coroutineScope(fn) {
|
|
547
522
|
const scope = new CoroutineScope();
|
|
548
523
|
const result = await Promise.resolve(fn(scope));
|
|
549
524
|
await scope.joinAll();
|
|
@@ -554,7 +529,7 @@ async function coroutineScope(fn) {
|
|
|
554
529
|
* In a JS environment all unhandled promise rejections are already independent,
|
|
555
530
|
* so this is equivalent to `coroutineScope`.
|
|
556
531
|
*/
|
|
557
|
-
async function supervisorScope(fn) {
|
|
532
|
+
export async function supervisorScope(fn) {
|
|
558
533
|
return coroutineScope(fn);
|
|
559
534
|
}
|
|
560
535
|
//# sourceMappingURL=coroutines.js.map
|
package/dist/coroutines.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coroutines.js","sourceRoot":"","sources":["../src/coroutines.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"coroutines.js","sourceRoot":"","sources":["../src/coroutines.ts"],"names":[],"mappings":"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"}
|
package/dist/dom.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface VNode {
|
|
2
|
+
tag: string;
|
|
3
|
+
props: Record<string, any>;
|
|
4
|
+
children: Array<VNode | string>;
|
|
5
|
+
el?: Node;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Creates a Virtual DOM Node instead of a real element.
|
|
9
|
+
*/
|
|
10
|
+
export declare function jalvinCreateElement(tag: string | Function, props: Record<string, any> | null, ...children: any[]): VNode | any;
|
|
11
|
+
/**
|
|
12
|
+
* A basic diffing algorithm to update the DOM without recreating it.
|
|
13
|
+
*/
|
|
14
|
+
export declare function patch(parentEl: HTMLElement, newVNode: VNode | string | null, oldVNode?: VNode | string | null, index?: number): void;
|
|
15
|
+
//# sourceMappingURL=dom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,QAAQ,EAAE,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC;IAChC,EAAE,CAAC,EAAE,IAAI,CAAC;CACX;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,MAAM,GAAG,QAAQ,EACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EACjC,GAAG,QAAQ,EAAE,GAAG,EAAE,GACjB,KAAK,GAAG,GAAG,CAmCb;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,EAAE,KAAK,SAAI,GAAG,IAAI,CAmD/H"}
|
package/dist/dom.js
ADDED
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
2
|
+
// Jalvin DOM Runtime — Virtual DOM and Patching
|
|
3
|
+
// ─────────────────────────────────────────────────────────────────────────────
|
|
4
|
+
/**
|
|
5
|
+
* Creates a Virtual DOM Node instead of a real element.
|
|
6
|
+
*/
|
|
7
|
+
export function jalvinCreateElement(tag, props, ...children) {
|
|
8
|
+
if (typeof tag === "function") {
|
|
9
|
+
// We expect components to return VNodes directly now.
|
|
10
|
+
return tag(props || {}, children);
|
|
11
|
+
}
|
|
12
|
+
// Flatten children
|
|
13
|
+
const flatChildren = [];
|
|
14
|
+
const append = (child) => {
|
|
15
|
+
if (child === null || child === undefined)
|
|
16
|
+
return;
|
|
17
|
+
if (Array.isArray(child)) {
|
|
18
|
+
child.forEach(append);
|
|
19
|
+
}
|
|
20
|
+
else if (typeof child === "object" && child.tag) {
|
|
21
|
+
// It's a VNode
|
|
22
|
+
flatChildren.push(child);
|
|
23
|
+
}
|
|
24
|
+
else if (typeof child === "object" && typeof child.nodeType === "number") {
|
|
25
|
+
// Fallback for native DOM nodes (try to avoid this, but support it if necessary)
|
|
26
|
+
flatChildren.push(child);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
// Primitives to strings
|
|
30
|
+
flatChildren.push(String(child));
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
const childrenArray = Array.isArray(children[0]) && children.length === 1
|
|
34
|
+
? children[0]
|
|
35
|
+
: children;
|
|
36
|
+
if (Array.isArray(childrenArray)) {
|
|
37
|
+
childrenArray.forEach(append);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
append(childrenArray);
|
|
41
|
+
}
|
|
42
|
+
return { tag: tag, props: props || {}, children: flatChildren };
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* A basic diffing algorithm to update the DOM without recreating it.
|
|
46
|
+
*/
|
|
47
|
+
export function patch(parentEl, newVNode, oldVNode, index = 0) {
|
|
48
|
+
const child = parentEl.childNodes[index];
|
|
49
|
+
if (!oldVNode) {
|
|
50
|
+
// ADD: Node doesn't exist, append it.
|
|
51
|
+
if (newVNode !== null) {
|
|
52
|
+
parentEl.appendChild(createDOMNode(newVNode));
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
else if (!newVNode) {
|
|
56
|
+
// REMOVE: Node exists but new one doesn't. Remove it.
|
|
57
|
+
if (child)
|
|
58
|
+
parentEl.removeChild(child);
|
|
59
|
+
}
|
|
60
|
+
else if (changed(newVNode, oldVNode)) {
|
|
61
|
+
// REPLACE: Node type changed entirely.
|
|
62
|
+
if (child) {
|
|
63
|
+
parentEl.replaceChild(createDOMNode(newVNode), child);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
parentEl.appendChild(createDOMNode(newVNode));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else if (typeof newVNode === "object" && typeof oldVNode === "object" && newVNode.tag === oldVNode.tag) {
|
|
70
|
+
// UPDATE: Same tag, update props and children.
|
|
71
|
+
if (!child)
|
|
72
|
+
return;
|
|
73
|
+
// Guard: native DOM node (e.g. a stray TextNode) — sync text and bail, no VNode children to recurse.
|
|
74
|
+
if (newVNode.nodeType !== undefined) {
|
|
75
|
+
if (newVNode.nodeType === 3 && child.nodeType === 3) {
|
|
76
|
+
const newText = newVNode.data ?? "";
|
|
77
|
+
if (child.data !== newText)
|
|
78
|
+
child.data = newText;
|
|
79
|
+
}
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const el = child;
|
|
83
|
+
newVNode.el = el;
|
|
84
|
+
updateProps(el, newVNode.props, oldVNode.props);
|
|
85
|
+
// Recursively patch children.
|
|
86
|
+
const newLength = newVNode.children.length;
|
|
87
|
+
const oldLength = oldVNode.children.length;
|
|
88
|
+
const max = Math.max(newLength, oldLength);
|
|
89
|
+
// We iterate backwards when removing children to avoid index shifting issues,
|
|
90
|
+
// but a simpler approach for basic patching is forward iteration, then trim.
|
|
91
|
+
for (let i = 0; i < max; i++) {
|
|
92
|
+
patch(el, newVNode.children[i] ?? null, oldVNode.children[i] ?? null, i);
|
|
93
|
+
}
|
|
94
|
+
// Trim excess children if old length was greater
|
|
95
|
+
while (el.childNodes.length > newLength) {
|
|
96
|
+
el.removeChild(el.lastChild);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
function createDOMNode(vnode) {
|
|
101
|
+
if (typeof vnode === "string") {
|
|
102
|
+
return document.createTextNode(vnode);
|
|
103
|
+
}
|
|
104
|
+
if (vnode.tag === undefined) {
|
|
105
|
+
// Must be a native DOM node that snuck in
|
|
106
|
+
return vnode;
|
|
107
|
+
}
|
|
108
|
+
const el = document.createElement(vnode.tag);
|
|
109
|
+
vnode.el = el;
|
|
110
|
+
updateProps(el, vnode.props, {});
|
|
111
|
+
for (const child of vnode.children) {
|
|
112
|
+
el.appendChild(createDOMNode(child));
|
|
113
|
+
}
|
|
114
|
+
return el;
|
|
115
|
+
}
|
|
116
|
+
function changed(node1, node2) {
|
|
117
|
+
if (typeof node1 !== typeof node2)
|
|
118
|
+
return true;
|
|
119
|
+
if (typeof node1 === "string" && node1 !== node2)
|
|
120
|
+
return true;
|
|
121
|
+
if (typeof node1 === "object" && typeof node2 === "object") {
|
|
122
|
+
const nt1 = node1.nodeType;
|
|
123
|
+
const nt2 = node2.nodeType;
|
|
124
|
+
if (nt1 !== undefined || nt2 !== undefined) {
|
|
125
|
+
if (nt1 !== nt2)
|
|
126
|
+
return true;
|
|
127
|
+
if (nt1 === 3)
|
|
128
|
+
return node1.data !== node2.data;
|
|
129
|
+
return false;
|
|
130
|
+
}
|
|
131
|
+
if (node1.tag !== node2.tag)
|
|
132
|
+
return true;
|
|
133
|
+
}
|
|
134
|
+
return false;
|
|
135
|
+
}
|
|
136
|
+
function updateProps(el, newProps, oldProps) {
|
|
137
|
+
// Remove old props
|
|
138
|
+
for (const key in oldProps) {
|
|
139
|
+
if (!(key in newProps)) {
|
|
140
|
+
if (key === "style") {
|
|
141
|
+
el.style.cssText = "";
|
|
142
|
+
}
|
|
143
|
+
else if (key.startsWith("on")) {
|
|
144
|
+
// We handle event listeners via a unified dispatcher to easily update them
|
|
145
|
+
removeEvent(el, key);
|
|
146
|
+
}
|
|
147
|
+
else if (key === "className") {
|
|
148
|
+
el.className = "";
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
el[key] = undefined;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// Set new props
|
|
156
|
+
for (const key in newProps) {
|
|
157
|
+
const value = newProps[key];
|
|
158
|
+
const oldValue = oldProps[key];
|
|
159
|
+
if (value === oldValue)
|
|
160
|
+
continue;
|
|
161
|
+
if (key === "style") {
|
|
162
|
+
if (typeof value === "object") {
|
|
163
|
+
// Clear previous style first to handle removed properties
|
|
164
|
+
el.style.cssText = "";
|
|
165
|
+
Object.assign(el.style, value);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
else if (key.startsWith("on") && typeof value === "function") {
|
|
169
|
+
updateEvent(el, key, value);
|
|
170
|
+
}
|
|
171
|
+
else if (key === "className") {
|
|
172
|
+
el.className = String(value ?? "");
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
el[key] = value;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
// Global event registry for elements so we can easily swap listeners without removing/re-adding DOM listeners constantly.
|
|
180
|
+
const eventRegistry = new WeakMap();
|
|
181
|
+
function getRegistry(el) {
|
|
182
|
+
let reg = eventRegistry.get(el);
|
|
183
|
+
if (!reg) {
|
|
184
|
+
reg = {};
|
|
185
|
+
eventRegistry.set(el, reg);
|
|
186
|
+
}
|
|
187
|
+
return reg;
|
|
188
|
+
}
|
|
189
|
+
function updateEvent(el, propKey, handler) {
|
|
190
|
+
const eventName = propKey.slice(2).toLowerCase();
|
|
191
|
+
const reg = getRegistry(el);
|
|
192
|
+
if (!reg[eventName]) {
|
|
193
|
+
// Add real DOM listener once
|
|
194
|
+
el.addEventListener(eventName, (e) => {
|
|
195
|
+
const currentHandler = getRegistry(el)[eventName];
|
|
196
|
+
if (currentHandler) {
|
|
197
|
+
// Wrap the native event with React-like synthetic structure for compatibility with existing UI code
|
|
198
|
+
currentHandler(e);
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
// Just update the stored reference
|
|
203
|
+
reg[eventName] = handler;
|
|
204
|
+
}
|
|
205
|
+
function removeEvent(el, propKey) {
|
|
206
|
+
const eventName = propKey.slice(2).toLowerCase();
|
|
207
|
+
const reg = getRegistry(el);
|
|
208
|
+
if (reg[eventName]) {
|
|
209
|
+
delete reg[eventName];
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
//# sourceMappingURL=dom.js.map
|