Bläddra i källkod

Merge pull request #7134 from weseek/fix/deserialization-in-sync-to-storage

fix: Deserialization in sync-to-storage
Yuki Takei 3 år sedan
förälder
incheckning
723d56a206
1 ändrade filer med 10 tillägg och 1 borttagningar
  1. 10 1
      packages/app/src/stores/middlewares/sync-to-storage.ts

+ 10 - 1
packages/app/src/stores/middlewares/sync-to-storage.ts

@@ -1,6 +1,10 @@
 import { isClient } from '@growi/core';
 import { Middleware } from 'swr';
 
+import loggerFactory from '~/utils/logger';
+
+const logger = loggerFactory('growi:stores:sync-to-storage');
+
 const generateKeyInStorage = (key: string): string => {
   return `swr-cache-${key}`;
 };
@@ -30,7 +34,12 @@ export const createSyncToStorageMiddlware = (
       // retrieve initial data from storage
       const itemInStorage = storage.getItem(keyInStorage);
       if (itemInStorage != null) {
-        initData = storageSerializer.deserialize(itemInStorage);
+        try {
+          initData = storageSerializer.deserialize(itemInStorage);
+        }
+        catch (e) {
+          logger.warn(`Could not deserialize the item for the key '${keyInStorage}'`);
+        }
       }
 
       config.fallbackData = initData;