From 9d2cc7cd9f045a59b21408d0f23083e79fdbfda4 Mon Sep 17 00:00:00 2001 From: Elio Struyf Date: Wed, 20 Dec 2023 12:29:22 +0100 Subject: [PATCH] Make sure settings listeners are intialized --- src/helpers/SettingsHelper.ts | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/helpers/SettingsHelper.ts b/src/helpers/SettingsHelper.ts index 89dc28ad..5090bff4 100644 --- a/src/helpers/SettingsHelper.ts +++ b/src/helpers/SettingsHelper.ts @@ -210,12 +210,16 @@ export class Settings { * @returns */ public static attachListener(id: string, callback: (global?: any) => void) { - const listener = Settings.listeners.find((l) => l.id === id); + const listener = (Settings.listeners || []).find((l) => l.id === id); if (listener) { listener.callback = callback; return; } + if (!Settings.listeners) { + Settings.listeners = []; + } + Settings.listeners.push({ id, callback @@ -226,7 +230,7 @@ export class Settings { * Trigger all the listeners */ public static triggerListeners() { - for (const listener of Settings.listeners) { + for (const listener of Settings.listeners || []) { Logger.info(`Triggering listener: ${listener.id}`); listener.callback(); } @@ -437,7 +441,7 @@ export class Settings { */ public static async createTeamSettings() { const wsFolder = Folders.getWorkspaceFolder(); - await this.createGlobalFile(wsFolder); + await Settings.createGlobalFile(wsFolder); } /** @@ -1044,9 +1048,9 @@ export class Settings { * Rebind the configuration watchers */ private static rebindWatchers() { - Logger.info(`Rebinding ${this.listeners.length} listeners`); + Logger.info(`Rebinding ${(Settings.listeners || []).length} listeners`); - Settings.listeners.forEach((l) => { + (Settings.listeners || []).forEach((l) => { Settings.attachListener(l.id, l.callback); });