Hydration
Saves and restores serializable atom state.
dehydrate reads atoms marked with Atom.serializable from an AtomRegistry and returns encoded entries keyed by their serialization keys. hydrate preloads those entries into another registry before the atoms are read. Initial AsyncResult values can be ignored, encoded as values, or represented by promises that update the target registry once the result is no longer initial.
Converting
Dehydration
Encodes the serializable atoms currently stored in a registry into dehydrated state.
Details
Only atoms marked with Atom.serializable are included. encodeInitialAs controls whether AsyncResult.Initial values are ignored, encoded as values, or represented by promises that resolve when the atom leaves the initial state.
Signature
declare function dehydrate(
registry: AtomRegistry,
options?: {
readonly encodeInitialAs?: "ignore" | "promise" | "value-only";
},
): Array<DehydratedAtom>;Hydration
Applies dehydrated atom state to a registry.
When to use
Use to preload serialized atom values into a target registry before those atoms are read.
Details
Encoded values are preloaded by serialization key. Entries with a resultPromise update the matching registry node, or preload the resolved value, when the promise resolves.
Signature
declare function hydrate(registry: AtomRegistry, dehydratedState: Iterable<DehydratedAtom>): void;Models
DehydratedAtom interface
Marker interface for entries in a dehydrated atom registry state.
Signature
interface DehydratedAtom {
readonly "~effect/reactivity/DehydratedAtom": true;
}DehydratedAtomValue interface
A dehydrated serializable atom value.
Details
It stores the atom serialization key, encoded value, dehydration timestamp, and an optional promise used when an AsyncResult.Initial value is encoded as a future non-initial value.
Signature
interface DehydratedAtomValue extends DehydratedAtom {
readonly dehydratedAt: number;
readonly key: string;
readonly resultPromise?: Promise<unknown>;
readonly value: unknown;
}
Returns dehydrated state entries as
DehydratedAtomValuerecords.