@kdeveloper/kvark 0.17.0 → 1.0.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 +158 -115
- package/dist/family.d.ts +16 -13
- package/dist/family.js +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/preact/index.d.ts +4 -4
- package/dist/preact/index.js +7 -33
- package/dist/preact/index.js.map +1 -1
- package/dist/react/index.d.ts +4 -4
- package/dist/react/index.js +7 -33
- package/dist/react/index.js.map +1 -1
- package/dist/{store-DSvJVL5c.js → store-Cq_V-puR.js} +178 -56
- package/dist/store-Cq_V-puR.js.map +1 -0
- package/dist/{types-CHPLxaFJ.d.ts → types-D8ep-ydI.d.ts} +58 -26
- package/dist/use-atom-value-BhGvD9Vf.js +35 -0
- package/dist/use-atom-value-BhGvD9Vf.js.map +1 -0
- package/dist/vue/index.d.ts +4 -4
- package/dist/vue/index.js +9 -9
- package/dist/vue/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/store-DSvJVL5c.js.map +0 -1
|
@@ -5,20 +5,20 @@ function atom(configOrInitial, options) {
|
|
|
5
5
|
return fromInitialValue(configOrInitial, options);
|
|
6
6
|
}
|
|
7
7
|
function isAtomConfig(value) {
|
|
8
|
-
return typeof value === "object" && value !== null && typeof value.
|
|
8
|
+
return typeof value === "object" && value !== null && typeof value.read === "function";
|
|
9
9
|
}
|
|
10
10
|
function fromConfig(config) {
|
|
11
11
|
const internal = Object.create(null);
|
|
12
|
-
internal.
|
|
12
|
+
internal.read = config.read;
|
|
13
13
|
if (config.debugLabel != null) internal.debugLabel = config.debugLabel;
|
|
14
14
|
if (config.dependencies != null) internal.dependencies = config.dependencies;
|
|
15
15
|
if (config.stalePolicy != null) internal.stalePolicy = config.stalePolicy;
|
|
16
16
|
if (config.retry != null) internal.retry = config.retry;
|
|
17
17
|
if (config.retryDelay != null) internal.retryDelay = config.retryDelay;
|
|
18
|
-
if (config.
|
|
19
|
-
if (config.
|
|
18
|
+
if (config.invalidateAfterWrite != null) internal.invalidateAfterWrite = config.invalidateAfterWrite;
|
|
19
|
+
if (config.write != null) internal.write = config.write;
|
|
20
20
|
if (config.onMount != null) internal.onMount = config.onMount;
|
|
21
|
-
if (config.
|
|
21
|
+
if (config.write != null) return {
|
|
22
22
|
[CONFIG]: internal,
|
|
23
23
|
[WRITABLE]: [],
|
|
24
24
|
debugLabel: config.debugLabel
|
|
@@ -30,13 +30,13 @@ function fromConfig(config) {
|
|
|
30
30
|
}
|
|
31
31
|
function fromInitialValue(initialValue, options) {
|
|
32
32
|
const internal = Object.create(null);
|
|
33
|
-
internal.
|
|
33
|
+
internal.read = async (ctx) => {
|
|
34
34
|
await Promise.resolve();
|
|
35
35
|
const prev = ctx.getPreviousValue();
|
|
36
36
|
return prev === void 0 ? initialValue : prev;
|
|
37
37
|
};
|
|
38
|
-
internal.
|
|
39
|
-
internal.
|
|
38
|
+
internal.invalidateAfterWrite = false;
|
|
39
|
+
internal.write = async (ctx, ...args) => {
|
|
40
40
|
const valueOrMutate = args[0];
|
|
41
41
|
const previous = ctx.getPreviousValue();
|
|
42
42
|
const next = typeof valueOrMutate === "function" ? valueOrMutate(previous === void 0 ? initialValue : previous) : valueOrMutate;
|
|
@@ -78,8 +78,8 @@ function infinityAtom(options) {
|
|
|
78
78
|
};
|
|
79
79
|
}
|
|
80
80
|
const config = {
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
invalidateAfterWrite: false,
|
|
82
|
+
read: async (ctx) => {
|
|
83
83
|
const prev = ctx.getPreviousValue();
|
|
84
84
|
if (prev == null) return buildResult([await options.queryFn({
|
|
85
85
|
cursor: options.initialCursor,
|
|
@@ -99,7 +99,7 @@ function infinityAtom(options) {
|
|
|
99
99
|
}
|
|
100
100
|
return buildResult(pages, pageCursors);
|
|
101
101
|
},
|
|
102
|
-
|
|
102
|
+
write: async (ctx, action) => {
|
|
103
103
|
if (action !== "loadNext") return;
|
|
104
104
|
const current = ctx.getPreviousValue();
|
|
105
105
|
if (current == null || !current.hasNextPage) return;
|
|
@@ -144,7 +144,7 @@ var LruCache = class {
|
|
|
144
144
|
#head;
|
|
145
145
|
#tail;
|
|
146
146
|
constructor(maxSize) {
|
|
147
|
-
this.#maxSize = maxSize;
|
|
147
|
+
this.#maxSize = normalizeMaxSize(maxSize);
|
|
148
148
|
this.#head = {
|
|
149
149
|
key: void 0,
|
|
150
150
|
prev: null,
|
|
@@ -193,6 +193,12 @@ var LruCache = class {
|
|
|
193
193
|
this.#nodeMap.delete(key);
|
|
194
194
|
this.#valueMap.delete(key);
|
|
195
195
|
}
|
|
196
|
+
clear() {
|
|
197
|
+
this.#nodeMap.clear();
|
|
198
|
+
this.#valueMap.clear();
|
|
199
|
+
this.#head.next = this.#tail;
|
|
200
|
+
this.#tail.prev = this.#head;
|
|
201
|
+
}
|
|
196
202
|
values() {
|
|
197
203
|
return this.#valueMap.values();
|
|
198
204
|
}
|
|
@@ -222,13 +228,17 @@ var LruCache = class {
|
|
|
222
228
|
if (!Number.isFinite(this.#maxSize)) return;
|
|
223
229
|
while (this.#nodeMap.size > this.#maxSize) {
|
|
224
230
|
const oldest = this.#head.next;
|
|
225
|
-
if (oldest == null) break;
|
|
231
|
+
if (oldest == null || oldest === this.#tail) break;
|
|
226
232
|
this.#detach(oldest);
|
|
227
233
|
this.#nodeMap.delete(oldest.key);
|
|
228
234
|
this.#valueMap.delete(oldest.key);
|
|
229
235
|
}
|
|
230
236
|
}
|
|
231
237
|
};
|
|
238
|
+
function normalizeMaxSize(maxSize) {
|
|
239
|
+
if (!Number.isFinite(maxSize)) return Infinity;
|
|
240
|
+
return Math.max(0, Math.floor(maxSize));
|
|
241
|
+
}
|
|
232
242
|
//#endregion
|
|
233
243
|
//#region src/internal/infinity-atom-family.ts
|
|
234
244
|
function infinityAtomFamily(options) {
|
|
@@ -285,9 +295,14 @@ function infinityAtomFamily(options) {
|
|
|
285
295
|
family.invalidateAll = () => {
|
|
286
296
|
for (const cached of cache.values()) link.invalidateAtom(cached);
|
|
287
297
|
};
|
|
298
|
+
family.has = (param) => cache.peek(keyOf(param)) != null;
|
|
299
|
+
family.peek = (param) => cache.peek(keyOf(param));
|
|
288
300
|
family.remove = (param) => {
|
|
289
301
|
cache.delete(keyOf(param));
|
|
290
302
|
};
|
|
303
|
+
family.clear = () => {
|
|
304
|
+
cache.clear();
|
|
305
|
+
};
|
|
291
306
|
family.getCache = () => cache.asReadonlyMap();
|
|
292
307
|
return family;
|
|
293
308
|
}
|
|
@@ -446,34 +461,34 @@ function atomFamily(options) {
|
|
|
446
461
|
const cached = cache.get(key);
|
|
447
462
|
if (cached != null) return cached;
|
|
448
463
|
let deps;
|
|
449
|
-
let
|
|
450
|
-
let
|
|
464
|
+
let readFn;
|
|
465
|
+
let writeFn;
|
|
451
466
|
if (coordinator != null) {
|
|
452
467
|
deps = options.dependencies?.();
|
|
453
|
-
|
|
454
|
-
|
|
468
|
+
readFn = (ctx) => coordinator.enqueue(key, param, ctx, ctx.signal);
|
|
469
|
+
writeFn = void 0;
|
|
455
470
|
} else {
|
|
456
|
-
const
|
|
457
|
-
deps =
|
|
458
|
-
|
|
459
|
-
|
|
471
|
+
const readOptions = options;
|
|
472
|
+
deps = readOptions.dependencies?.(param);
|
|
473
|
+
readFn = readOptions.read(param);
|
|
474
|
+
writeFn = readOptions.write?.(param);
|
|
460
475
|
}
|
|
461
476
|
const labelSuffix = options.paramKey != null ? String(key) : String(param);
|
|
462
|
-
const created = createAtom(options.debugLabel != null ? `${options.debugLabel}(${labelSuffix})` : void 0, deps,
|
|
477
|
+
const created = createAtom(options.debugLabel != null ? `${options.debugLabel}(${labelSuffix})` : void 0, deps, readFn, writeFn);
|
|
463
478
|
attachLink(created);
|
|
464
479
|
cache.set(key, created);
|
|
465
480
|
return created;
|
|
466
481
|
}
|
|
467
|
-
function createAtom(label, deps,
|
|
468
|
-
const base = {
|
|
482
|
+
function createAtom(label, deps, readFn, writeFn) {
|
|
483
|
+
const base = { read: readFn };
|
|
469
484
|
if (label != null) base.debugLabel = label;
|
|
470
485
|
if (deps != null) base.dependencies = deps;
|
|
471
486
|
if (options.stalePolicy != null) base.stalePolicy = options.stalePolicy;
|
|
472
487
|
if (options.retry != null) base.retry = options.retry;
|
|
473
488
|
if (options.retryDelay != null) base.retryDelay = options.retryDelay;
|
|
474
|
-
if (options.
|
|
475
|
-
if (
|
|
476
|
-
base.
|
|
489
|
+
if (options.invalidateAfterWrite != null) base.invalidateAfterWrite = options.invalidateAfterWrite;
|
|
490
|
+
if (writeFn != null) {
|
|
491
|
+
base.write = writeFn;
|
|
477
492
|
return atom(base);
|
|
478
493
|
}
|
|
479
494
|
return atom(base);
|
|
@@ -486,9 +501,14 @@ function atomFamily(options) {
|
|
|
486
501
|
family.invalidateAll = () => {
|
|
487
502
|
for (const cached of cache.values()) link.invalidateAtom(cached);
|
|
488
503
|
};
|
|
504
|
+
family.has = (param) => cache.peek(keyOf(param)) != null;
|
|
505
|
+
family.peek = (param) => cache.peek(keyOf(param));
|
|
489
506
|
family.remove = (param) => {
|
|
490
507
|
cache.delete(keyOf(param));
|
|
491
508
|
};
|
|
509
|
+
family.clear = () => {
|
|
510
|
+
cache.clear();
|
|
511
|
+
};
|
|
492
512
|
family.getCache = () => cache.asReadonlyMap();
|
|
493
513
|
return family;
|
|
494
514
|
}
|
|
@@ -507,14 +527,15 @@ const PENDING_STATE = {
|
|
|
507
527
|
};
|
|
508
528
|
var Store = class {
|
|
509
529
|
#atoms = /* @__PURE__ */ new WeakMap();
|
|
530
|
+
#entries = /* @__PURE__ */ new Set();
|
|
510
531
|
#rdeps = /* @__PURE__ */ new Map();
|
|
511
532
|
#pending = /* @__PURE__ */ new Set();
|
|
512
|
-
#controllers = /* @__PURE__ */ new WeakMap();
|
|
513
533
|
#familyUnsubs = /* @__PURE__ */ new Set();
|
|
514
534
|
#registeredFamilies = /* @__PURE__ */ new WeakSet();
|
|
515
535
|
#context;
|
|
516
536
|
#client = null;
|
|
517
537
|
#flushScheduled = false;
|
|
538
|
+
#disposed = false;
|
|
518
539
|
constructor(...args) {
|
|
519
540
|
const [options] = args;
|
|
520
541
|
this.#context = options?.context;
|
|
@@ -526,18 +547,49 @@ var Store = class {
|
|
|
526
547
|
state: PENDING_STATE,
|
|
527
548
|
version: 0,
|
|
528
549
|
promise: null,
|
|
550
|
+
controller: null,
|
|
529
551
|
listeners: /* @__PURE__ */ new Set(),
|
|
530
552
|
mountCount: 0,
|
|
531
553
|
unmount: null
|
|
532
554
|
};
|
|
533
555
|
this.#atoms.set(atom, entry);
|
|
556
|
+
this.#entries.add(entry);
|
|
534
557
|
}
|
|
535
558
|
return entry;
|
|
536
559
|
}
|
|
537
|
-
|
|
560
|
+
#assertActive() {
|
|
561
|
+
if (this.#disposed) throw new Error("Store has been disposed");
|
|
562
|
+
}
|
|
563
|
+
#abortRead(atom) {
|
|
564
|
+
const entry = this.#atoms.get(atom);
|
|
565
|
+
if (entry?.controller != null) {
|
|
566
|
+
entry.controller.abort();
|
|
567
|
+
entry.controller = null;
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
get(atom) {
|
|
571
|
+
return this.getSnapshot(atom);
|
|
572
|
+
}
|
|
573
|
+
peek(atom) {
|
|
574
|
+
this.#assertActive();
|
|
575
|
+
const entry = this.#atoms.get(atom);
|
|
576
|
+
if (entry == null) return;
|
|
577
|
+
return extractPreviousValue(entry.state);
|
|
578
|
+
}
|
|
579
|
+
ensure(atom) {
|
|
580
|
+
this.#assertActive();
|
|
581
|
+
const entry = this.#atoms.get(atom);
|
|
582
|
+
if (entry != null) {
|
|
583
|
+
if (entry.state.status === "fresh" || entry.state.status === "stale") return Promise.resolve(entry.state.value);
|
|
584
|
+
if (entry.state.status === "error" && entry.state.value !== void 0) return Promise.resolve(entry.state.value);
|
|
585
|
+
}
|
|
586
|
+
return this.read(atom);
|
|
587
|
+
}
|
|
588
|
+
read(atom) {
|
|
589
|
+
this.#assertActive();
|
|
538
590
|
const entry = this.#getOrCreate(atom);
|
|
539
591
|
if (entry.promise != null) return entry.promise;
|
|
540
|
-
const promise = this.#
|
|
592
|
+
const promise = this.#runRead(atom).finally(() => {
|
|
541
593
|
const e = this.#atoms.get(atom);
|
|
542
594
|
if (e != null) e.promise = null;
|
|
543
595
|
});
|
|
@@ -545,7 +597,7 @@ var Store = class {
|
|
|
545
597
|
entry.promise = promise;
|
|
546
598
|
return promise;
|
|
547
599
|
}
|
|
548
|
-
async #
|
|
600
|
+
async #runRead(atom) {
|
|
549
601
|
const config = atom[CONFIG];
|
|
550
602
|
const dependencies = config.dependencies;
|
|
551
603
|
const stalePolicy = config.stalePolicy ?? "keep";
|
|
@@ -556,7 +608,7 @@ var Store = class {
|
|
|
556
608
|
if (dependencies != null) {
|
|
557
609
|
for (const [key, dep] of Object.entries(dependencies)) {
|
|
558
610
|
if (isAtomFamily(dep)) continue;
|
|
559
|
-
if (!depPromises.has(key)) depPromises.set(key, this.
|
|
611
|
+
if (!depPromises.has(key)) depPromises.set(key, this.read(dep));
|
|
560
612
|
}
|
|
561
613
|
this.#registerRdeps(atom, dependencies);
|
|
562
614
|
}
|
|
@@ -570,7 +622,7 @@ var Store = class {
|
|
|
570
622
|
}
|
|
571
623
|
try {
|
|
572
624
|
if (depPromises.size > 0) await Promise.all(depPromises.values());
|
|
573
|
-
const value = await config.
|
|
625
|
+
const value = await config.read(ctx);
|
|
574
626
|
if (ctx.signal.aborted) throw new DOMException("The operation was aborted", "AbortError");
|
|
575
627
|
entry.state = {
|
|
576
628
|
status: "fresh",
|
|
@@ -596,11 +648,13 @@ var Store = class {
|
|
|
596
648
|
throw lastError;
|
|
597
649
|
}
|
|
598
650
|
invalidate(atom) {
|
|
651
|
+
this.#assertActive();
|
|
599
652
|
this.#markStale(atom);
|
|
600
653
|
this.#pending.add(atom);
|
|
601
654
|
this.#schedulePendingFlush();
|
|
602
655
|
}
|
|
603
656
|
invalidateMany(atoms) {
|
|
657
|
+
this.#assertActive();
|
|
604
658
|
for (const a of atoms) {
|
|
605
659
|
this.#markStale(a);
|
|
606
660
|
this.#pending.add(a);
|
|
@@ -619,7 +673,7 @@ var Store = class {
|
|
|
619
673
|
status: "stale"
|
|
620
674
|
};
|
|
621
675
|
entry.promise = null;
|
|
622
|
-
this.#
|
|
676
|
+
this.#abortRead(atom);
|
|
623
677
|
}
|
|
624
678
|
const rdeps = this.#rdeps.get(atom);
|
|
625
679
|
if (rdeps != null) for (const dep of rdeps) this.#markStale(dep, visited);
|
|
@@ -648,6 +702,11 @@ var Store = class {
|
|
|
648
702
|
if (!this.#flushScheduled) {
|
|
649
703
|
this.#flushScheduled = true;
|
|
650
704
|
queueMicrotask(() => {
|
|
705
|
+
if (this.#disposed) {
|
|
706
|
+
this.#flushScheduled = false;
|
|
707
|
+
this.#pending.clear();
|
|
708
|
+
return;
|
|
709
|
+
}
|
|
651
710
|
this.#flushScheduled = false;
|
|
652
711
|
this.#flushPending();
|
|
653
712
|
});
|
|
@@ -663,7 +722,7 @@ var Store = class {
|
|
|
663
722
|
state: targetEntry.state,
|
|
664
723
|
version: targetEntry.version
|
|
665
724
|
});
|
|
666
|
-
this.#
|
|
725
|
+
this.#abortRead(target);
|
|
667
726
|
targetEntry.promise = null;
|
|
668
727
|
targetEntry.state = {
|
|
669
728
|
status: "fresh",
|
|
@@ -699,38 +758,39 @@ var Store = class {
|
|
|
699
758
|
set.add(atom);
|
|
700
759
|
}
|
|
701
760
|
#makeCtx(atom, deps, depPromises) {
|
|
702
|
-
this.#
|
|
761
|
+
this.#abortRead(atom);
|
|
703
762
|
const controller = new AbortController();
|
|
704
|
-
this.#
|
|
705
|
-
const
|
|
763
|
+
this.#getOrCreate(atom).controller = controller;
|
|
764
|
+
const read = async (key, ...rest) => {
|
|
706
765
|
const dep = deps[key];
|
|
707
766
|
if (dep == null) throw new Error(`Unknown dependency key: "${String(key)}"`);
|
|
708
767
|
if (isAtomFamily(dep)) {
|
|
709
|
-
if (rest.length === 0) throw new Error(`Dependency "${String(key)}" is an atomFamily and requires a parameter. Use ctx.
|
|
768
|
+
if (rest.length === 0) throw new Error(`Dependency "${String(key)}" is an atomFamily and requires a parameter. Use ctx.read("${String(key)}", param) instead of ctx.read("${String(key)}").`);
|
|
710
769
|
const param = rest[0];
|
|
711
770
|
const target = dep(param);
|
|
712
771
|
this.#registerSingleRdep(atom, target);
|
|
713
|
-
return this.
|
|
772
|
+
return this.read(target);
|
|
714
773
|
}
|
|
715
|
-
if (rest.length > 0) throw new Error(`Dependency "${String(key)}" is a plain atom and does not accept a parameter. Use ctx.
|
|
774
|
+
if (rest.length > 0) throw new Error(`Dependency "${String(key)}" is a plain atom and does not accept a parameter. Use ctx.read("${String(key)}") without a second argument.`);
|
|
716
775
|
const cached = depPromises?.get(key);
|
|
717
776
|
if (cached != null) return cached;
|
|
718
|
-
return this.
|
|
777
|
+
return this.read(dep);
|
|
719
778
|
};
|
|
720
779
|
return {
|
|
721
780
|
global: this.#context,
|
|
722
781
|
signal: controller.signal,
|
|
723
|
-
|
|
782
|
+
read,
|
|
724
783
|
getPreviousValue: () => {
|
|
725
784
|
return extractPreviousValue(this.#getOrCreate(atom).state);
|
|
726
785
|
}
|
|
727
786
|
};
|
|
728
787
|
}
|
|
729
788
|
subscribe(atom, listener) {
|
|
789
|
+
this.#assertActive();
|
|
730
790
|
const entry = this.#getOrCreate(atom);
|
|
731
791
|
entry.listeners.add(listener);
|
|
732
792
|
this.#autoRegisterFamily(atom);
|
|
733
|
-
if ((entry.state.status === "pending" || entry.state.status === "error") && entry.promise == null) this.
|
|
793
|
+
if ((entry.state.status === "pending" || entry.state.status === "error") && entry.promise == null) this.read(atom);
|
|
734
794
|
entry.mountCount++;
|
|
735
795
|
if (entry.mountCount === 1) {
|
|
736
796
|
const config = atom[CONFIG];
|
|
@@ -748,7 +808,11 @@ var Store = class {
|
|
|
748
808
|
if (typeof cleanup === "function") entry.unmount = cleanup;
|
|
749
809
|
}
|
|
750
810
|
}
|
|
811
|
+
let active = true;
|
|
751
812
|
return () => {
|
|
813
|
+
if (!active) return;
|
|
814
|
+
active = false;
|
|
815
|
+
if (this.#disposed) return;
|
|
752
816
|
entry.listeners.delete(listener);
|
|
753
817
|
entry.mountCount--;
|
|
754
818
|
if (entry.mountCount === 0 && entry.unmount != null) {
|
|
@@ -768,16 +832,19 @@ var Store = class {
|
|
|
768
832
|
this.#familyUnsubs.add(unsub);
|
|
769
833
|
}
|
|
770
834
|
getSnapshot(atom) {
|
|
835
|
+
this.#assertActive();
|
|
771
836
|
return this.#getOrCreate(atom).state;
|
|
772
837
|
}
|
|
773
838
|
getServerSnapshot(atom) {
|
|
839
|
+
this.#assertActive();
|
|
774
840
|
const entry = this.#atoms.get(atom);
|
|
775
841
|
if (entry != null) return entry.state;
|
|
776
842
|
return PENDING_STATE;
|
|
777
843
|
}
|
|
778
|
-
async
|
|
844
|
+
async apply(atom, ...args) {
|
|
845
|
+
this.#assertActive();
|
|
779
846
|
const config = atom[CONFIG];
|
|
780
|
-
if (config.
|
|
847
|
+
if (config.write == null) throw new Error(`Atom${atom.debugLabel != null ? ` "${atom.debugLabel}"` : ""} is not writable`);
|
|
781
848
|
const deps = config.dependencies ?? {};
|
|
782
849
|
const baseCtx = this.#makeCtx(atom, deps);
|
|
783
850
|
const entry = this.#getOrCreate(atom);
|
|
@@ -809,7 +876,7 @@ var Store = class {
|
|
|
809
876
|
invalidateMany: (targets) => this.invalidateMany(targets)
|
|
810
877
|
};
|
|
811
878
|
try {
|
|
812
|
-
await config.
|
|
879
|
+
await config.write(ctx, ...args);
|
|
813
880
|
} catch (e) {
|
|
814
881
|
const snap = optimisticSnapshot.current;
|
|
815
882
|
if (snap != null) {
|
|
@@ -820,13 +887,14 @@ var Store = class {
|
|
|
820
887
|
this.#rollbackRelatedSnapshots(relatedSnapshots);
|
|
821
888
|
throw e;
|
|
822
889
|
}
|
|
823
|
-
if (config.
|
|
890
|
+
if (config.invalidateAfterWrite !== false) this.invalidate(atom);
|
|
824
891
|
}
|
|
825
892
|
async mutate(mutation, ...args) {
|
|
893
|
+
this.#assertActive();
|
|
826
894
|
const relatedSnapshots = /* @__PURE__ */ new Map();
|
|
827
895
|
const ctx = {
|
|
828
896
|
global: this.#context,
|
|
829
|
-
|
|
897
|
+
read: (atom) => this.read(atom),
|
|
830
898
|
writeOptimistic: (target, valueOrMutate) => {
|
|
831
899
|
this.#relatedOptimisticWrite(target, valueOrMutate, relatedSnapshots);
|
|
832
900
|
},
|
|
@@ -841,8 +909,9 @@ var Store = class {
|
|
|
841
909
|
}
|
|
842
910
|
}
|
|
843
911
|
write(atom, valueOrMutate) {
|
|
912
|
+
this.#assertActive();
|
|
844
913
|
const entry = this.#getOrCreate(atom);
|
|
845
|
-
this.#
|
|
914
|
+
this.#abortRead(atom);
|
|
846
915
|
entry.promise = null;
|
|
847
916
|
entry.state = {
|
|
848
917
|
status: "fresh",
|
|
@@ -853,18 +922,71 @@ var Store = class {
|
|
|
853
922
|
this.#scheduleNotify(atom);
|
|
854
923
|
this.#markReverseDependentsStale(atom);
|
|
855
924
|
}
|
|
925
|
+
run(atom, ...args) {
|
|
926
|
+
return this.apply(atom, ...args);
|
|
927
|
+
}
|
|
928
|
+
runMutation(mutation, ...args) {
|
|
929
|
+
return this.mutate(mutation, ...args);
|
|
930
|
+
}
|
|
931
|
+
set(atom, valueOrMutate) {
|
|
932
|
+
this.write(atom, valueOrMutate);
|
|
933
|
+
}
|
|
934
|
+
observe(atom, listener) {
|
|
935
|
+
return this.subscribe(atom, () => {
|
|
936
|
+
listener(this.getSnapshot(atom));
|
|
937
|
+
});
|
|
938
|
+
}
|
|
939
|
+
inspect(atom) {
|
|
940
|
+
this.#assertActive();
|
|
941
|
+
const entry = this.#atoms.get(atom);
|
|
942
|
+
return {
|
|
943
|
+
debugLabel: atom.debugLabel,
|
|
944
|
+
status: entry?.state.status ?? "pending",
|
|
945
|
+
dependencyCount: Object.keys(atom[CONFIG].dependencies ?? {}).length,
|
|
946
|
+
reverseDependentCount: this.#rdeps.get(atom)?.size ?? 0,
|
|
947
|
+
listenerCount: entry?.listeners.size ?? 0,
|
|
948
|
+
mountCount: entry?.mountCount ?? 0,
|
|
949
|
+
hasPromise: entry?.promise != null
|
|
950
|
+
};
|
|
951
|
+
}
|
|
952
|
+
dispose() {
|
|
953
|
+
if (this.#disposed) return;
|
|
954
|
+
this.#disposed = true;
|
|
955
|
+
this.#pending.clear();
|
|
956
|
+
for (const unsub of this.#familyUnsubs) unsub();
|
|
957
|
+
this.#familyUnsubs.clear();
|
|
958
|
+
for (const entry of this.#entries) {
|
|
959
|
+
entry.controller?.abort();
|
|
960
|
+
entry.controller = null;
|
|
961
|
+
entry.promise = null;
|
|
962
|
+
entry.listeners.clear();
|
|
963
|
+
entry.mountCount = 0;
|
|
964
|
+
if (entry.unmount != null) {
|
|
965
|
+
entry.unmount();
|
|
966
|
+
entry.unmount = null;
|
|
967
|
+
}
|
|
968
|
+
}
|
|
969
|
+
}
|
|
856
970
|
getClient() {
|
|
971
|
+
this.#assertActive();
|
|
857
972
|
if (this.#client != null) return this.#client;
|
|
858
973
|
this.#client = {
|
|
859
|
-
get: (atom) => this.
|
|
860
|
-
|
|
974
|
+
get: (atom) => this.get(atom),
|
|
975
|
+
peek: (atom) => this.peek(atom),
|
|
976
|
+
ensure: (atom) => this.ensure(atom),
|
|
977
|
+
read: (atom) => this.read(atom),
|
|
978
|
+
run: (atom, ...args) => this.run(atom, ...args),
|
|
979
|
+
apply: (atom, ...args) => this.apply(atom, ...args),
|
|
980
|
+
runMutation: (m, ...args) => this.runMutation(m, ...args),
|
|
861
981
|
mutate: (m, ...args) => this.mutate(m, ...args),
|
|
982
|
+
set: (atom, valueOrMutate) => this.set(atom, valueOrMutate),
|
|
862
983
|
write: (atom, valueOrMutate) => this.write(atom, valueOrMutate),
|
|
863
984
|
invalidate: (atom) => this.invalidate(atom),
|
|
864
985
|
invalidateMany: (atoms) => this.invalidateMany(atoms),
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
986
|
+
observe: (atom, listener) => this.observe(atom, listener),
|
|
987
|
+
subscribe: (atom, listener) => this.observe(atom, listener),
|
|
988
|
+
inspect: (atom) => this.inspect(atom),
|
|
989
|
+
dispose: () => this.dispose()
|
|
868
990
|
};
|
|
869
991
|
return this.#client;
|
|
870
992
|
}
|
|
@@ -906,4 +1028,4 @@ function extractPreviousValue(state) {
|
|
|
906
1028
|
//#endregion
|
|
907
1029
|
export { microtaskScheduler as a, infinityAtomFamily as c, maxBatchSizeScheduler as i, infinityAtom as l, mutation as n, windowScheduler as o, atomFamily as r, windowedFiniteBatchScheduler as s, createStore as t, atom as u };
|
|
908
1030
|
|
|
909
|
-
//# sourceMappingURL=store-
|
|
1031
|
+
//# sourceMappingURL=store-Cq_V-puR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-Cq_V-puR.js","names":["#maxSize","#nodeMap","#valueMap","#head","#tail","#moveToMru","#insertBeforeTail","#evict","#detach","#fetch","#scheduler","#queue","#keySet","#flush","#atoms","#entries","#rdeps","#pending","#familyUnsubs","#registeredFamilies","#context","#disposed","#assertActive","#getOrCreate","#runRead","#registerRdeps","#makeCtx","#scheduleNotify","#markStale","#schedulePendingFlush","#abortRead","#flushScheduled","#flushPending","#markReverseDependentsStale","#registerSingleRdep","#autoRegisterFamily","#relatedOptimisticWrite","#rollbackRelatedSnapshots","#client"],"sources":["../src/internal/atom.ts","../src/internal/infinity-atom.ts","../src/internal/lru-cache.ts","../src/internal/infinity-atom-family.ts","../src/internal/family-batch-schedulers.ts","../src/internal/family-batch.ts","../src/internal/family.ts","../src/internal/mutation.ts","../src/internal/store.ts"],"mappings":"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"}
|