mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-15 05:37:32 +00:00
feat(core): docs search service (#7213)
This commit is contained in:
@@ -3,6 +3,7 @@ import type { Doc as YDoc } from 'yjs';
|
||||
import { Entity } from '../../../framework';
|
||||
import { AwarenessEngine, BlobEngine, DocEngine } from '../../../sync';
|
||||
import { throwIfAborted } from '../../../utils';
|
||||
import { WorkspaceEngineBeforeStart } from '../events';
|
||||
import type { WorkspaceEngineProvider } from '../providers/flavour';
|
||||
import type { WorkspaceService } from '../services/workspace';
|
||||
|
||||
@@ -33,6 +34,7 @@ export class WorkspaceEngine extends Entity<{
|
||||
}
|
||||
|
||||
start() {
|
||||
this.eventBus.emit(WorkspaceEngineBeforeStart, this);
|
||||
this.doc.start();
|
||||
this.awareness.connect(this.workspaceService.workspace.awareness);
|
||||
this.blob.start();
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
import { createEvent } from '../../../framework';
|
||||
import type { WorkspaceEngine } from '../entities/engine';
|
||||
|
||||
export const WorkspaceEngineBeforeStart = createEvent<WorkspaceEngine>(
|
||||
'WorkspaceEngineBeforeStart'
|
||||
);
|
||||
@@ -1,5 +1,6 @@
|
||||
export type { WorkspaceProfileInfo } from './entities/profile';
|
||||
export { Workspace } from './entities/workspace';
|
||||
export { WorkspaceEngineBeforeStart } from './events';
|
||||
export { globalBlockSuiteSchema } from './global-schema';
|
||||
export type { WorkspaceMetadata } from './metadata';
|
||||
export type { WorkspaceOpenOptions } from './open-options';
|
||||
|
||||
@@ -23,6 +23,7 @@ export {
|
||||
} from './storage';
|
||||
|
||||
export class DocEngine {
|
||||
readonly clientId: string;
|
||||
localPart: DocEngineLocalPart;
|
||||
remotePart: DocEngineRemotePart | null;
|
||||
|
||||
@@ -80,11 +81,11 @@ export class DocEngine {
|
||||
storage: DocStorage,
|
||||
private readonly server?: DocServer | null
|
||||
) {
|
||||
const clientId = nanoid();
|
||||
this.clientId = nanoid();
|
||||
this.storage = new DocStorageInner(storage);
|
||||
this.localPart = new DocEngineLocalPart(clientId, this.storage);
|
||||
this.localPart = new DocEngineLocalPart(this.clientId, this.storage);
|
||||
this.remotePart = this.server
|
||||
? new DocEngineRemotePart(clientId, this.storage, this.server)
|
||||
? new DocEngineRemotePart(this.clientId, this.storage, this.server)
|
||||
: null;
|
||||
}
|
||||
|
||||
|
||||
@@ -4,3 +4,11 @@ export type { BlobStatus, BlobStorage } from './blob/blob';
|
||||
export { BlobEngine, EmptyBlobStorage } from './blob/blob';
|
||||
export { BlobStorageOverCapacity } from './blob/error';
|
||||
export * from './doc';
|
||||
export * from './indexer';
|
||||
export {
|
||||
IndexedDBIndex,
|
||||
IndexedDBIndexStorage,
|
||||
} from './indexer/impl/indexeddb';
|
||||
export { MemoryIndex, MemoryIndexStorage } from './indexer/impl/memory';
|
||||
export * from './job';
|
||||
export { IndexedDBJobQueue } from './job/impl/indexeddb';
|
||||
|
||||
Reference in New Issue
Block a user