diff --git a/lib/shared/redux/client-db-utils.js b/lib/shared/redux/client-db-utils.js --- a/lib/shared/redux/client-db-utils.js +++ b/lib/shared/redux/client-db-utils.js @@ -2,66 +2,17 @@ import _keyBy from 'lodash/fp/keyBy.js'; -import { - threadStoreOpsHandlers, - type ClientDBThreadStoreOperation, - type ReplaceThreadOperation, - type ThreadStoreOperation, -} from '../../ops/thread-store-ops.js'; +import type { ClientDBThreadStoreOperation } from '../../ops/thread-store-ops.js'; import type { RawThreadInfos, - ThreadStore, ClientDBThreadInfo, } from '../../types/thread-types.js'; -import { entries, values } from '../../utils/objects.js'; +import { values } from '../../utils/objects.js'; import { convertClientDBThreadInfoToRawThreadInfo, convertRawThreadInfoToClientDBThreadInfo, } from '../../utils/thread-ops-utils.js'; -function updateThreadStoreThreadInfos( - threadStore: ThreadStore, - migrationFunc: RawThreadInfos => RawThreadInfos, -): { - +newThreadStore: ThreadStore, - +dbOperations: $ReadOnlyArray, -} { - const rawThreadInfos = threadStore.threadInfos; - - // 1. Convert `RawThreadInfo`s to a map of `threadID` => `threadInfo`. - const keyedRawThreadInfos = _keyBy('id')(rawThreadInfos); - - // 2. Apply `migrationFunc` to `ThreadInfo`s. - const updatedKeyedRawThreadInfos = migrationFunc(keyedRawThreadInfos); - - // 3. Construct `replace` `ThreadStoreOperation`s. - const replaceOps: $ReadOnlyArray = entries( - updatedKeyedRawThreadInfos, - ).map(([id, threadInfo]) => ({ - type: 'replace', - payload: { id, threadInfo }, - })); - - // 4. Prepend `replaceOps` with `remove_all` ops - const operations: $ReadOnlyArray = [ - { type: 'remove_all' }, - ...replaceOps, - ]; - - // 5. Process `ThreadStoreOperation`s to get new `ThreadStore`. - const newThreadStore: ThreadStore = - threadStoreOpsHandlers.processStoreOperations(threadStore, operations); - - // 6. Convert `ThreadStoreOperation`s to `ClientDBThreadStoreOperation`s. - const dbOperations: $ReadOnlyArray = - threadStoreOpsHandlers.convertOpsToClientDBOps(operations); - - return { - newThreadStore, - dbOperations, - }; -} - function createUpdateDBOpsForThreadStoreThreadInfos( clientDBThreadInfos: $ReadOnlyArray, migrationFunc: RawThreadInfos => RawThreadInfos, @@ -95,7 +46,4 @@ return [{ type: 'remove_all' }, ...replaceThreadOperations]; } -export { - updateThreadStoreThreadInfos, - createUpdateDBOpsForThreadStoreThreadInfos, -}; +export { createUpdateDBOpsForThreadStoreThreadInfos };