@kdeveloper/kvark 0.8.1 → 0.10.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 +118 -1
- package/dist/{atom-DfZiw6GT.d.ts → atom-BhfSS5xG.d.ts} +2 -2
- package/dist/family.d.ts +44 -5
- package/dist/family.js +2 -2
- package/dist/index.d.ts +26 -3
- package/dist/index.js +76 -2
- package/dist/index.js.map +1 -0
- package/dist/preact/index.d.ts +1 -1
- package/dist/react/index.d.ts +1 -1
- package/dist/{store-DLoedZQo.d.ts → store-DUIAp1x7.d.ts} +5 -3
- package/dist/{store-DvSUP7R9.js → store-gE1mKZy1.js} +146 -5
- package/dist/store-gE1mKZy1.js.map +1 -0
- package/dist/vue/index.d.ts +1 -1
- package/package.json +1 -1
- package/dist/store-DvSUP7R9.js.map +0 -1
package/README.md
CHANGED
|
@@ -482,6 +482,123 @@ A built-in helper that serialises plain objects and arrays into a deterministic
|
|
|
482
482
|
- Not supported: class instances (other than plain `Object`/`Array`), `Map`, `Set`, `Symbol`, functions, circular references.
|
|
483
483
|
- Memoises by object reference via a `WeakMap` — repeated calls with the **same object reference** are O(1). Treat param objects as **immutable** after the first call; mutating an object after it has been memoised will silently return the stale key.
|
|
484
484
|
|
|
485
|
+
### Batching (`atomFamily` with `batch`)
|
|
486
|
+
|
|
487
|
+
Instead of fetching each atom individually, you can batch multiple concurrent requests into a single call — inspired by [`@yornaath/batshit`](https://www.npmjs.com/package/@yornaath/batshit). Replace `get` with `batch`:
|
|
488
|
+
|
|
489
|
+
```ts
|
|
490
|
+
import { atomFamily, windowScheduler } from "@kdeveloper/kvark/family";
|
|
491
|
+
|
|
492
|
+
const userFamily = atomFamily({
|
|
493
|
+
debugLabel: "user",
|
|
494
|
+
dependencies: () => ({ auth: authAtom }),
|
|
495
|
+
batch: {
|
|
496
|
+
scheduler: windowScheduler(10),
|
|
497
|
+
fetch: async ({ keys, params, signal, ctx }) => {
|
|
498
|
+
const auth = await ctx.get("auth");
|
|
499
|
+
const res = await fetch(`/api/users?ids=${keys.join(",")}`, {
|
|
500
|
+
headers: { Authorization: auth.token },
|
|
501
|
+
signal,
|
|
502
|
+
});
|
|
503
|
+
const users: User[] = await res.json();
|
|
504
|
+
return new Map(users.map((u) => [u.id, u]));
|
|
505
|
+
},
|
|
506
|
+
},
|
|
507
|
+
});
|
|
508
|
+
|
|
509
|
+
// Each call returns an atom; concurrent resolves within the scheduler
|
|
510
|
+
// window are batched into a single fetch.
|
|
511
|
+
const alice = useAtomValue(userFamily(1));
|
|
512
|
+
const bob = useAtomValue(userFamily(2));
|
|
513
|
+
```
|
|
514
|
+
|
|
515
|
+
**How it works:** when multiple atoms are resolved concurrently (e.g. several components mount at once), each atom's `get` enqueues its key into the batch coordinator. The scheduler decides when to flush the queue: the default `microtaskScheduler` flushes at the end of the current microtask; `windowScheduler(ms)` waits up to `ms` milliseconds.
|
|
516
|
+
|
|
517
|
+
`batch.fetch` receives:
|
|
518
|
+
|
|
519
|
+
| Field | Type | Description |
|
|
520
|
+
| -------- | ------------------------- | ------------------------------------------------------- |
|
|
521
|
+
| `keys` | `readonly Key[]` | Unique keys (after `paramKey`) accumulated in this batch |
|
|
522
|
+
| `params` | `readonly Param[]` | Corresponding original `param` values (same order) |
|
|
523
|
+
| `signal` | `AbortSignal` | Aborts when **all** individual atom signals are aborted |
|
|
524
|
+
| `ctx` | `AtomContext<Deps>` | Context from the first enqueued atom in the batch |
|
|
525
|
+
|
|
526
|
+
Return a `Map<Key, Value>`. Keys missing from the map cause an error for those atoms.
|
|
527
|
+
|
|
528
|
+
#### `dependencies` in batch mode
|
|
529
|
+
|
|
530
|
+
In batch mode, `dependencies` takes **no param**: `() => Deps`. This guarantees the same set of dependency atoms for every member of the family, making `ctx` safe to share across the entire batch. TypeScript enforces this at the type level — passing `(param) => ...` is a compile error when `batch` is present.
|
|
531
|
+
|
|
532
|
+
#### Schedulers
|
|
533
|
+
|
|
534
|
+
All schedulers are factory functions that return a `BatchScheduler` instance.
|
|
535
|
+
|
|
536
|
+
| Factory | Behaviour |
|
|
537
|
+
| ---------------------------------------------- | ------------------------------------------------------------------------------------------------ |
|
|
538
|
+
| `microtaskScheduler()` _(default)_ | Flushes at the end of the current microtask (coalesces all synchronous enqueues) |
|
|
539
|
+
| `windowScheduler(ms)` | Flushes after `ms` milliseconds since the first enqueue in the window |
|
|
540
|
+
| `maxBatchSizeScheduler(maxSize)` | Flushes immediately when the number of unique keys reaches `maxSize` (no timer fallback) |
|
|
541
|
+
| `windowedFiniteBatchScheduler(ms, maxSize)` | Flushes on timer **or** when `maxSize` unique keys are reached — whichever comes first |
|
|
542
|
+
|
|
543
|
+
```ts
|
|
544
|
+
import {
|
|
545
|
+
windowScheduler,
|
|
546
|
+
windowedFiniteBatchScheduler,
|
|
547
|
+
} from "@kdeveloper/kvark/family";
|
|
548
|
+
|
|
549
|
+
// Flush after 10 ms or when 50 unique keys accumulate
|
|
550
|
+
const family = atomFamily({
|
|
551
|
+
batch: {
|
|
552
|
+
scheduler: windowedFiniteBatchScheduler(10, 50),
|
|
553
|
+
fetch: async ({ keys, signal }) => { /* ... */ },
|
|
554
|
+
},
|
|
555
|
+
});
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
### `infinityAtom`
|
|
559
|
+
|
|
560
|
+
Create an atom for incrementally loaded ("infinite scroll") lists. Inspired by [TanStack Query Infinite Queries](https://tanstack.com/query/latest/docs/framework/react/guides/infinite-queries), but using `getNextCursor` instead of `getNextPageParam`.
|
|
561
|
+
|
|
562
|
+
```ts
|
|
563
|
+
import { infinityAtom } from "@kdeveloper/kvark";
|
|
564
|
+
|
|
565
|
+
const projectsAtom = infinityAtom({
|
|
566
|
+
debugLabel: "projects",
|
|
567
|
+
initialCursor: 0,
|
|
568
|
+
queryFn: async ({ cursor, signal }) => {
|
|
569
|
+
const res = await fetch(`/api/projects?cursor=${cursor}`, { signal });
|
|
570
|
+
return res.json() as Promise<{ items: Project[]; nextCursor: number | null }>;
|
|
571
|
+
},
|
|
572
|
+
getNextCursor: (lastPage) => lastPage.nextCursor,
|
|
573
|
+
});
|
|
574
|
+
```
|
|
575
|
+
|
|
576
|
+
The atom value is `InfiniteData<Page, Cursor>`:
|
|
577
|
+
|
|
578
|
+
```ts
|
|
579
|
+
type InfiniteData<Page, Cursor> = {
|
|
580
|
+
pages: Page[];
|
|
581
|
+
pageCursors: Cursor[];
|
|
582
|
+
hasNextPage: boolean;
|
|
583
|
+
isFetchingNextPage: boolean;
|
|
584
|
+
};
|
|
585
|
+
```
|
|
586
|
+
|
|
587
|
+
Call `store.set(projectsAtom, "loadNext")` (or `useSetAtom(projectsAtom)("loadNext")`) to fetch and append the next page. If `hasNextPage` is `false`, the call is a no-op.
|
|
588
|
+
|
|
589
|
+
When the atom is invalidated, `get` re-fetches every cached page **sequentially** by replaying the stored `pageCursors` — the same stale-while-revalidate flow as regular atoms.
|
|
590
|
+
|
|
591
|
+
Use `maxPages` to cap the number of pages held in memory and re-fetched on invalidation:
|
|
592
|
+
|
|
593
|
+
```ts
|
|
594
|
+
const projectsAtom = infinityAtom({
|
|
595
|
+
initialCursor: 0,
|
|
596
|
+
queryFn: fetchProjectPage,
|
|
597
|
+
getNextCursor: (page) => page.nextCursor,
|
|
598
|
+
maxPages: 3,
|
|
599
|
+
});
|
|
600
|
+
```
|
|
601
|
+
|
|
485
602
|
## React (`@kdeveloper/kvark/react`)
|
|
486
603
|
|
|
487
604
|
All hooks must be used inside a `<Provider>`.
|
|
@@ -755,7 +872,7 @@ type Writable = IsWritable<typeof countAtom>; // → true | false
|
|
|
755
872
|
| `@kdeveloper/kvark/react` | `Provider`, `useStore`, `useAtomValue`, `useSetAtom`, `useMutation`, `useAtom`, `useAtomContext` |
|
|
756
873
|
| `@kdeveloper/kvark/preact` | `Provider`, `useStore`, `useAtomValue`, `useSetAtom`, `useMutation`, `useAtom`, `useAtomContext` |
|
|
757
874
|
| `@kdeveloper/kvark/vue` | `Provider`, `useStore`, `useAtomValue`, `useSetAtom`, `useMutation`, `useAtom`, `useAtomContext`; types `ThenableShallowRef`, `ThenableObservedShallowRef`, `ObservedValue` |
|
|
758
|
-
| `@kdeveloper/kvark/family` | `atomFamily`, `stableFamilyKey`, re-exports `atom`, `mutation`, `createStore`; types include `AtomFamily`, `Mutation`, `MutationContext`, and core atom types
|
|
875
|
+
| `@kdeveloper/kvark/family` | `atomFamily`, `stableFamilyKey`, `microtaskScheduler`, `windowScheduler`, `maxBatchSizeScheduler`, `windowedFiniteBatchScheduler`, re-exports `atom`, `mutation`, `createStore`; types include `AtomFamily`, `BatchScheduler`, `BatchFetchInput`, `Mutation`, `MutationContext`, and core atom types |
|
|
759
876
|
|
|
760
877
|
The core (`@kdeveloper/kvark`) has **zero runtime dependencies**. **React**, **Preact**, and **Vue** are optional peer dependencies — install the framework you use and import from `/react`, `/preact`, or `/vue`.
|
|
761
878
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as AtomConfig, g as WritableAtomContext, h as WritableAtom, o as Atom } from "./store-
|
|
1
|
+
import { c as AtomConfig, g as WritableAtomContext, h as WritableAtom, o as Atom } from "./store-DUIAp1x7.js";
|
|
2
2
|
|
|
3
3
|
//#region src/internal/atom.d.ts
|
|
4
4
|
type WritableConfig<Value, Deps extends Record<string, Atom<unknown>>, Args extends readonly unknown[]> = AtomConfig<Value, Deps, Args> & {
|
|
@@ -9,4 +9,4 @@ declare function atom<Value, Deps extends Record<string, Atom<unknown>> = Record
|
|
|
9
9
|
declare function atom<Value, Deps extends Record<string, Atom<unknown>> = Record<never, never>>(config: ReadonlyConfig<Value, Deps>): Atom<Value>;
|
|
10
10
|
//#endregion
|
|
11
11
|
export { atom as t };
|
|
12
|
-
//# sourceMappingURL=atom-
|
|
12
|
+
//# sourceMappingURL=atom-BhfSS5xG.d.ts.map
|
package/dist/family.d.ts
CHANGED
|
@@ -1,9 +1,29 @@
|
|
|
1
|
-
import { a as mutation, c as AtomConfig, d as AtomValue, g as WritableAtomContext, h as WritableAtom, i as Mutation, l as AtomContext, m as StalePolicy, o as Atom, p as MutationContext, r as createStore, u as AtomState } from "./store-
|
|
2
|
-
import { t as atom } from "./atom-
|
|
1
|
+
import { a as mutation, c as AtomConfig, d as AtomValue, g as WritableAtomContext, h as WritableAtom, i as Mutation, l as AtomContext, m as StalePolicy, o as Atom, p as MutationContext, r as createStore, u as AtomState } from "./store-DUIAp1x7.js";
|
|
2
|
+
import { t as atom } from "./atom-BhfSS5xG.js";
|
|
3
3
|
|
|
4
|
+
//#region src/internal/family-batch-schedulers.d.ts
|
|
5
|
+
type BatchSchedulerContext = {
|
|
6
|
+
pendingCount: number;
|
|
7
|
+
};
|
|
8
|
+
interface BatchScheduler {
|
|
9
|
+
schedule(flush: () => void, context: BatchSchedulerContext): void;
|
|
10
|
+
reset(): void;
|
|
11
|
+
}
|
|
12
|
+
declare function microtaskScheduler(): BatchScheduler;
|
|
13
|
+
declare function windowScheduler(ms: number): BatchScheduler;
|
|
14
|
+
declare function maxBatchSizeScheduler(maxSize: number): BatchScheduler;
|
|
15
|
+
declare function windowedFiniteBatchScheduler(ms: number, maxSize: number): BatchScheduler;
|
|
16
|
+
//#endregion
|
|
17
|
+
//#region src/internal/family-batch.d.ts
|
|
18
|
+
type BatchFetchInput<Param, Key, Deps extends Record<string, Atom<unknown>>> = {
|
|
19
|
+
keys: readonly Key[];
|
|
20
|
+
params: readonly Param[];
|
|
21
|
+
signal: AbortSignal;
|
|
22
|
+
ctx: AtomContext<Deps>;
|
|
23
|
+
};
|
|
24
|
+
//#endregion
|
|
4
25
|
//#region src/internal/family.d.ts
|
|
5
|
-
type
|
|
6
|
-
dependencies?: (param: Param) => Deps;
|
|
26
|
+
type AtomFamilyBaseOptions<Param, Key = Param> = {
|
|
7
27
|
stalePolicy?: StalePolicy;
|
|
8
28
|
cachePolicy?: "keep-all" | "lru";
|
|
9
29
|
lruSize?: number;
|
|
@@ -19,9 +39,28 @@ type AtomFamilyOptions<Param, Value, Deps extends Record<string, Atom<unknown>>,
|
|
|
19
39
|
* by object reference via a WeakMap.
|
|
20
40
|
*/
|
|
21
41
|
paramKey?: (param: Param) => Key;
|
|
42
|
+
};
|
|
43
|
+
type AtomFamilyGetOptions<Param, Value, Deps extends Record<string, Atom<unknown>>, Args extends readonly unknown[], Key = Param> = AtomFamilyBaseOptions<Param, Key> & {
|
|
44
|
+
dependencies?: (param: Param) => Deps;
|
|
22
45
|
get: (param: Param) => (ctx: AtomContext<Deps>) => Promise<Value>;
|
|
23
46
|
set?: (param: Param) => (ctx: WritableAtomContext<Deps, Value>, ...args: Args) => Promise<void>;
|
|
47
|
+
batch?: never;
|
|
48
|
+
};
|
|
49
|
+
type AtomFamilyBatchOptions<Param, Value, Deps extends Record<string, Atom<unknown>>, Key = Param> = AtomFamilyBaseOptions<Param, Key> & {
|
|
50
|
+
/**
|
|
51
|
+
* In batch mode `dependencies` takes **no param** — the same set of dependency atoms
|
|
52
|
+
* is shared by every member of the family. This ensures that `ctx` passed to `batch.fetch`
|
|
53
|
+
* is valid for the entire batch.
|
|
54
|
+
*/
|
|
55
|
+
dependencies?: () => Deps;
|
|
56
|
+
batch: {
|
|
57
|
+
fetch: (input: BatchFetchInput<Param, Key, Deps>) => Promise<Map<Key, Value>>;
|
|
58
|
+
scheduler?: BatchScheduler;
|
|
59
|
+
};
|
|
60
|
+
get?: never;
|
|
61
|
+
set?: never;
|
|
24
62
|
};
|
|
63
|
+
type AtomFamilyOptions<Param, Value, Deps extends Record<string, Atom<unknown>>, Args extends readonly unknown[], Key = Param> = AtomFamilyGetOptions<Param, Value, Deps, Args, Key> | AtomFamilyBatchOptions<Param, Value, Deps, Key>;
|
|
25
64
|
interface AtomFamily<Param, Value, Key = Param> {
|
|
26
65
|
(param: Param): Atom<Value>;
|
|
27
66
|
invalidate(param: Param): void;
|
|
@@ -45,5 +84,5 @@ declare function atomFamily<Param, Value, Deps extends Record<string, Atom<unkno
|
|
|
45
84
|
*/
|
|
46
85
|
declare function stableFamilyKey(value: unknown): string;
|
|
47
86
|
//#endregion
|
|
48
|
-
export { type Atom, type AtomConfig, type AtomContext, type AtomFamily, type AtomFamilyOptions, type AtomState, type AtomValue, type Mutation, type MutationContext, type StalePolicy, type WritableAtom, atom, atomFamily, createStore, mutation, stableFamilyKey };
|
|
87
|
+
export { type Atom, type AtomConfig, type AtomContext, type AtomFamily, type AtomFamilyBatchOptions, type AtomFamilyGetOptions, type AtomFamilyOptions, type AtomState, type AtomValue, type BatchFetchInput, type BatchScheduler, type BatchSchedulerContext, type Mutation, type MutationContext, type StalePolicy, type WritableAtom, atom, atomFamily, createStore, maxBatchSizeScheduler, microtaskScheduler, mutation, stableFamilyKey, windowScheduler, windowedFiniteBatchScheduler };
|
|
49
88
|
//# sourceMappingURL=family.d.ts.map
|
package/dist/family.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { a as microtaskScheduler, c as atom, i as maxBatchSizeScheduler, n as mutation, o as windowScheduler, r as atomFamily, s as windowedFiniteBatchScheduler, t as createStore } from "./store-gE1mKZy1.js";
|
|
2
2
|
//#region src/internal/stable-family-key.ts
|
|
3
3
|
/**
|
|
4
4
|
* Produces a deterministic string key for plain-object/array/primitive values.
|
|
@@ -54,6 +54,6 @@ function serializeValue(value) {
|
|
|
54
54
|
}).join(",")}}`;
|
|
55
55
|
}
|
|
56
56
|
//#endregion
|
|
57
|
-
export { atom, atomFamily, createStore, mutation, stableFamilyKey };
|
|
57
|
+
export { atom, atomFamily, createStore, maxBatchSizeScheduler, microtaskScheduler, mutation, stableFamilyKey, windowScheduler, windowedFiniteBatchScheduler };
|
|
58
58
|
|
|
59
59
|
//# sourceMappingURL=family.js.map
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,26 @@
|
|
|
1
|
-
import { a as mutation, c as AtomConfig, d as AtomValue, f as IsWritable, g as WritableAtomContext, h as WritableAtom, i as Mutation, l as AtomContext, m as StalePolicy, n as StoreClient, o as Atom, p as MutationContext, r as createStore, s as AtomArgs, u as AtomState } from "./store-
|
|
2
|
-
import { t as atom } from "./atom-
|
|
3
|
-
|
|
1
|
+
import { a as mutation, c as AtomConfig, d as AtomValue, f as IsWritable, g as WritableAtomContext, h as WritableAtom, i as Mutation, l as AtomContext, m as StalePolicy, n as StoreClient, o as Atom, p as MutationContext, r as createStore, s as AtomArgs, u as AtomState } from "./store-DUIAp1x7.js";
|
|
2
|
+
import { t as atom } from "./atom-BhfSS5xG.js";
|
|
3
|
+
|
|
4
|
+
//#region src/internal/infinity-atom.d.ts
|
|
5
|
+
type InfiniteData<Page, Cursor> = {
|
|
6
|
+
pages: Page[];
|
|
7
|
+
pageCursors: Cursor[];
|
|
8
|
+
hasNextPage: boolean;
|
|
9
|
+
isFetchingNextPage: boolean;
|
|
10
|
+
};
|
|
11
|
+
type InfinityAtomOptions<Page, Cursor> = {
|
|
12
|
+
initialCursor: Cursor;
|
|
13
|
+
queryFn: (args: {
|
|
14
|
+
cursor: Cursor;
|
|
15
|
+
signal: AbortSignal;
|
|
16
|
+
}) => Promise<Page>;
|
|
17
|
+
getNextCursor: (lastPage: Page, allPages: Page[]) => Cursor | undefined | null;
|
|
18
|
+
maxPages?: number;
|
|
19
|
+
debugLabel?: string;
|
|
20
|
+
stalePolicy?: StalePolicy;
|
|
21
|
+
dependencies?: Record<string, Atom<unknown>>;
|
|
22
|
+
};
|
|
23
|
+
declare function infinityAtom<Page, Cursor>(options: InfinityAtomOptions<Page, Cursor>): WritableAtom<InfiniteData<Page, Cursor>, [action: "loadNext"]>;
|
|
24
|
+
//#endregion
|
|
25
|
+
export { type Atom, type AtomArgs, type AtomConfig, type AtomContext, type AtomState, type AtomValue, type InfiniteData, type InfinityAtomOptions, type IsWritable, type Mutation, type MutationContext, type StalePolicy, type StoreClient, type WritableAtom, type WritableAtomContext, atom, createStore, infinityAtom, mutation };
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,76 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { c as atom, n as mutation, t as createStore } from "./store-gE1mKZy1.js";
|
|
2
|
+
//#region src/internal/infinity-atom.ts
|
|
3
|
+
function infinityAtom(options) {
|
|
4
|
+
function applyMaxPages(pages, cursors) {
|
|
5
|
+
if (options.maxPages != null && pages.length > options.maxPages) {
|
|
6
|
+
const excess = pages.length - options.maxPages;
|
|
7
|
+
return {
|
|
8
|
+
pages: pages.slice(excess),
|
|
9
|
+
cursors: cursors.slice(excess)
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
return {
|
|
13
|
+
pages,
|
|
14
|
+
cursors
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
function buildResult(pages, pageCursors) {
|
|
18
|
+
const trimmed = applyMaxPages(pages, pageCursors);
|
|
19
|
+
const lastPage = trimmed.pages[trimmed.pages.length - 1];
|
|
20
|
+
const nextCursor = lastPage != null ? options.getNextCursor(lastPage, trimmed.pages) : void 0;
|
|
21
|
+
return {
|
|
22
|
+
pages: trimmed.pages,
|
|
23
|
+
pageCursors: trimmed.cursors,
|
|
24
|
+
hasNextPage: nextCursor != null,
|
|
25
|
+
isFetchingNextPage: false
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
const config = {
|
|
29
|
+
get: async (ctx) => {
|
|
30
|
+
const prev = ctx.getPreviousValue();
|
|
31
|
+
if (prev == null) return buildResult([await options.queryFn({
|
|
32
|
+
cursor: options.initialCursor,
|
|
33
|
+
signal: ctx.signal
|
|
34
|
+
})], [options.initialCursor]);
|
|
35
|
+
const pages = [];
|
|
36
|
+
const pageCursors = [];
|
|
37
|
+
for (const cursor of prev.pageCursors) {
|
|
38
|
+
const page = await options.queryFn({
|
|
39
|
+
cursor,
|
|
40
|
+
signal: ctx.signal
|
|
41
|
+
});
|
|
42
|
+
pages.push(page);
|
|
43
|
+
pageCursors.push(cursor);
|
|
44
|
+
}
|
|
45
|
+
return buildResult(pages, pageCursors);
|
|
46
|
+
},
|
|
47
|
+
set: async (ctx, action) => {
|
|
48
|
+
if (action !== "loadNext") return;
|
|
49
|
+
const current = ctx.getPreviousValue();
|
|
50
|
+
if (current == null || !current.hasNextPage) return;
|
|
51
|
+
const lastPage = current.pages[current.pages.length - 1];
|
|
52
|
+
if (lastPage == null) return;
|
|
53
|
+
const nextCursor = options.getNextCursor(lastPage, current.pages);
|
|
54
|
+
if (nextCursor == null) return;
|
|
55
|
+
ctx.setOptimisticValue({
|
|
56
|
+
...current,
|
|
57
|
+
isFetchingNextPage: true
|
|
58
|
+
});
|
|
59
|
+
const page = await options.queryFn({
|
|
60
|
+
cursor: nextCursor,
|
|
61
|
+
signal: ctx.signal
|
|
62
|
+
});
|
|
63
|
+
const pages = [...current.pages, page];
|
|
64
|
+
const pageCursors = [...current.pageCursors, nextCursor];
|
|
65
|
+
ctx.setOptimisticValue(buildResult(pages, pageCursors));
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
if (options.debugLabel != null) config.debugLabel = options.debugLabel;
|
|
69
|
+
if (options.stalePolicy != null) config.stalePolicy = options.stalePolicy;
|
|
70
|
+
if (options.dependencies != null) config.dependencies = options.dependencies;
|
|
71
|
+
return atom(config);
|
|
72
|
+
}
|
|
73
|
+
//#endregion
|
|
74
|
+
export { atom, createStore, infinityAtom, mutation };
|
|
75
|
+
|
|
76
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/internal/infinity-atom.ts"],"mappings":";;AAoBA,SAAgB,aACd,SACgE;CAGhE,SAAS,cAAc,OAAe,SAAyD;AAC7F,MAAI,QAAQ,YAAY,QAAQ,MAAM,SAAS,QAAQ,UAAU;GAC/D,MAAM,SAAS,MAAM,SAAS,QAAQ;AACtC,UAAO;IAAE,OAAO,MAAM,MAAM,OAAO;IAAE,SAAS,QAAQ,MAAM,OAAO;IAAE;;AAEvE,SAAO;GAAE;GAAO;GAAS;;CAG3B,SAAS,YAAY,OAAe,aAA6B;EAC/D,MAAM,UAAU,cAAc,OAAO,YAAY;EACjD,MAAM,WAAW,QAAQ,MAAM,QAAQ,MAAM,SAAS;EACtD,MAAM,aAAa,YAAY,OAC3B,QAAQ,cAAc,UAAU,QAAQ,MAAM,GAC9C,KAAA;AACJ,SAAO;GACL,OAAO,QAAQ;GACf,aAAa,QAAQ;GACrB,aAAa,cAAc;GAC3B,oBAAoB;GACrB;;CAGH,MAAM,SAAgF;EACpF,KAAK,OAAO,QAAQ;GAClB,MAAM,OAAO,IAAI,kBAAkB;AAEnC,OAAI,QAAQ,KAKV,QAAO,YAAY,CAJN,MAAM,QAAQ,QAAQ;IACjC,QAAQ,QAAQ;IAChB,QAAQ,IAAI;IACb,CAAC,CACuB,EAAE,CAAC,QAAQ,cAAc,CAAC;GAIrD,MAAM,QAAgB,EAAE;GACxB,MAAM,cAAwB,EAAE;AAChC,QAAK,MAAM,UAAU,KAAK,aAAa;IACrC,MAAM,OAAO,MAAM,QAAQ,QAAQ;KAAE;KAAQ,QAAQ,IAAI;KAAQ,CAAC;AAClE,UAAM,KAAK,KAAK;AAChB,gBAAY,KAAK,OAAO;;AAE1B,UAAO,YAAY,OAAO,YAAY;;EAExC,KAAK,OAAO,KAAK,WAAW;AAC1B,OAAI,WAAW,WACb;GAGF,MAAM,UAAU,IAAI,kBAAkB;AACtC,OAAI,WAAW,QAAQ,CAAC,QAAQ,YAC9B;GAGF,MAAM,WAAW,QAAQ,MAAM,QAAQ,MAAM,SAAS;AACtD,OAAI,YAAY,KACd;GAGF,MAAM,aAAa,QAAQ,cAAc,UAAU,QAAQ,MAAM;AACjE,OAAI,cAAc,KAChB;AAGF,OAAI,mBAAmB;IAAE,GAAG;IAAS,oBAAoB;IAAM,CAAC;GAEhE,MAAM,OAAO,MAAM,QAAQ,QAAQ;IACjC,QAAQ;IACR,QAAQ,IAAI;IACb,CAAC;GAEF,MAAM,QAAQ,CAAC,GAAG,QAAQ,OAAO,KAAK;GACtC,MAAM,cAAc,CAAC,GAAG,QAAQ,aAAa,WAAW;AAExD,OAAI,mBAAmB,YAAY,OAAO,YAAY,CAAC;;EAE1D;AAED,KAAI,QAAQ,cAAc,KACxB,QAAO,aAAa,QAAQ;AAE9B,KAAI,QAAQ,eAAe,KACzB,QAAO,cAAc,QAAQ;AAE/B,KAAI,QAAQ,gBAAgB,KAC1B,QAAO,eAAe,QAAQ;AAGhC,QAAO,KAAK,OAAO"}
|
package/dist/preact/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { h as WritableAtom, i as Mutation, n as StoreClient, o as Atom, t as Store } from "../store-
|
|
1
|
+
import { h as WritableAtom, i as Mutation, n as StoreClient, o as Atom, t as Store } from "../store-DUIAp1x7.js";
|
|
2
2
|
import { ComponentChildren, VNode } from "preact";
|
|
3
3
|
|
|
4
4
|
//#region src/preact/provider.d.ts
|
package/dist/react/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { h as WritableAtom, i as Mutation, n as StoreClient, o as Atom, t as Store } from "../store-
|
|
1
|
+
import { h as WritableAtom, i as Mutation, n as StoreClient, o as Atom, t as Store } from "../store-DUIAp1x7.js";
|
|
2
2
|
import { ReactNode } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/react/provider.d.ts
|
|
@@ -22,6 +22,7 @@ type StalePolicy = "keep" | "suspend" | "reset";
|
|
|
22
22
|
type AtomContext<Deps extends Record<string, Atom<unknown>>> = {
|
|
23
23
|
get: <K extends keyof Deps>(key: K) => Promise<AtomValue<Deps[K]>>;
|
|
24
24
|
signal: AbortSignal;
|
|
25
|
+
getPreviousValue: () => unknown;
|
|
25
26
|
};
|
|
26
27
|
/** Context for standalone mutations: optimistic writes and invalidation (no primary atom). */
|
|
27
28
|
type MutationContext = {
|
|
@@ -33,6 +34,7 @@ type MutationContext = {
|
|
|
33
34
|
interface WritableAtomContext<Deps extends Record<string, Atom<unknown>>, Value> extends AtomContext<Deps>, MutationContext {
|
|
34
35
|
setOptimisticValue(value: Value): void;
|
|
35
36
|
setOptimisticValue(mutate: (prev: Value | undefined) => Value): void;
|
|
37
|
+
getPreviousValue(): Value | undefined;
|
|
36
38
|
}
|
|
37
39
|
type AtomConfig<Value, Deps extends Record<string, Atom<unknown>>, Args extends readonly unknown[]> = {
|
|
38
40
|
dependencies?: Deps;
|
|
@@ -71,7 +73,7 @@ declare function mutation<const Args extends readonly unknown[]>(fn: (ctx: Mutat
|
|
|
71
73
|
//#region src/internal/store.d.ts
|
|
72
74
|
interface StoreClient {
|
|
73
75
|
get<V>(atom: Atom<V>): Promise<V>;
|
|
74
|
-
set<V, A extends readonly unknown[]>(atom: WritableAtom<V, A>, ...args: A): Promise<void>;
|
|
76
|
+
set<V, A extends readonly unknown[]>(atom: WritableAtom<V, A>, ...args: NoInfer<A>): Promise<void>;
|
|
75
77
|
mutate<Args extends readonly unknown[]>(mutation: Mutation<Args>, ...args: Args): Promise<void>;
|
|
76
78
|
write<V>(atom: Atom<V>, value: V): void;
|
|
77
79
|
write<V>(atom: Atom<V>, mutate: (prev: V | undefined) => V): void;
|
|
@@ -87,7 +89,7 @@ declare class Store {
|
|
|
87
89
|
subscribe<V>(atom: Atom<V>, listener: () => void): () => void;
|
|
88
90
|
getSnapshot<V>(atom: Atom<V>): AtomState<V>;
|
|
89
91
|
getServerSnapshot<V>(atom: Atom<V>): AtomState<V>;
|
|
90
|
-
set<V, A extends readonly unknown[]>(atom: WritableAtom<V, A>, ...args: A): Promise<void>;
|
|
92
|
+
set<V, A extends readonly unknown[]>(atom: WritableAtom<V, A>, ...args: NoInfer<A>): Promise<void>;
|
|
91
93
|
mutate<Args extends readonly unknown[]>(mutation: Mutation<Args>, ...args: Args): Promise<void>;
|
|
92
94
|
write<V>(atom: Atom<V>, value: V): void;
|
|
93
95
|
write<V>(atom: Atom<V>, mutate: (prev: V | undefined) => V): void;
|
|
@@ -96,4 +98,4 @@ declare class Store {
|
|
|
96
98
|
declare function createStore(): Store;
|
|
97
99
|
//#endregion
|
|
98
100
|
export { mutation as a, AtomConfig as c, AtomValue as d, IsWritable as f, WritableAtomContext as g, WritableAtom as h, Mutation as i, AtomContext as l, StalePolicy as m, StoreClient as n, Atom as o, MutationContext as p, createStore as r, AtomArgs as s, Store as t, AtomState as u };
|
|
99
|
-
//# sourceMappingURL=store-
|
|
101
|
+
//# sourceMappingURL=store-DUIAp1x7.d.ts.map
|
|
@@ -120,6 +120,130 @@ var LruCache = class {
|
|
|
120
120
|
}
|
|
121
121
|
};
|
|
122
122
|
//#endregion
|
|
123
|
+
//#region src/internal/family-batch-schedulers.ts
|
|
124
|
+
function microtaskScheduler() {
|
|
125
|
+
let scheduled = false;
|
|
126
|
+
return {
|
|
127
|
+
schedule(flush) {
|
|
128
|
+
if (!scheduled) {
|
|
129
|
+
scheduled = true;
|
|
130
|
+
queueMicrotask(flush);
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
reset() {
|
|
134
|
+
scheduled = false;
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
function windowScheduler(ms) {
|
|
139
|
+
let timer = null;
|
|
140
|
+
return {
|
|
141
|
+
schedule(flush) {
|
|
142
|
+
if (timer == null) timer = setTimeout(flush, ms);
|
|
143
|
+
},
|
|
144
|
+
reset() {
|
|
145
|
+
if (timer != null) {
|
|
146
|
+
clearTimeout(timer);
|
|
147
|
+
timer = null;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
function maxBatchSizeScheduler(maxSize) {
|
|
153
|
+
return {
|
|
154
|
+
schedule(flush, context) {
|
|
155
|
+
if (context.pendingCount >= maxSize) flush();
|
|
156
|
+
},
|
|
157
|
+
reset() {}
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
function windowedFiniteBatchScheduler(ms, maxSize) {
|
|
161
|
+
let timer = null;
|
|
162
|
+
return {
|
|
163
|
+
schedule(flush, context) {
|
|
164
|
+
if (context.pendingCount >= maxSize) {
|
|
165
|
+
if (timer != null) {
|
|
166
|
+
clearTimeout(timer);
|
|
167
|
+
timer = null;
|
|
168
|
+
}
|
|
169
|
+
flush();
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
if (timer == null) timer = setTimeout(flush, ms);
|
|
173
|
+
},
|
|
174
|
+
reset() {
|
|
175
|
+
if (timer != null) {
|
|
176
|
+
clearTimeout(timer);
|
|
177
|
+
timer = null;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
//#endregion
|
|
183
|
+
//#region src/internal/family-batch.ts
|
|
184
|
+
var BatchCoordinator = class {
|
|
185
|
+
#fetch;
|
|
186
|
+
#scheduler;
|
|
187
|
+
#queue = [];
|
|
188
|
+
#keySet = /* @__PURE__ */ new Set();
|
|
189
|
+
constructor(fetch, scheduler) {
|
|
190
|
+
this.#fetch = fetch;
|
|
191
|
+
this.#scheduler = scheduler ?? microtaskScheduler();
|
|
192
|
+
}
|
|
193
|
+
enqueue(key, param, ctx, signal) {
|
|
194
|
+
return new Promise((resolve, reject) => {
|
|
195
|
+
this.#queue.push({
|
|
196
|
+
key,
|
|
197
|
+
param,
|
|
198
|
+
ctx,
|
|
199
|
+
resolve,
|
|
200
|
+
reject,
|
|
201
|
+
signal
|
|
202
|
+
});
|
|
203
|
+
this.#keySet.add(key);
|
|
204
|
+
this.#scheduler.schedule(() => this.#flush(), { pendingCount: this.#keySet.size });
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
#flush() {
|
|
208
|
+
if (this.#queue.length === 0) return;
|
|
209
|
+
const entries = this.#queue;
|
|
210
|
+
this.#queue = [];
|
|
211
|
+
this.#keySet = /* @__PURE__ */ new Set();
|
|
212
|
+
this.#scheduler.reset();
|
|
213
|
+
const uniqueKeys = [];
|
|
214
|
+
const uniqueParams = [];
|
|
215
|
+
const seen = /* @__PURE__ */ new Set();
|
|
216
|
+
for (const entry of entries) if (!seen.has(entry.key)) {
|
|
217
|
+
seen.add(entry.key);
|
|
218
|
+
uniqueKeys.push(entry.key);
|
|
219
|
+
uniqueParams.push(entry.param);
|
|
220
|
+
}
|
|
221
|
+
const firstEntry = entries[0];
|
|
222
|
+
if (firstEntry == null) return;
|
|
223
|
+
const firstCtx = firstEntry.ctx;
|
|
224
|
+
const controller = new AbortController();
|
|
225
|
+
let abortedCount = 0;
|
|
226
|
+
for (const entry of entries) if (entry.signal.aborted) abortedCount++;
|
|
227
|
+
else entry.signal.addEventListener("abort", () => {
|
|
228
|
+
abortedCount++;
|
|
229
|
+
if (abortedCount === entries.length) controller.abort();
|
|
230
|
+
}, { once: true });
|
|
231
|
+
if (abortedCount === entries.length) controller.abort();
|
|
232
|
+
this.#fetch({
|
|
233
|
+
keys: uniqueKeys,
|
|
234
|
+
params: uniqueParams,
|
|
235
|
+
signal: controller.signal,
|
|
236
|
+
ctx: firstCtx
|
|
237
|
+
}).then((resultMap) => {
|
|
238
|
+
for (const entry of entries) if (entry.signal.aborted) entry.reject(new DOMException("The operation was aborted", "AbortError"));
|
|
239
|
+
else if (resultMap.has(entry.key)) entry.resolve(resultMap.get(entry.key));
|
|
240
|
+
else entry.reject(/* @__PURE__ */ new Error(`Batch fetch did not return a value for key: ${String(entry.key)}`));
|
|
241
|
+
}, (error) => {
|
|
242
|
+
for (const entry of entries) entry.reject(error);
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
//#endregion
|
|
123
247
|
//#region src/internal/family.ts
|
|
124
248
|
function getFamilyLink(target) {
|
|
125
249
|
return target[FAMILY_LINK];
|
|
@@ -127,6 +251,7 @@ function getFamilyLink(target) {
|
|
|
127
251
|
function atomFamily(options) {
|
|
128
252
|
const cache = new LruCache(options.cachePolicy === "lru" ? options.lruSize ?? 100 : Infinity);
|
|
129
253
|
const storeCallbacks = /* @__PURE__ */ new Set();
|
|
254
|
+
const coordinator = options.batch != null ? new BatchCoordinator(options.batch.fetch, options.batch.scheduler) : null;
|
|
130
255
|
function keyOf(param) {
|
|
131
256
|
return options.paramKey != null ? options.paramKey(param) : param;
|
|
132
257
|
}
|
|
@@ -148,9 +273,19 @@ function atomFamily(options) {
|
|
|
148
273
|
const key = keyOf(param);
|
|
149
274
|
const cached = cache.get(key);
|
|
150
275
|
if (cached != null) return cached;
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
276
|
+
let deps;
|
|
277
|
+
let getFn;
|
|
278
|
+
let setFn;
|
|
279
|
+
if (coordinator != null) {
|
|
280
|
+
deps = options.dependencies?.();
|
|
281
|
+
getFn = (ctx) => coordinator.enqueue(key, param, ctx, ctx.signal);
|
|
282
|
+
setFn = void 0;
|
|
283
|
+
} else {
|
|
284
|
+
const getOpts = options;
|
|
285
|
+
deps = getOpts.dependencies?.(param);
|
|
286
|
+
getFn = getOpts.get(param);
|
|
287
|
+
setFn = getOpts.set?.(param);
|
|
288
|
+
}
|
|
154
289
|
const labelSuffix = options.paramKey != null ? String(key) : String(param);
|
|
155
290
|
const created = createAtom(options.debugLabel != null ? `${options.debugLabel}(${labelSuffix})` : void 0, deps, getFn, setFn);
|
|
156
291
|
attachLink(created);
|
|
@@ -372,6 +507,9 @@ var Store = class {
|
|
|
372
507
|
const dep = deps[key];
|
|
373
508
|
if (dep == null) throw new Error(`Unknown dependency key: "${String(key)}"`);
|
|
374
509
|
return this.resolve(dep);
|
|
510
|
+
},
|
|
511
|
+
getPreviousValue: () => {
|
|
512
|
+
return extractPreviousValue(this.#getOrCreate(atom).state);
|
|
375
513
|
}
|
|
376
514
|
};
|
|
377
515
|
}
|
|
@@ -434,6 +572,9 @@ var Store = class {
|
|
|
434
572
|
const relatedSnapshots = /* @__PURE__ */ new Map();
|
|
435
573
|
const ctx = {
|
|
436
574
|
...baseCtx,
|
|
575
|
+
getPreviousValue: () => {
|
|
576
|
+
return extractPreviousValue(entry.state);
|
|
577
|
+
},
|
|
437
578
|
setOptimisticValue: (valueOrMutate) => {
|
|
438
579
|
if (optimisticSnapshot.current == null) optimisticSnapshot.current = {
|
|
439
580
|
state: entry.state,
|
|
@@ -524,6 +665,6 @@ function extractPreviousValue(state) {
|
|
|
524
665
|
if (state.status === "error") return state.value;
|
|
525
666
|
}
|
|
526
667
|
//#endregion
|
|
527
|
-
export { atom as i, mutation as n, atomFamily as r, createStore as t };
|
|
668
|
+
export { microtaskScheduler as a, atom as c, maxBatchSizeScheduler as i, mutation as n, windowScheduler as o, atomFamily as r, windowedFiniteBatchScheduler as s, createStore as t };
|
|
528
669
|
|
|
529
|
-
//# sourceMappingURL=store-
|
|
670
|
+
//# sourceMappingURL=store-gE1mKZy1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store-gE1mKZy1.js","names":["#maxSize","#nodeMap","#valueMap","#head","#tail","#moveToMru","#insertBeforeTail","#evict","#detach","#fetch","#scheduler","#queue","#keySet","#flush","#atoms","#rdeps","#pending","#controllers","#familyUnsubs","#registeredFamilies","#getOrCreate","#runGet","#registerRdeps","#makeCtx","#scheduleNotify","#markStale","#schedulePendingFlush","#flushScheduled","#flushPending","#markReverseDependentsStale","#autoRegisterFamily","#relatedOptimisticWrite","#rollbackRelatedSnapshots","#client"],"sources":["../src/internal/atom.ts","../src/internal/lru-cache.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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"}
|
package/dist/vue/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { h as WritableAtom, i as Mutation, n as StoreClient, o as Atom, t as Store } from "../store-
|
|
1
|
+
import { h as WritableAtom, i as Mutation, n as StoreClient, o as Atom, t as Store } from "../store-DUIAp1x7.js";
|
|
2
2
|
import * as _$vue from "vue";
|
|
3
3
|
import { PropType, ShallowRef } from "vue";
|
|
4
4
|
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"store-DvSUP7R9.js","names":["#maxSize","#nodeMap","#valueMap","#head","#tail","#moveToMru","#insertBeforeTail","#evict","#detach","#atoms","#rdeps","#pending","#controllers","#familyUnsubs","#registeredFamilies","#getOrCreate","#runGet","#registerRdeps","#makeCtx","#scheduleNotify","#markStale","#schedulePendingFlush","#flushScheduled","#flushPending","#markReverseDependentsStale","#autoRegisterFamily","#relatedOptimisticWrite","#rollbackRelatedSnapshots","#client"],"sources":["../src/internal/atom.ts","../src/internal/lru-cache.ts","../src/internal/family.ts","../src/internal/mutation.ts","../src/internal/store.ts"],"mappings":"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"}
|