diff --git a/renderer/src/protocol.ts b/renderer/src/protocol.ts index 8f9d1ef..09a5fc7 100644 --- a/renderer/src/protocol.ts +++ b/renderer/src/protocol.ts @@ -9,6 +9,11 @@ type RustRequest = | { type: "cacheRemove"; namespace: string; key: string } | { type: "cacheClear"; namespace: string } | { type: "cacheIsEmpty"; namespace: string } + | { type: "localStorageSet"; namespace: string; key: string; data: string } + | { type: "localStorageGet"; namespace: string; key: string } + | { type: "localStorageRemove"; namespace: string; key: string } + | { type: "localStorageClear"; namespace: string } + | { type: "localStorageAll"; namespace: string } | { type: "pop" } | { type: "openExtensionPreferences" } | { type: "openCommandPreferences" }; @@ -99,6 +104,45 @@ export const cacheIsEmpty = async (namespace: string): Promise => { return result as boolean; }; +export const localStorageSet = async ( + namespace: string, + key: string, + data: string +): Promise => { + await sendRequest({ type: "localStorageSet", namespace, key, data }); +}; + +export const localStorageGet = async ( + namespace: string, + key: string +): Promise => { + const result = await sendRequest({ type: "localStorageGet", namespace, key }); + return result as string | null; +}; + +export const localStorageRemove = async ( + namespace: string, + key: string +): Promise => { + const result = await sendRequest({ + type: "localStorageRemove", + namespace, + key, + }); + return result as boolean; +}; + +export const localStorageClear = async (namespace: string): Promise => { + await sendRequest({ type: "localStorageClear", namespace }); +}; + +export const localStorageAll = async ( + namespace: string +): Promise> => { + const result = await sendRequest({ type: "localStorageAll", namespace }); + return result as Record; +}; + export const pop = async (): Promise => { await sendRequest({ type: "pop" }); };