import type { KeystoreV4WithMeta } from "./keystore" const STORAGE_PREFIX = "ghost-extension/" type StorageConfig = { keystore: KeystoreV4WithMeta } type StorageKey = keyof StorageConfig const getKey = (key: StorageKey) => `${STORAGE_PREFIX}${key}` export const remove = (keyOrKeys: StorageKey | StorageKey[]): Promise => chrome.storage.local.remove( Array.isArray(keyOrKeys) ? keyOrKeys.map(getKey) : getKey(keyOrKeys), ) export const get = async ( key: K, ): Promise => { const key_ = getKey(key) const { [key_]: value } = await chrome.storage.local.get([key_]) return value } export const set = ( key: K, value: StorageConfig[K], ): Promise => chrome.storage.local.set({ [getKey(key)]: value })