Я храню данные как объект в хранилище синхронизации для моего расширения.Иногда мне нужен прямой доступ к одному «листку» моего дерева, а иногда мне нужны все данные.Это выглядит так:
{
someNode: ...,
otherNode: { ... },
exclusions: {
'someName': [
item1Constant,
item5Constant,
],
'someOtherName': [ ... ]
}
}
Как я могу изменить массив констант под someName, не используя полное дерево исключений?Поместить все узлы someName на верхний уровень без оболочки исключений не кажется хорошим решением, так как на этом уровне есть и другие данные.
Следующее обновление просто someName
, или оно будетзаменить все exclusions
?
chrome.storage.sync.set({ 'exclusions' : { [someNameVar] : [...] } }, () => { ... });
Как насчет этой альтернативы - она создает новый узел в документе исключений или просто новый узел на верхнем уровне с точкой в названии?
chrome.storage.sync.set({ ['exclusions.' + [someNameVar]] : [...] } }, () => { ... });
Как я могу получить доступ только к данным someName
при получении?Я знаю, что для верхнего уровня я могу указать только одно свойство, но я не знаю, что работает только для «подузла»:
chrome.storage.sync.get(['exclusions'], (result) => { ... });
Будет ли нотация объектов делать то, что я ожидаю здесь?Я подозреваю, что нет
chrome.storage.sync.get({ 'exclusions' : { 'someNameVar' } }, () => { ... });
или
chrome.storage.sync.get(['exclusion.someNameVar'], () => { ... });
Исключения могут увеличиться до большого размера, поэтому я не хочу использовать полные данные (а Chrome имеет ограничение на размер сообщения)