Page MenuHomePhorge

D14895.1765085822.diff
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

D14895.1765085822.diff

diff --git a/web/shared-worker/worker/process-operations.js b/web/shared-worker/worker/process-operations.js
--- a/web/shared-worker/worker/process-operations.js
+++ b/web/shared-worker/worker/process-operations.js
@@ -5,6 +5,7 @@
import type { ClientDBCommunityStoreOperation } from 'lib/ops/community-store-ops.js';
import type { ClientDBDMOperationStoreOperation } from 'lib/ops/dm-operations-store-ops.js';
import type { ClientDBEntryStoreOperation } from 'lib/ops/entries-store-ops.js';
+import type { ClientDBHolderStoreOperation } from 'lib/ops/holder-store-ops.js';
import type { ClientDBIntegrityStoreOperation } from 'lib/ops/integrity-store-ops.js';
import type { ClientDBKeyserverStoreOperation } from 'lib/ops/keyserver-store-ops.js';
import type { ClientDBMessageStoreOperation } from 'lib/ops/message-store-ops.js';
@@ -385,6 +386,7 @@
entryStoreOperations,
messageSearchStoreOperations,
dmOperationStoreOperations,
+ holderStoreOperations,
} = storeOperations;
try {
@@ -499,6 +501,13 @@
module,
);
}
+ if (holderStoreOperations && holderStoreOperations.length > 0) {
+ processHolderStoreOperations(
+ sqliteQueryExecutor,
+ holderStoreOperations,
+ module,
+ );
+ }
sqliteQueryExecutor.commitTransaction();
} catch (e) {
sqliteQueryExecutor.rollbackTransaction();
@@ -672,6 +681,37 @@
}
}
+function processHolderStoreOperations(
+ sqliteQueryExecutor: SQLiteQueryExecutor,
+ operations: $ReadOnlyArray<ClientDBHolderStoreOperation>,
+ module: EmscriptenModule,
+) {
+ for (const operation: ClientDBHolderStoreOperation of operations) {
+ try {
+ if (operation.type === 'remove_holders') {
+ const { hashes } = operation.payload;
+ sqliteQueryExecutor.removeHolders(hashes);
+ } else if (operation.type === 'replace_holders') {
+ const { items } = operation.payload;
+ for (const item of items) {
+ sqliteQueryExecutor.replaceHolder(item);
+ }
+ } else {
+ throw new Error('Unsupported holder operation');
+ }
+ } catch (e) {
+ throw new Error(
+ `Error while processing ${
+ operation.type
+ } holder operation: ${getProcessingStoreOpsExceptionMessage(
+ e,
+ module,
+ )}`,
+ );
+ }
+ }
+}
+
function getClientStoreFromQueryExecutor(
sqliteQueryExecutor: SQLiteQueryExecutor,
): ClientDBStore {

File Metadata

Mime Type
text/plain
Expires
Sun, Dec 7, 5:37 AM (19 h, 9 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5835808
Default Alt Text
D14895.1765085822.diff (2 KB)

Event Timeline