1 import { getItem, removeItem, setItem } from '@proton/shared/lib/helpers/storage';
3 import { createHost } from '../lib';
4 import type { ProtonMessageResponses, ProtonMessages } from './interface';
5 import { Action } from './interface';
7 const handler = async (message: ProtonMessages): Promise<ProtonMessageResponses | undefined> => {
8 if (message.type === Action.getLocalStorage) {
9 return getItem(message.payload.key);
12 if (message.type === Action.getLocalStorageKeys) {
13 return [...Object.keys(window.localStorage)];
16 if (message.type === Action.setLocalStorage) {
17 setItem(message.payload.key, message.payload.value);
21 if (message.type === Action.removeLocalStorage) {
22 removeItem(message.payload.key);
26 throw new Error(`Unknown message type`);
29 export const setupHostCrossStorage = () => {
30 createHost<ProtonMessages, ProtonMessageResponses>(handler);