mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-14 21:27:20 +00:00
33
blocksuite/framework/std/src/clipboard/clipboard-adapter.ts
Normal file
33
blocksuite/framework/std/src/clipboard/clipboard-adapter.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
import { createIdentifier, type ServiceProvider } from '@blocksuite/global/di';
|
||||
import type {
|
||||
BaseAdapter,
|
||||
ExtensionType,
|
||||
Transformer,
|
||||
} from '@blocksuite/store';
|
||||
|
||||
type AdapterConstructor = new (
|
||||
job: Transformer,
|
||||
provider: ServiceProvider
|
||||
) => BaseAdapter;
|
||||
|
||||
export interface ClipboardAdapterConfig {
|
||||
mimeType: string;
|
||||
priority: number;
|
||||
adapter: AdapterConstructor;
|
||||
}
|
||||
|
||||
export const ClipboardAdapterConfigIdentifier =
|
||||
createIdentifier<ClipboardAdapterConfig>('clipboard-adapter-config');
|
||||
|
||||
export function ClipboardAdapterConfigExtension(
|
||||
config: ClipboardAdapterConfig
|
||||
): ExtensionType {
|
||||
return {
|
||||
setup: di => {
|
||||
di.addImpl(
|
||||
ClipboardAdapterConfigIdentifier(config.mimeType),
|
||||
() => config
|
||||
);
|
||||
},
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user