From 8fafcb4e0c72b5a403ec32dfdea36aa5b0e8d622 Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Thu, 1 Apr 2021 13:44:35 -0400 Subject: [PATCH] revert init Signed-off-by: Sebastian Malton --- .../utils/__tests__/storageHelper.test.ts | 2 +- src/renderer/utils/storageHelper.ts | 45 ++++++++++--------- 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/src/renderer/utils/__tests__/storageHelper.test.ts b/src/renderer/utils/__tests__/storageHelper.test.ts index bf0f19f114..03b5e65a6f 100644 --- a/src/renderer/utils/__tests__/storageHelper.test.ts +++ b/src/renderer/utils/__tests__/storageHelper.test.ts @@ -26,7 +26,7 @@ describe("renderer/utils/StorageHelper", () => { expect(storageHelper.defaultValue).toBe("test"); expect(storageHelper.get()).toBe("test"); - await storageHelper.init(); + storageHelper.init(); expect(storageHelper.key).toBe(storageKey); expect(storageHelper.defaultValue).toBe("test"); diff --git a/src/renderer/utils/storageHelper.ts b/src/renderer/utils/storageHelper.ts index 400c014927..0c64b37623 100755 --- a/src/renderer/utils/storageHelper.ts +++ b/src/renderer/utils/storageHelper.ts @@ -59,14 +59,20 @@ export class StorageHelper { } } - /** - * This function turns an optionally synchronous call to an asynchronous call - * and correctly handles the synchronous call throwing an error - * @returns the result of this.storage.getItem - */ - private async getItemFromStorage(): Promise { - return this.storage.getItem(this.key); - } + private onData = (data: T): void => { + const notEmpty = data != null; + const notDefault = !this.isDefaultValue(data); + + if (notEmpty && notDefault) { + this.merge(data); + } + + this.initialized = true; + }; + + private onError = (error: any): void => { + logger.error(`[load]: ${error}`, this); + }; @action init({ force = false } = {}) { @@ -74,20 +80,17 @@ export class StorageHelper { return; } - this.getItemFromStorage() - .then(data => { - const notEmpty = data != null; - const notDefault = !this.isDefaultValue(data); + try { + const data = this.storage.getItem(this.key); - if (notEmpty && notDefault) { - this.merge(data); - } - - this.initialized = true; - }) - .catch(error => { - logger.error(`[load]: ${error}`, this); - }); + if (data instanceof Promise) { + data.then(this.onData, this.onError); + } else { + this.onData(data); + } + } catch (error) { + this.onError(error); + } } isDefaultValue(value: T): boolean {