mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-18 10:36:22 +08:00
34 lines
946 B
TypeScript
34 lines
946 B
TypeScript
import {
|
|
createIdentifier,
|
|
type ServiceIdentifier,
|
|
} from '@blocksuite/global/di';
|
|
import type { ExtensionType } from '@blocksuite/store';
|
|
|
|
import type { BlockAdapterMatcher } from '../types/adapter.js';
|
|
import type { HtmlAST } from '../types/hast.js';
|
|
import type { NotionHtmlDeltaConverter } from './delta-converter.js';
|
|
|
|
export type BlockNotionHtmlAdapterMatcher = BlockAdapterMatcher<
|
|
HtmlAST,
|
|
NotionHtmlDeltaConverter
|
|
>;
|
|
|
|
export const BlockNotionHtmlAdapterMatcherIdentifier =
|
|
createIdentifier<BlockNotionHtmlAdapterMatcher>(
|
|
'BlockNotionHtmlAdapterMatcher'
|
|
);
|
|
|
|
export function BlockNotionHtmlAdapterExtension(
|
|
matcher: BlockNotionHtmlAdapterMatcher
|
|
): ExtensionType & {
|
|
identifier: ServiceIdentifier<BlockNotionHtmlAdapterMatcher>;
|
|
} {
|
|
const identifier = BlockNotionHtmlAdapterMatcherIdentifier(matcher.flavour);
|
|
return {
|
|
setup: di => {
|
|
di.addImpl(identifier, () => matcher);
|
|
},
|
|
identifier,
|
|
};
|
|
}
|