mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-14 05:14:54 +00:00
packages/frontend/web -> packages/frontend/apps/web packages/frontend/mobile -> packages/frontend/apps/mobile packages/frontend/electron -> packages/frontend/apps/electron
131 lines
4.0 KiB
TypeScript
131 lines
4.0 KiB
TypeScript
import { mainRPC } from '../main-rpc';
|
|
import type { MainEventRegister } from '../type';
|
|
import { ensureSQLiteDB } from './ensure-db';
|
|
import type { SpaceType } from './types';
|
|
|
|
export * from './ensure-db';
|
|
|
|
export const dbHandlers = {
|
|
getDocAsUpdates: async (
|
|
spaceType: SpaceType,
|
|
workspaceId: string,
|
|
subdocId: string
|
|
) => {
|
|
const spaceDB = await ensureSQLiteDB(spaceType, workspaceId);
|
|
return spaceDB.getDocAsUpdates(subdocId);
|
|
},
|
|
applyDocUpdate: async (
|
|
spaceType: SpaceType,
|
|
workspaceId: string,
|
|
update: Uint8Array,
|
|
subdocId: string
|
|
) => {
|
|
const spaceDB = await ensureSQLiteDB(spaceType, workspaceId);
|
|
return spaceDB.addUpdateToSQLite(update, subdocId);
|
|
},
|
|
deleteDoc: async (
|
|
spaceType: SpaceType,
|
|
workspaceId: string,
|
|
subdocId: string
|
|
) => {
|
|
const spaceDB = await ensureSQLiteDB(spaceType, workspaceId);
|
|
return spaceDB.deleteUpdate(subdocId);
|
|
},
|
|
addBlob: async (
|
|
spaceType: SpaceType,
|
|
workspaceId: string,
|
|
key: string,
|
|
data: Uint8Array
|
|
) => {
|
|
const spaceDB = await ensureSQLiteDB(spaceType, workspaceId);
|
|
return spaceDB.addBlob(key, data);
|
|
},
|
|
getBlob: async (spaceType: SpaceType, workspaceId: string, key: string) => {
|
|
const spaceDB = await ensureSQLiteDB(spaceType, workspaceId);
|
|
return spaceDB.getBlob(key);
|
|
},
|
|
deleteBlob: async (
|
|
spaceType: SpaceType,
|
|
workspaceId: string,
|
|
key: string
|
|
) => {
|
|
const spaceDB = await ensureSQLiteDB(spaceType, workspaceId);
|
|
return spaceDB.deleteBlob(key);
|
|
},
|
|
getBlobKeys: async (spaceType: SpaceType, workspaceId: string) => {
|
|
const spaceDB = await ensureSQLiteDB(spaceType, workspaceId);
|
|
return spaceDB.getBlobKeys();
|
|
},
|
|
getDefaultStorageLocation: async () => {
|
|
return await mainRPC.getPath('sessionData');
|
|
},
|
|
getServerClock: async (
|
|
spaceType: SpaceType,
|
|
workspaceId: string,
|
|
key: string
|
|
) => {
|
|
const spaceDB = await ensureSQLiteDB(spaceType, workspaceId);
|
|
return spaceDB.adapter.serverClock.get(key);
|
|
},
|
|
setServerClock: async (
|
|
spaceType: SpaceType,
|
|
workspaceId: string,
|
|
key: string,
|
|
data: Uint8Array
|
|
) => {
|
|
const spaceDB = await ensureSQLiteDB(spaceType, workspaceId);
|
|
return spaceDB.adapter.serverClock.set(key, data);
|
|
},
|
|
getServerClockKeys: async (spaceType: SpaceType, workspaceId: string) => {
|
|
const spaceDB = await ensureSQLiteDB(spaceType, workspaceId);
|
|
return spaceDB.adapter.serverClock.keys();
|
|
},
|
|
clearServerClock: async (spaceType: SpaceType, workspaceId: string) => {
|
|
const spaceDB = await ensureSQLiteDB(spaceType, workspaceId);
|
|
return spaceDB.adapter.serverClock.clear();
|
|
},
|
|
delServerClock: async (
|
|
spaceType: SpaceType,
|
|
workspaceId: string,
|
|
key: string
|
|
) => {
|
|
const spaceDB = await ensureSQLiteDB(spaceType, workspaceId);
|
|
return spaceDB.adapter.serverClock.del(key);
|
|
},
|
|
getSyncMetadata: async (
|
|
spaceType: SpaceType,
|
|
workspaceId: string,
|
|
key: string
|
|
) => {
|
|
const spaceDB = await ensureSQLiteDB(spaceType, workspaceId);
|
|
return spaceDB.adapter.syncMetadata.get(key);
|
|
},
|
|
setSyncMetadata: async (
|
|
spaceType: SpaceType,
|
|
workspaceId: string,
|
|
key: string,
|
|
data: Uint8Array
|
|
) => {
|
|
const spaceDB = await ensureSQLiteDB(spaceType, workspaceId);
|
|
return spaceDB.adapter.syncMetadata.set(key, data);
|
|
},
|
|
getSyncMetadataKeys: async (spaceType: SpaceType, workspaceId: string) => {
|
|
const spaceDB = await ensureSQLiteDB(spaceType, workspaceId);
|
|
return spaceDB.adapter.syncMetadata.keys();
|
|
},
|
|
clearSyncMetadata: async (spaceType: SpaceType, workspaceId: string) => {
|
|
const spaceDB = await ensureSQLiteDB(spaceType, workspaceId);
|
|
return spaceDB.adapter.syncMetadata.clear();
|
|
},
|
|
delSyncMetadata: async (
|
|
spaceType: SpaceType,
|
|
workspaceId: string,
|
|
key: string
|
|
) => {
|
|
const spaceDB = await ensureSQLiteDB(spaceType, workspaceId);
|
|
return spaceDB.adapter.syncMetadata.del(key);
|
|
},
|
|
};
|
|
|
|
export const dbEvents = {} satisfies Record<string, MainEventRegister>;
|