synapse-storage
Version:
Набор инструментов для управления состоянием и апи-запросами
23 lines (22 loc) • 1.31 kB
TypeScript
import { StorageKey } from '../utils/storage-key';
export declare function parsePath(path: string | StorageKey): string[];
export declare function getValueByPath(obj: any, path: string | StorageKey): any;
/**
* Иммутабельная запись значения по пути.
*
* НЕ мутирует `obj`: клонирует корень и только узлы НА пути записи (structural
* sharing — соседние ветки сохраняют ссылки). Возвращает новое состояние.
*
* Это важно для `MemoryStorage`, который держит состояние по ссылке: запись по
* месту портила бы переданный `initialState` и ломала `reset()`.
*/
export declare function setValueByPath(obj: any, path: string | StorageKey, value: any): any;
/**
* Иммутабельное удаление значения по пути. НЕ мутирует `obj`.
* Возвращает `{ state, removed }`: `removed=false`, если пути не существовало
* (состояние тогда возвращается прежним по ссылке).
*/
export declare function removeValueByPath(obj: any, path: string | StorageKey): {
state: any;
removed: boolean;
};