Yuki Takei 1 год назад
Родитель
Сommit
c24c5c022c
2 измененных файлов с 0 добавлено и 82 удалено
  1. 0 72
      apps/app/src/stores/middlewares/sync-to-storage.ts
  2. 0 10
      apps/app/src/stores/xss.ts

+ 0 - 72
apps/app/src/stores/middlewares/sync-to-storage.ts

@@ -1,72 +0,0 @@
-import { isClient } from '@growi/core/dist/utils';
-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}`;
-};
-
-// eslint-disable-next-line @typescript-eslint/no-explicit-any
-export type IStorageSerializer<Data = any> = {
-  serialize: (value: Data) => string,
-  deserialize: (value: string | null) => Data,
-}
-
-export const createSyncToStorageMiddlware = (
-    storage: Storage,
-    storageSerializer: IStorageSerializer = {
-      serialize: JSON.stringify,
-      deserialize: JSON.parse,
-    },
-): Middleware => {
-  return (useSWRNext) => {
-    return (key, fetcher, config) => {
-      if (key == null) {
-        return useSWRNext(key, fetcher, config);
-      }
-
-      const keyInStorage = generateKeyInStorage(key.toString());
-      let initData = config.fallbackData;
-
-      // retrieve initial data from storage
-      const itemInStorage = storage.getItem(keyInStorage);
-      if (itemInStorage != null) {
-        try {
-          initData = storageSerializer.deserialize(itemInStorage);
-        }
-        catch (e) {
-          logger.warn(`Could not deserialize the item for the key '${keyInStorage}'`);
-        }
-      }
-
-      config.fallbackData = initData;
-      const swrNext = useSWRNext(key, fetcher, config);
-      const swrMutate = swrNext.mutate;
-
-      return Object.assign(swrNext, {
-        mutate: (data, shouldRevalidate) => {
-          return swrMutate(data, shouldRevalidate)
-            .then((value) => {
-              storage.setItem(keyInStorage, storageSerializer.serialize(value));
-              return value;
-            });
-        },
-      });
-    };
-  };
-};
-
-const passthroughMiddleware: Middleware = (useSWRNext) => {
-  return (key, fetcher, config) => useSWRNext(key, fetcher, config);
-};
-
-export const localStorageMiddleware = isClient()
-  ? createSyncToStorageMiddlware(localStorage)
-  : passthroughMiddleware;
-
-export const sessionStorageMiddleware = isClient()
-  ? createSyncToStorageMiddlware(sessionStorage)
-  : passthroughMiddleware;

+ 0 - 10
apps/app/src/stores/xss.ts

@@ -1,10 +0,0 @@
-
-import { SWRResponse } from 'swr';
-
-import Xss from '~/services/xss';
-
-import { useStaticSWR } from './use-static-swr';
-
-export const useXss = (initialData?: Xss): SWRResponse<Xss, Error> => {
-  return useStaticSWR<Xss, Error>('xss', initialData);
-};