refactor(editor): move workspace meta to affine (#9524)

This commit is contained in:
Saul-Mirone
2025-01-05 06:49:31 +00:00
parent be0de6dc21
commit 1180e9bc15
7 changed files with 337 additions and 86 deletions

View File

@@ -1,3 +1,2 @@
export * from './doc/index.js';
export * from './meta.js';
export * from './workspace.js';

View File

@@ -54,13 +54,12 @@ export interface WorkspaceMeta {
get name(): string | undefined;
setName(name: string): void;
commonFieldsUpdated: Slot;
hasVersion: boolean;
writeVersion(workspace: Workspace): void;
get docs(): unknown[] | undefined;
initialize(): void;
commonFieldsUpdated: Slot;
docMetaAdded: Slot<string>;
docMetaRemoved: Slot<string>;
docMetaUpdated: Slot;

View File

@@ -1,3 +1,4 @@
export { createAutoIncrementIdGenerator } from '../utils/id-generator.js';
export * from './test-doc.js';
export * from './test-meta.js';
export * from './test-workspace.js';

View File

@@ -8,7 +8,7 @@ import type {
DocsPropertiesMeta,
Workspace,
WorkspaceMeta,
} from './workspace.js';
} from '../store/workspace.js';
export type DocCollectionMetaState = {
pages?: unknown[];
@@ -20,7 +20,7 @@ export type DocCollectionMetaState = {
avatar?: string;
};
export class DocCollectionMeta implements WorkspaceMeta {
export class TestMeta implements WorkspaceMeta {
private readonly _handleDocCollectionMetaEvents = (
events: Y.YEvent<Y.Array<unknown> | Y.Text | Y.Map<unknown>>[]
) => {

View File

@@ -20,7 +20,6 @@ import type { Schema } from '../schema/index.js';
import {
type Blocks,
type CreateBlocksOptions,
DocCollectionMeta,
type GetBlocksOptions,
type Workspace,
type WorkspaceMeta,
@@ -28,6 +27,7 @@ import {
import { type IdGenerator, nanoid } from '../utils/id-generator.js';
import { AwarenessStore, type RawAwarenessState } from '../yjs/index.js';
import { TestDoc } from './test-doc.js';
import { TestMeta } from './test-meta.js';
export type DocCollectionOptions = {
schema: Schema;
@@ -146,7 +146,7 @@ export class TestWorkspace implements Workspace {
this.idGenerator = idGenerator ?? nanoid;
this.meta = new DocCollectionMeta(this.doc);
this.meta = new TestMeta(this.doc);
this._bindDocMetaEvents();
}