forked from Zagrios/bs-manager
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstatic-configuration.service.ts
More file actions
34 lines (25 loc) · 1.22 KB
/
Copy pathstatic-configuration.service.ts
File metadata and controls
34 lines (25 loc) · 1.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import { StaticConfigKeys, StaticConfigKeyValues } from "main/services/static-configuration.service";
import { IpcService } from "./ipc.service";
import { lastValueFrom } from "rxjs";
export class StaticConfigurationService {
private static instance: StaticConfigurationService;
public static getInstance(): StaticConfigurationService {
if (!StaticConfigurationService.instance) {
StaticConfigurationService.instance = new StaticConfigurationService();
}
return StaticConfigurationService.instance;
}
private readonly ipc: IpcService;
private constructor(){
this.ipc = IpcService.getInstance();
}
public get<K extends StaticConfigKeys>(key: K): Promise<StaticConfigKeyValues[K]> {
return lastValueFrom(this.ipc.sendV2("static-configuration.get", key)) as Promise<StaticConfigKeyValues[K]>;
}
public set<K extends StaticConfigKeys>(key: K, value: StaticConfigKeyValues[K]): Promise<void> {
return lastValueFrom(this.ipc.sendV2("static-configuration.set", { key, value }));
}
public delete<K extends StaticConfigKeys>(key: K): Promise<void> {
return lastValueFrom(this.ipc.sendV2("static-configuration.delete", key));
}
}