UNPKG

synapse-storage

Version:

Набор инструментов для управления состоянием и апи-запросами

34 lines (32 loc) 1.11 kB
/** * Общие утилиты вычисления/записи пути по accessor'у. * * Используются базовым классом `Dispatcher` (`this.apiActions`/`this.keyedApiActions`). */ /** * Вычисляет путь к свойству через Proxy-перехват обращений. * * @example resolvePath((s) => s.api.listRequest) // ['api', 'listRequest'] */ function resolvePath(accessor) { const path = []; const handler = { get (_, prop) { if (typeof prop === 'string') { path.push(prop); } return new Proxy({}, handler); } }; accessor(new Proxy({}, handler)); return path; } /** * Записывает значение по пути в объекте (мутирует переданный draft). */ function setByPath(obj, path, value) { let current = obj; for(let i = 0; i < path.length - 1; i++){ current = current[path[i]]; } current[path[path.length - 1]] = value; } export { resolvePath, setByPath }; //# sourceMappingURL=path.util.js.map