SudoSOS Back-end API / internal/server-settings / ServerSettingsStore
Class: ServerSettingsStore<T> ​
Store of global server settings, which are key-value pairs stored in the database. Used for settings that fit a database store better than an environment variable, as the latter should contain mostly secrets to get things to work, not to configure stuff.
Type Parameters ​
| Type Parameter | Default type |
|---|---|
T extends keyof ISettings | keyof ISettings |
Constructors ​
Constructor ​
new ServerSettingsStore<T>(): ServerSettingsStore<T>;Returns ​
ServerSettingsStore<T>
Accessors ​
initialized ​
Get Signature ​
get initialized(): boolean;Returns ​
boolean
Methods ​
getSetting() ​
getSetting(key): ISettings[T];Get a server setting. If the setting is subject to change during runtime, use the "getSettingFromDatabase" method instead.
Parameters ​
| Parameter | Type | Description |
|---|---|---|
key | T | - |
Returns ​
ISettings[T]
getSettingFromDatabase() ​
getSettingFromDatabase(key): Promise<ISettings[T]>;Get a server setting from the database. This ensures it is always up to date, but adds some latency due to a database query.
Parameters ​
| Parameter | Type | Description |
|---|---|---|
key | T | - |
Returns ​
Promise<ISettings[T]>
initialize() ​
initialize(): Promise<ServerSettingsStore<T>>;Fetch all key-value pairs from the database
Returns ​
Promise<ServerSettingsStore<T>>
setSetting() ​
setSetting(key, value): Promise<ServerSetting<keyof ISettings>>;Update a server setting
Parameters ​
| Parameter | Type | Description |
|---|---|---|
key | T | - |
value | ISettings[T] | - |
Returns ​
Promise<ServerSetting<keyof ISettings>>
deleteInstance() ​
static deleteInstance(): void;Only for testing, never use in production
Returns ​
void
getInstance() ​
static getInstance(): ServerSettingsStore<keyof ISettings>;Singleton, because there is only one copy of the core running at a time. We can therefore simply initialize the store once and keep it up to date from memory.
Returns ​
ServerSettingsStore<keyof ISettings>
getSettingFromDatabase() ​
static getSettingFromDatabase<T>(key): Promise<ISettings[T]>;Get a server setting from the database. Returns null if it does not exist. Compared to the class method, this method does not update the internal cache.
Type Parameters ​
| Type Parameter |
|---|
T extends keyof ISettings |
Parameters ​
| Parameter | Type | Description |
|---|---|---|
key | T | - |
Returns ​
Promise<ISettings[T]>