From 2aa1fc1acb501d17ce3ba2dee6ea901be1bc8344 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Thu, 31 May 2018 09:09:05 -0400 Subject: [PATCH] replace electron store with lowdb --- jslib | 2 +- package-lock.json | 78 ++++++++++++++++------------- package.json | 2 +- src/app/services/services.module.ts | 6 ++- src/main.ts | 8 +-- src/package.json | 4 +- 6 files changed, 57 insertions(+), 43 deletions(-) diff --git a/jslib b/jslib index 98e2e611..f618c0b5 160000 --- a/jslib +++ b/jslib @@ -1 +1 @@ -Subproject commit 98e2e611f8407b9c16735bafabf07eb6cd91ca53 +Subproject commit f618c0b5ee7bcf3cc351721611fabf57dd785211 diff --git a/package-lock.json b/package-lock.json index 1d4b2ce0..e3f083cb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1718,18 +1718,6 @@ } } }, - "conf": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/conf/-/conf-1.4.0.tgz", - "integrity": "sha512-bzlVWS2THbMetHqXKB8ypsXN4DQ/1qopGwNJi1eYbpwesJcd86FBjFciCQX/YwAhp9bM7NVnPFqZ5LpV7gP0Dg==", - "requires": { - "dot-prop": "4.2.0", - "env-paths": "1.0.0", - "make-dir": "1.2.0", - "pkg-up": "2.0.0", - "write-file-atomic": "2.3.0" - } - }, "configstore": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz", @@ -2324,6 +2312,7 @@ "version": "4.2.0", "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "dev": true, "requires": { "is-obj": "1.0.1" } @@ -2833,14 +2822,6 @@ "chokidar": "1.7.0" } }, - "electron-store": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/electron-store/-/electron-store-1.3.0.tgz", - "integrity": "sha512-r1Pdl5MwpiCxgbsl0qnwv/GABO5+J/JTO16+KyqL+bOITIk9o3cq3Sw69uO9NgPkpfcKeEwxtJFbtbiBlGTiDA==", - "requires": { - "conf": "1.4.0" - } - }, "electron-to-chromium": { "version": "1.3.42", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.42.tgz", @@ -2922,7 +2903,8 @@ "env-paths": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-1.0.0.tgz", - "integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=" + "integrity": "sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=", + "dev": true }, "errno": { "version": "0.1.7", @@ -3301,6 +3283,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, "requires": { "locate-path": "2.0.0" } @@ -5127,7 +5110,8 @@ "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true }, "in-publish": { "version": "2.0.0", @@ -5370,7 +5354,8 @@ "is-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true }, "is-odd": { "version": "2.0.0", @@ -5433,6 +5418,11 @@ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", "dev": true }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" + }, "is-property": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", @@ -5783,6 +5773,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, "requires": { "p-locate": "2.0.0", "path-exists": "3.0.0" @@ -5869,6 +5860,18 @@ "signal-exit": "3.0.2" } }, + "lowdb": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz", + "integrity": "sha512-2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ==", + "requires": { + "graceful-fs": "4.1.11", + "is-promise": "2.1.0", + "lodash": "4.17.5", + "pify": "3.0.0", + "steno": "0.4.4" + } + }, "lower-case": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", @@ -5914,6 +5917,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.2.0.tgz", "integrity": "sha512-aNUAa4UMg/UougV25bbrU4ZaaKNjJ/3/xnvg/twpmKROPdKZPZ9wGgI0opdZzO8q/zUFawoUuixuOv33eZ61Iw==", + "dev": true, "requires": { "pify": "3.0.0" } @@ -6886,6 +6890,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "dev": true, "requires": { "p-try": "1.0.0" } @@ -6894,6 +6899,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, "requires": { "p-limit": "1.2.0" } @@ -6901,7 +6907,8 @@ "p-try": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true }, "package-json": { "version": "4.0.1", @@ -7021,7 +7028,8 @@ "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true }, "path-is-absolute": { "version": "1.0.1", @@ -7109,14 +7117,6 @@ "find-up": "2.1.0" } }, - "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "requires": { - "find-up": "2.1.0" - } - }, "plist": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz", @@ -8728,7 +8728,8 @@ "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true }, "single-line-log": { "version": "1.1.2", @@ -9065,6 +9066,14 @@ "readable-stream": "2.3.6" } }, + "steno": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/steno/-/steno-0.4.4.tgz", + "integrity": "sha1-BxEFvfwobmYVwEA8J+nXtdy4Vcs=", + "requires": { + "graceful-fs": "4.1.11" + } + }, "stream-browserify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", @@ -11027,6 +11036,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", + "dev": true, "requires": { "graceful-fs": "4.1.11", "imurmurhash": "0.1.4", diff --git a/package.json b/package.json index 9900d105..b89307ec 100644 --- a/package.json +++ b/package.json @@ -160,11 +160,11 @@ "bootstrap": "4.1.0", "core-js": "2.4.1", "electron-log": "2.2.14", - "electron-store": "1.3.0", "electron-updater": "2.21.4", "googleapis": "29.0.0", "keytar": "4.1.0", "ldapjs": "1.0.2", + "lowdb": "1.0.0", "lunr": "2.1.6", "node-forge": "0.7.1", "rxjs": "5.5.6", diff --git a/src/app/services/services.module.ts b/src/app/services/services.module.ts index 4d2368db..593fa7bf 100644 --- a/src/app/services/services.module.ts +++ b/src/app/services/services.module.ts @@ -1,3 +1,5 @@ +import { remote } from 'electron'; + import { APP_INITIALIZER, NgModule, @@ -9,7 +11,6 @@ import { ElectronLogService } from 'jslib/electron/services/electronLog.service' import { ElectronPlatformUtilsService } from 'jslib/electron/services/electronPlatformUtils.service'; import { ElectronRendererMessagingService } from 'jslib/electron/services/electronRendererMessaging.service'; import { ElectronRendererSecureStorageService } from 'jslib/electron/services/electronRendererSecureStorage.service'; -import { ElectronStorageService } from 'jslib/electron/services/electronStorage.service'; import { isDev } from 'jslib/electron/utils'; import { AuthGuardService } from './auth-guard.service'; @@ -31,6 +32,7 @@ import { ConstantsService } from 'jslib/services/constants.service'; import { ContainerService } from 'jslib/services/container.service'; import { CryptoService } from 'jslib/services/crypto.service'; import { EnvironmentService } from 'jslib/services/environment.service'; +import { LowdbStorageService } from 'jslib/services/lowdbStorage.service'; import { NodeCryptoFunctionService } from 'jslib/services/nodeCryptoFunction.service'; import { StateService } from 'jslib/services/state.service'; import { TokenService } from 'jslib/services/token.service'; @@ -57,7 +59,7 @@ const stateService = new StateService(); const platformUtilsService = new ElectronPlatformUtilsService(i18nService, true); const broadcasterService = new BroadcasterService(); const messagingService = new ElectronRendererMessagingService(broadcasterService); -const storageService: StorageServiceAbstraction = new ElectronStorageService(); +const storageService: StorageServiceAbstraction = new LowdbStorageService(null, remote.app.getPath('userData')); const secureStorageService: StorageServiceAbstraction = new ElectronRendererSecureStorageService(); const cryptoFunctionService: CryptoFunctionServiceAbstraction = new NodeCryptoFunctionService(); const cryptoService = new CryptoService(storageService, secureStorageService, cryptoFunctionService); diff --git a/src/main.ts b/src/main.ts index 06f55759..715400c3 100644 --- a/src/main.ts +++ b/src/main.ts @@ -5,10 +5,11 @@ import { MenuMain } from './main/menu.main'; import { MessagingMain } from './main/messaging.main'; import { I18nService } from './services/i18n.service'; +import { LowdbStorageService } from 'jslib/services/lowdbStorage.service'; + import { KeytarStorageListener } from 'jslib/electron/keytarStorageListener'; import { ElectronLogService } from 'jslib/electron/services/electronLog.service'; import { ElectronMainMessagingService } from 'jslib/electron/services/electronMainMessaging.service'; -import { ElectronStorageService } from 'jslib/electron/services/electronStorage.service'; import { TrayMain } from 'jslib/electron/tray.main'; import { UpdaterMain } from 'jslib/electron/updater.main'; import { WindowMain } from 'jslib/electron/window.main'; @@ -16,7 +17,7 @@ import { WindowMain } from 'jslib/electron/window.main'; export class Main { logService: ElectronLogService; i18nService: I18nService; - storageService: ElectronStorageService; + storageService: LowdbStorageService; messagingService: ElectronMainMessagingService; keytarStorageListener: KeytarStorageListener; @@ -50,7 +51,7 @@ export class Main { this.logService = new ElectronLogService(null, app.getPath('userData')); this.i18nService = new I18nService('en', './locales/'); - this.storageService = new ElectronStorageService(); + this.storageService = new LowdbStorageService(null, app.getPath('userData')); this.windowMain = new WindowMain(this.storageService, 800, 600); this.menuMain = new MenuMain(this); @@ -71,6 +72,7 @@ export class Main { } bootstrap() { + this.storageService.init(); this.keytarStorageListener.init(); this.windowMain.init().then(async () => { await this.i18nService.init(app.getLocale()); diff --git a/src/package.json b/src/package.json index 14042856..cc152449 100644 --- a/src/package.json +++ b/src/package.json @@ -13,8 +13,8 @@ }, "dependencies": { "electron-log": "2.2.14", - "electron-store": "1.3.0", "electron-updater": "2.21.4", - "keytar": "4.1.0" + "keytar": "4.1.0", + "lowdb": "1.0.0" } }