Skip to content

Commit 77b0b6b

Browse files
committed
feat(utils): Add support for batching on resolvedAtom
1 parent dbbfdf1 commit 77b0b6b

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

.changeset/cyan-beans-argue.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@inox-tools/utils': minor
3+
---
4+
5+
Allow `resolvedAtom` to batch updates from dependencies

packages/utils/src/nano.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { computed, type ReadableAtom } from 'nanostores';
1+
import { batched, computed, type ReadableAtom } from 'nanostores';
22

33
type ResolvedArray<T extends any[]> = T extends [infer H, ...infer R]
44
? [Resolved<H>, ...ResolvedArray<R>]
@@ -76,8 +76,8 @@ function findDependencies(value: unknown): ReadableAtom[] {
7676
* @param value - A value tree that may contain atoms at any depth.
7777
* @returns A readable atom whose value is the deeply-resolved snapshot of the input.
7878
*/
79-
export function resolvedAtom<T>(value: T): ReadableAtom<Resolved<T>> {
79+
export function resolvedAtom<T>(value: T, batch = false): ReadableAtom<Resolved<T>> {
8080
const dependencies = findDependencies(value);
8181

82-
return computed(dependencies, () => resolveNested(value));
82+
return (batch ? batched : computed)(dependencies, () => resolveNested(value));
8383
}

0 commit comments

Comments
 (0)