obsidian-douban/src/org/wanxp/douban/setting/SettingsManager.ts

37 lines
845 B
TypeScript

import {App, Setting} from "obsidian";
import { DEFAULT_SETTINGS } from "src/org/wanxp/constant/DefaultSettings";
import DoubanPlugin from "../../main";
import { DoubanPluginSetting } from "./model/DoubanPluginSetting";
export default class SettingsManager {
app: App;
plugin: DoubanPlugin;
settings: DoubanPluginSetting;
cleanupFns: Array<() => void> = [];
constructor(app: App, plugin: DoubanPlugin) {
this.app = app;
this.plugin = plugin;
this.settings = plugin.settings;
}
getSettingWithDefault(key: keyof DoubanPluginSetting) {
return [this.settings[key], DEFAULT_SETTINGS[key]];
}
getSetting(key: keyof DoubanPluginSetting) {
return this.settings[key];
}
async updateSetting(key: keyof DoubanPluginSetting, value:any) {
// @ts-ignore
this.settings[key] = value;
await this.plugin.saveSettings();
}
}