Conform more code to strict null checking (#10153)
* Conform more code to strict null checking * Conform more code to strict null checking * Iterate * Iterate
This commit is contained in:
parent
a4ff959aa1
commit
145a5a8a8d
89 changed files with 520 additions and 551 deletions
|
@ -91,7 +91,7 @@ function getLevelOrder(setting: ISetting): SettingLevel[] {
|
|||
|
||||
export type CallbackFn = (
|
||||
settingName: string,
|
||||
roomId: string,
|
||||
roomId: string | null,
|
||||
atLevel: SettingLevel,
|
||||
newValAtLevel: any,
|
||||
newVal: any,
|
||||
|
@ -133,7 +133,7 @@ export default class SettingsStore {
|
|||
// when the setting changes. We track which rooms we're monitoring though to ensure we
|
||||
// don't duplicate updates on the bus.
|
||||
private static watchers = new Map<string, WatchCallbackFn>();
|
||||
private static monitors = new Map<string, Map<string, string>>(); // { settingName => { roomId => callbackRef } }
|
||||
private static monitors = new Map<string, Map<string | null, string>>(); // { settingName => { roomId => callbackRef } }
|
||||
|
||||
// Counter used for generation of watcher IDs
|
||||
private static watcherCount = 1;
|
||||
|
@ -205,7 +205,7 @@ export default class SettingsStore {
|
|||
return;
|
||||
}
|
||||
|
||||
defaultWatchManager.unwatchSetting(SettingsStore.watchers.get(watcherReference));
|
||||
defaultWatchManager.unwatchSetting(SettingsStore.watchers.get(watcherReference)!);
|
||||
SettingsStore.watchers.delete(watcherReference);
|
||||
}
|
||||
|
||||
|
@ -223,7 +223,7 @@ export default class SettingsStore {
|
|||
if (!this.monitors.has(settingName)) this.monitors.set(settingName, new Map());
|
||||
|
||||
const registerWatcher = (): void => {
|
||||
this.monitors.get(settingName).set(
|
||||
this.monitors.get(settingName)!.set(
|
||||
roomId,
|
||||
SettingsStore.watchSetting(
|
||||
settingName,
|
||||
|
@ -242,7 +242,7 @@ export default class SettingsStore {
|
|||
);
|
||||
};
|
||||
|
||||
const rooms = Array.from(this.monitors.get(settingName).keys());
|
||||
const rooms = Array.from(this.monitors.get(settingName)!.keys());
|
||||
const hasRoom = rooms.find((r) => r === roomId || r === null);
|
||||
if (!hasRoom) {
|
||||
registerWatcher();
|
||||
|
@ -250,9 +250,9 @@ export default class SettingsStore {
|
|||
if (roomId === null) {
|
||||
// Unregister all existing watchers and register the new one
|
||||
rooms.forEach((roomId) => {
|
||||
SettingsStore.unwatchSetting(this.monitors.get(settingName).get(roomId));
|
||||
SettingsStore.unwatchSetting(this.monitors.get(settingName)!.get(roomId));
|
||||
});
|
||||
this.monitors.get(settingName).clear();
|
||||
this.monitors.get(settingName)!.clear();
|
||||
registerWatcher();
|
||||
} // else a watcher is already registered for the room, so don't bother registering it again
|
||||
}
|
||||
|
@ -265,7 +265,7 @@ export default class SettingsStore {
|
|||
* The level to get the display name for; Defaults to 'default'.
|
||||
* @return {String} The display name for the setting, or null if not found.
|
||||
*/
|
||||
public static getDisplayName(settingName: string, atLevel = SettingLevel.DEFAULT): string {
|
||||
public static getDisplayName(settingName: string, atLevel = SettingLevel.DEFAULT): string | null {
|
||||
if (!SETTINGS[settingName] || !SETTINGS[settingName].displayName) return null;
|
||||
|
||||
let displayName = SETTINGS[settingName].displayName;
|
||||
|
@ -296,7 +296,7 @@ export default class SettingsStore {
|
|||
*/
|
||||
public static isFeature(settingName: string): boolean {
|
||||
if (!SETTINGS[settingName]) return false;
|
||||
return SETTINGS[settingName].isFeature;
|
||||
return !!SETTINGS[settingName].isFeature;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -319,7 +319,7 @@ export default class SettingsStore {
|
|||
}
|
||||
}
|
||||
|
||||
public static getLabGroup(settingName: string): LabGroup {
|
||||
public static getLabGroup(settingName: string): LabGroup | undefined {
|
||||
if (SettingsStore.isFeature(settingName)) {
|
||||
return (<IFeature>SETTINGS[settingName]).labsGroup;
|
||||
}
|
||||
|
@ -333,7 +333,7 @@ export default class SettingsStore {
|
|||
*/
|
||||
public static isEnabled(settingName: string): boolean {
|
||||
if (!SETTINGS[settingName]) return false;
|
||||
return SETTINGS[settingName].controller ? !SETTINGS[settingName].controller.settingDisabled : true;
|
||||
return !SETTINGS[settingName].controller?.settingDisabled ?? true;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -559,7 +559,7 @@ export default class SettingsStore {
|
|||
throw new Error("Setting '" + settingName + "' does not appear to be a setting.");
|
||||
}
|
||||
|
||||
return level === SettingLevel.DEFAULT || setting.supportedLevels.includes(level);
|
||||
return level === SettingLevel.DEFAULT || !!setting.supportedLevels?.includes(level);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -568,7 +568,7 @@ export default class SettingsStore {
|
|||
* @param {string} settingName The setting name.
|
||||
* @return {SettingLevel}
|
||||
*/
|
||||
public static firstSupportedLevel(settingName: string): SettingLevel {
|
||||
public static firstSupportedLevel(settingName: string): SettingLevel | null {
|
||||
// Verify that the setting is actually a setting
|
||||
const setting = SETTINGS[settingName];
|
||||
if (!setting) {
|
||||
|
@ -723,10 +723,10 @@ export default class SettingsStore {
|
|||
logger.log(`--- END DEBUG`);
|
||||
}
|
||||
|
||||
private static getHandler(settingName: string, level: SettingLevel): SettingsHandler {
|
||||
private static getHandler(settingName: string, level: SettingLevel): SettingsHandler | null {
|
||||
const handlers = SettingsStore.getHandlers(settingName);
|
||||
if (!handlers[level]) return null;
|
||||
return handlers[level];
|
||||
return handlers[level]!;
|
||||
}
|
||||
|
||||
private static getHandlers(settingName: string): HandlerMap {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue