feat: added work with config toml

This commit is contained in:
Arduinum
2026-05-14 22:49:08 +03:00
committed by Arduinum628
parent 5b52549404
commit d56c983901
3 changed files with 46 additions and 0 deletions

View File

@@ -0,0 +1,4 @@
# Конфиг таймера
[sound]
sound_id = "alarm_beep"

View File

@@ -0,0 +1,36 @@
import { readTextFile, writeTextFile, BaseDirectory } from '@tauri-apps/plugin-fs';
import TOML from 'toml';
import { Config } from '@/types/configType';
/**
* Загрузит или создаст TOML-конфиг
*/
export async function loadConfig(): Promise<Config> {
let text: string | null = null;
const configName = 'config.toml';
// 1. пробуем прочитать пользовательский конфиг
try {
text = await readTextFile(configName, {
baseDir: BaseDirectory.AppConfig
});
} catch {
text = null;
}
// 2. если нет — создаст из дефолта
if (!text) {
const defaultConfig = await fetch(`/${configName}`)
.then(r => r.text());
await writeTextFile(configName, defaultConfig, {
baseDir: BaseDirectory.AppConfig
});
text = defaultConfig;
}
// 3. парсим TOML
return TOML.parse(text) as Config;
}

View File

@@ -0,0 +1,6 @@
//** Тип для конфига */
export type Config = {
sound: {
sound_id: string;
}
}