Files
AFFiNE-Mirror/blocksuite/affine/blocks/surface/src/extensions/surface-middleware.ts

24 lines
609 B
TypeScript

import { createIdentifier } from '@blocksuite/global/di';
import type { ExtensionType } from '@blocksuite/store';
import type { SurfaceBlockModel } from '../surface-model';
export type SurfaceMiddleware = (surface: SurfaceBlockModel) => () => void;
export const surfaceMiddlewareIdentifier = createIdentifier<{
middleware: SurfaceMiddleware;
}>('surface-middleware');
export function surfaceMiddlewareExtension(
id: string,
middleware: SurfaceMiddleware
): ExtensionType {
return {
setup: di => {
di.addImpl(surfaceMiddlewareIdentifier(id), {
middleware,
});
},
};
}