Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F32179239
D9105.1765072739.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
5 KB
Referenced Files
None
Subscribers
None
D9105.1765072739.diff
View Options
diff --git a/web/database/database-module-provider.js b/web/database/database-module-provider.js
--- a/web/database/database-module-provider.js
+++ b/web/database/database-module-provider.js
@@ -121,6 +121,12 @@
}
}
-const databaseModule: DatabaseModule = new DatabaseModule();
+let databaseModule: ?DatabaseModule = null;
+async function getDatabaseModule(): Promise<DatabaseModule> {
+ if (!databaseModule) {
+ databaseModule = new DatabaseModule();
+ }
+ return databaseModule;
+}
-export { databaseModule };
+export { getDatabaseModule };
diff --git a/web/database/sqlite-data-handler.js b/web/database/sqlite-data-handler.js
--- a/web/database/sqlite-data-handler.js
+++ b/web/database/sqlite-data-handler.js
@@ -7,7 +7,7 @@
import { setClientDBStoreActionType } from 'lib/actions/client-db-store-actions.js';
import { reportStoreOpsHandlers } from 'lib/ops/report-store-ops.js';
-import { databaseModule } from './database-module-provider.js';
+import { getDatabaseModule } from './database-module-provider.js';
import { SQLITE_ENCRYPTION_KEY } from './utils/constants.js';
import { isDesktopSafari } from './utils/db-utils.js';
import {
@@ -39,6 +39,7 @@
);
const handleSensitiveData = React.useCallback(async () => {
+ const databaseModule = await getDatabaseModule();
try {
const currentUserData = await databaseModule.schedule({
type: workerRequestMessageTypes.GET_CURRENT_USER_ID,
@@ -65,6 +66,8 @@
React.useEffect(() => {
(async () => {
+ const databaseModule = await getDatabaseModule();
+
if (currentLoggedInUserID) {
let databaseEncryptionKeyJWK = null;
if (isDesktopSafari) {
diff --git a/web/redux/comm-redux-storage-engine.js b/web/redux/comm-redux-storage-engine.js
--- a/web/redux/comm-redux-storage-engine.js
+++ b/web/redux/comm-redux-storage-engine.js
@@ -2,11 +2,12 @@
import storage from 'redux-persist/es/storage/index.js';
-import { databaseModule } from '../database/database-module-provider.js';
+import { getDatabaseModule } from '../database/database-module-provider.js';
import { workerRequestMessageTypes } from '../types/worker-types.js';
const commReduxStorageEngine = {
getItem: async (key: string): Promise<string> => {
+ const databaseModule = await getDatabaseModule();
const isSupported = await databaseModule.isDatabaseSupported();
if (!isSupported) {
return await storage.getItem(key);
@@ -22,6 +23,7 @@
return result.item;
},
setItem: async (key: string, item: string): Promise<void> => {
+ const databaseModule = await getDatabaseModule();
const isSupported = await databaseModule.isDatabaseSupported();
if (!isSupported) {
await storage.setItem(key, item);
@@ -35,6 +37,7 @@
});
},
removeItem: async (key: string): Promise<void> => {
+ const databaseModule = await getDatabaseModule();
const isSupported = await databaseModule.isDatabaseSupported();
if (!isSupported) {
await storage.removeItem(key);
diff --git a/web/redux/persist.js b/web/redux/persist.js
--- a/web/redux/persist.js
+++ b/web/redux/persist.js
@@ -31,7 +31,7 @@
import commReduxStorageEngine from './comm-redux-storage-engine.js';
import type { AppState } from './redux-setup.js';
-import { databaseModule } from '../database/database-module-provider.js';
+import { getDatabaseModule } from '../database/database-module-provider.js';
import { isSQLiteSupported } from '../database/utils/db-utils.js';
import { workerRequestMessageTypes } from '../types/worker-types.js';
@@ -59,6 +59,7 @@
};
},
[2]: async state => {
+ const databaseModule = await getDatabaseModule();
if (!isDatabaseSupported) {
return state;
}
@@ -89,6 +90,8 @@
};
}
+ const databaseModule = await getDatabaseModule();
+
if (!isDatabaseSupported) {
return newState;
}
@@ -139,6 +142,7 @@
const rootKey = 'root';
const migrateStorageToSQLite: StorageMigrationFunction = async debug => {
+ const databaseModule = await getDatabaseModule();
const isSupported = await databaseModule.isDatabaseSupported();
if (!isSupported) {
return undefined;
diff --git a/web/redux/redux-setup.js b/web/redux/redux-setup.js
--- a/web/redux/redux-setup.js
+++ b/web/redux/redux-setup.js
@@ -53,7 +53,7 @@
import { reduceDeviceID } from './device-id-reducer.js';
import reduceNavInfo from './nav-reducer.js';
import { getVisibility } from './visibility.js';
-import { databaseModule } from '../database/database-module-provider.js';
+import { getDatabaseModule } from '../database/database-module-provider.js';
import { activeThreadSelector } from '../selectors/nav-selectors.js';
import { type NavInfo } from '../types/nav-types.js';
import { workerRequestMessageTypes } from '../types/worker-types.js';
@@ -188,6 +188,7 @@
} = baseReducerResult;
if (draftStoreOperations.length > 0 || reportStoreOperations.length > 0) {
(async () => {
+ const databaseModule = await getDatabaseModule();
const isSupported = await databaseModule.isDatabaseSupported();
if (!isSupported) {
return;
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Dec 7, 1:58 AM (16 h, 43 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5842054
Default Alt Text
D9105.1765072739.diff (5 KB)
Attached To
Mode
D9105: [web] Hide databaseModule behind a function
Attached
Detach File
Event Timeline
Log In to Comment