@politie/sherlock-utils
Version:
Utility functions that are designed to work with Sherlock. His toolbelt.
22 lines (21 loc) • 1.02 kB
TypeScript
import { Derivable, DerivableAtom, ReactorOptions, State } from '@politie/sherlock';
export type StateObject<V> = {
value: V;
errored: false;
resolved: true;
} | {
error: any;
errored: true;
resolved: true;
} | {
errored: false;
resolved: false;
};
export declare function getStateObject<V>(from: Derivable<V>): StateObject<V>;
export declare function toStateObject<V>(state: State<V>): StateObject<V>;
export declare function fromStateObject<V>(state: StateObject<V>): State<V>;
export declare function materialize<V>(derivable: Derivable<V>): Derivable<StateObject<V>>;
export declare function dematerialize<V>(derivable: Derivable<StateObject<V>>): Derivable<V>;
export declare function setStateObject<V>(to: DerivableAtom<V>, state: StateObject<V>): void;
export declare function syncState<V>(from: Derivable<V>, to: DerivableAtom<V>, opts?: Partial<ReactorOptions<StateObject<V>>>): () => void;
export declare function copyState<V>(from: Derivable<V>, to: DerivableAtom<V>): void;