Improve server config setting section
This commit is contained in:
parent
da369e61e7
commit
acbc0c0e65
4 changed files with 163 additions and 80 deletions
|
|
@ -58,16 +58,21 @@ export class Settings {
|
|||
key: T,
|
||||
value: SyncSettings[T]
|
||||
): Promise<void> {
|
||||
const newSettings = { ...this.settings, [key]: value };
|
||||
this.logger.debug(`Setting '${key}' to '${value}'`);
|
||||
await this.setSettings(newSettings);
|
||||
await this.setSettings({
|
||||
[key]: value
|
||||
});
|
||||
}
|
||||
|
||||
private async setSettings(value: SyncSettings): Promise<void> {
|
||||
public async setSettings(value: Partial<SyncSettings>): Promise<void> {
|
||||
const oldSettings = this.settings;
|
||||
this.settings = value;
|
||||
this.settings = {
|
||||
...this.settings,
|
||||
...value
|
||||
};
|
||||
|
||||
this.onSettingsChangeHandlers.forEach((handler) => {
|
||||
handler(value, oldSettings);
|
||||
handler(this.settings, oldSettings);
|
||||
});
|
||||
await this.save();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -191,6 +191,10 @@ export class SyncClient {
|
|||
await this.settings.setSetting(key, value);
|
||||
}
|
||||
|
||||
public async setSettings(value: Partial<SyncSettings>): Promise<void> {
|
||||
await this.settings.setSettings(value);
|
||||
}
|
||||
|
||||
public addOnSettingsChangeListener(
|
||||
handler: (settings: SyncSettings, oldSettings: SyncSettings) => void
|
||||
): void {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue