UNPKG

@logux/state

Version:

A tiny (152 bytes) state manager for React/Preact/Vue/Svelte with many atomic tree-shakable stores

32 lines (28 loc) 834 B
import { Store, StoreValue } from '../create-store/index.js' type StoreValues<Stores extends Store[]> = { [Index in keyof Stores]: StoreValue<Stores[Index]> } interface CreateDerived { <Value extends any, OriginStore extends Store>( stores: OriginStore, cb: (value: StoreValue<OriginStore>) => Value ): Store<Value> <Value extends any, OriginStores extends Store[]>( stores: [...OriginStores], cb: (...values: StoreValues<OriginStores>) => Value ): Store<Value> } /** * Create derived store, which use generates value from another stores. * * ```js * import { createDerived } from '@logux/state' * * import { users } from './users.js' * * export const admins = createDerived(users, list => { * return list.filter(user => user.isAdmin) * }) * ``` */ export const createDerived: CreateDerived