diff --git a/src/app/registry-handler.ts b/src/app/registry-handler.ts index c4f29074b..690264e9b 100644 --- a/src/app/registry-handler.ts +++ b/src/app/registry-handler.ts @@ -12,24 +12,22 @@ export const retrieveWindowsRegistry = async (): Promise => { const Registry = require('winreg'); const registryLocalStore = RegistryStore; const fetchLogic = (err, channel) => { - if (err) { + if (err || !channel) { logger.info('registry-handler: error occurred. Details: ', err); - return 'An error has occurred'; + return ''; } else { - if (channel.type === RegistryValueType.REG_SZ) { + if (channel?.type === RegistryValueType.REG_SZ) { registryLocalStore.setRegistry({ currentChannel: channel.value }); logger.info( 'registry-handler: value retrieved successfully, send to Registry Store', ); - return channel.value; } else { logger.info( 'registry-handler: the value was looked for did not exist or its VALUE_TYPE is incorrect', ); - - return 'Key Value doesnt exist'; + return ''; } } }; @@ -44,18 +42,21 @@ export const retrieveWindowsRegistry = async (): Promise => { key: CHANNEL_NEST_LOCATION, }); - return regKeyUser.get(CHANNEL_KEY, (error, channel) => { - if (error && !channel) { - regKeyLocal.get(CHANNEL_KEY, (err, localChannel) => { - return fetchLogic(err, localChannel); - }); - } else if (channel.type === RegistryValueType.REG_SZ) { - registryLocalStore.setRegistry({ currentChannel: channel.value }); - logger.info( - 'registry-handler: value retrieved successfully, send to Registry Store', - ); - - return channel; - } + return new Promise((resolve) => { + regKeyUser.get(CHANNEL_KEY, (error, channel) => { + if (error || !channel) { + logger.info('registry-handler: error occurred. Details: ', error); + + regKeyLocal.get(CHANNEL_KEY, (err, localChannel) => { + resolve(fetchLogic(err, localChannel)); + }); + } else if (channel.type === RegistryValueType.REG_SZ) { + logger.info( + 'registry-handler: value retrieved successfully, send to Registry Store', + ); + registryLocalStore.setRegistry({ currentChannel: channel.value }); + resolve(channel.value); + } + }); }); };