diff options
Diffstat (limited to 'packages/tauri/src')
| -rw-r--r-- | packages/tauri/src/index.tsx | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/packages/tauri/src/index.tsx b/packages/tauri/src/index.tsx index 01df8166a..c77058eb9 100644 --- a/packages/tauri/src/index.tsx +++ b/packages/tauri/src/index.tsx @@ -5,6 +5,7 @@ import { onMount } from "solid-js" import { open, save } from "@tauri-apps/plugin-dialog" import { open as shellOpen } from "@tauri-apps/plugin-shell" import { type as ostype } from "@tauri-apps/plugin-os" +import { AsyncStorage } from "@solid-primitives/storage" import { runUpdater, UPDATER_ENABLED } from "./updater" import { createMenu } from "./menu" @@ -48,6 +49,23 @@ const platform: Platform = { openLink(url: string) { shellOpen(url) }, + + storage: (name = "default.dat") => { + const api: AsyncStorage = { + _store: null, + _getStore: async () => api._store || (api._store = (await import("@tauri-apps/plugin-store")).Store.load(name)), + getItem: async (key: string) => (await (await api._getStore()).get(key)) ?? null, + setItem: async (key: string, value: string) => await (await api._getStore()).set(key, value), + removeItem: async (key: string) => await (await api._getStore()).delete(key), + clear: async () => await (await api._getStore()).clear(), + key: async (index: number) => (await (await api._getStore()).keys())[index], + getLength: async () => (await api._getStore()).length(), + get length() { + return api.getLength() + }, + } + return api + }, } createMenu() |
