19 refactor store methods #20

Merged
tristonarmstrong merged 2 commits from 19-refactor-store-methods into main 2024-04-04 02:47:33 +00:00
3 changed files with 24 additions and 6 deletions
Showing only changes of commit a083b589eb - Show all commits

View File

@ -11,7 +11,7 @@ edition = "2021"
tauri-build = { version = "1", features = [] }
[dependencies]
tauri = { version = "1", features = [ "fs-write-file", "fs-read-file", "path-all", "fs-exists", "shell-open"] }
tauri = { version = "1", features = [ "fs-read-file", "fs-create-dir", "fs-exists", "fs-write-file", "path-all", "shell-open"] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"

View File

@ -22,10 +22,11 @@
},
"fs": {
"all": false,
"createDir": true,
"readFile": true,
"writeFile": true,
"exists": true,
"scope": ["$APPDATA/*"]
"scope": ["$APPDATA/*", "$HOME/Library/Application Support/com.KlectrRadio.dev"]
},
"path": {
"all": true

View File

@ -1,4 +1,9 @@
import { exists, readTextFile, writeTextFile } from "@tauri-apps/api/fs"
import {
createDir,
exists,
readTextFile,
writeTextFile,
} from "@tauri-apps/api/fs"
import { appDataDir } from "@tauri-apps/api/path"
import { createStore } from "kaioken"
import { Station } from "../hooks/stationStores"
@ -10,7 +15,11 @@ export const useStorageStore = createStore(
export function useStorage() {
async function _createStationsFile(path: string): Promise<Station[]> {
await writeTextFile(path, "[]", { append: false })
try {
await writeTextFile(path, "[]", { append: false })
} catch (err) {
console.error("CUSTOM ERROR: ", err)
}
return []
}
@ -22,9 +31,17 @@ export function useStorage() {
console.error("getStationsFile: ", err)
return undefined
}
if (!dir) return undefined
const dirExists = await exists(dir)
if (!dirExists) {
await createDir(dir)
}
const path = `${dir}stations.json`
if (!(await exists(path))) return await _createStationsFile(path)
const pathExists = await exists(path)
if (!pathExists) return await _createStationsFile(path)
const jsonString = await readTextFile(path)
const json = JSON.parse(jsonString) as Station[]
useStorageStore.setState(() => path)