export default function createSubState<T extends InitialState>(
initialState: T & AllowedInitialStateProperties<T>
): SubState
Creates a sub state object from initial state object.
This function adds a readonly __isSubState__ property to the initial state object.
Initial state may not contain key __isSubState__, if it contains, an error will be thrown.
Initial state must be an object with following property value types allowed: number, boolean, string, undefined, null,
Function, object, Array, Map, Set, WeakMap, WeakSet
combineSelectors<T extends State, U1 extends SelectorsBase<T>, ... Un extends SelectorsBase<T>>(
selectorsObject1: Selectors<T, U1>,
...
selectorsObject2: Selectors<T, Un>
): Selectors<T, U1> & ... Selectors<T, Un>;
combines objects of selectors to a single object containing all selectors.
It also checks for duplicate selector keys and throws an error if a duplicate key is found.
createStore<T extends State, U extends SelectorsBase<T>>(
initialState: T,
selectors: Selectors<T, U>
): Store<T, U>
creates a store containing initialState and selectors
class Store<T extends State, U extends SelectorsBase<T>> {
getState(): ReactiveState<T>
}
gets state from the store
class Store<T extends State, U extends SelectorsBase<T>> {
getSelectors(): ComputedSelectors<T, U>
}
gets selectors from the store
class Store<T extends State, U extends SelectorsBase<T>> {
getStateAndSelectors(): [ReactiveState<T>, ComputedSelectors<T, U>]
}
gets state and selectors from the store
useState(id: string, subStatesOrStateGetters: Array<SubState | StateGetter>): Writable<any>[]
returns reactive sub-state(s) or state getter(s) for Svelte component with given id and given sub-state(s and state getter(s)
NOTE #1 If you only call getState() and forget to call useState(), your view won't be reactive and does not update.
NOTE #2 Each Svelte component instance must have its own unique id given as the first argument.
useSelectors(id: string, selectors: ComputedRef[]): Writable<ComputedRef>[]
returns reactive selectors for Svelte component with given id and given selectors
NOTE #1 If you only call getSelectors() and forget to call useSelectors(), your view won't be reactive and does not update.
NOTE #2 Each Svelte component instance must have its own unique id given as the first argument.