Skip to content

设置

UI-PROTOTYPE 提供了基本的设置功能,包括自动加载、自动保存、类型检查、默认值、序列化与反序列化。

添加/删除设置项

  1. 修改src/shared/types/settings.d.ts中的SettingsKeyMap接口
  2. 修改src/main/modules/settings.ts
  3. 修改getDefaultSettings以设置默认值
  4. 修改Validators以添加验证器
  5. 若包含不可直接转化为 JSON 的设置项,则需在SerializersDeserializers中添加序列化与反序列化器

处理保存失败

保存时可能会出现保存失败的情况,可以修改src/main/modules/settings.tssave函数来处理错误。
例如:

async save() {
  // ...
  let error = await writeConfig('settings', data);
  if (!error) return;
  // 在此处添加错误处理相关代码
};

初始化设置

默认情况下,设置会在Electron.Appready事件后立即初始化。如果需要修改设置初始化的时机,请确保在使用设置项之前初始化。

API

main/modules/settings

类:settings

方法:init

function init(): Promise<void>;
初始化设置。请确保在使用设置项之前初始化。

方法:save

function save(): Promise<void>;
保存设置。

方法:get

function get<T extends keyof SettingsKeyMap>(key: T): SettingsKeyMap[T];
获取设置项,当没有对应的设置项时返回undefined

方法:set

function set<T extends keyof SettingsKeyMap>(key: T, value: SettingsKeyMap[T]): boolean;
修改设置项,成功设置返回undefined,不存在该设置项时返回'INVALID_KEY',值验证不通过返回'INVALID_VALUE'
不建议将该函数直接暴露给插件进程。

方法:reset

function reset(): void;
重置设置。
不建议将该函数直接暴露给插件进程。