feat: IndexedDB based caching for labels, inboxes and teams [CW-50] (#6710)

* feat: allow caching of labels in the account scope

* feat: send cache keys in account json response

* feat: kickstart web worker

* feat: setup basic architecture for workers

* feat: install idb

* feat: add datamanger

* fix: typos

* refactor: rename method

* feat: make init db a manual step

* refactor: separate accountIdFromRoute

* feat: cache enabled API client

* feat: enable caching for inboxes and labels

* feat: enable cache for team

* feat: manage exceptions for team

* feat: add team to data manager

* feat: add a generic listener

* refactor: send only cache keys

* refactor: separate validate method

* feat: add listeners

* feat: add event for revalidate

* feat: add cache keys endpoint

* refactor: fetch cache keys instead of full account data

* fix: key pattern

* feat: don't fetch account for cache_keys

* fix: cache key base class

* refactor: cache keys helper

* feat: add helper

* fix: cache-key update logic

* feat: delete indexeddb on logout

* feat: remove worker.js

* refactor: move data-manager

* refactor: name of file

* feat: add test for DataManager

* refactor: add fake idb to jest setup

* test: cache keys helper

* test: cache keys helper

* test: cache_keys in accounts controller

* refactor: remove cache_keys context

* feat: add policy for cache-keys
This commit is contained in:
Shivam Mishra
2023-03-27 12:16:25 +05:30
committed by GitHub
parent 6000028f64
commit 00ee0478eb
33 changed files with 595 additions and 22 deletions

View File

@@ -41,12 +41,13 @@
"dompurify": "2.2.7",
"foundation-sites": "~6.5.3",
"highlight.js": "~10.4.1",
"idb": "^7.1.1",
"ionicons": "~2.0.1",
"js-cookie": "^2.2.1",
"markdown-it": "^13.0.1",
"markdown-it-link-attributes": "^4.0.1",
"logrocket": "^3.0.1",
"logrocket-vuex": "^0.0.3",
"markdown-it": "^13.0.1",
"markdown-it-link-attributes": "^4.0.1",
"md5": "^2.3.0",
"ninja-keys": "^1.1.9",
"opus-recorder": "^8.0.5",
@@ -108,6 +109,7 @@
"eslint-plugin-storybook": "^0.5.13",
"eslint-plugin-vue": "^6.2.2",
"expect-more-jest": "^2.4.2",
"fake-indexeddb": "^4.0.1",
"husky": "^7.0.0",
"jest": "26.6.3",
"jest-serializer-vue": "^2.0.2",