39 lines
1.2 KiB
TypeScript
39 lines
1.2 KiB
TypeScript
import { config } from '@affine/env';
|
|
import type { Provider } from '@affine/workspace/type';
|
|
|
|
import type { BlockSuiteWorkspace } from '../shared';
|
|
import {
|
|
createAffineWebSocketProvider,
|
|
createBroadCastChannelProvider,
|
|
createIndexedDBProvider,
|
|
} from './providers';
|
|
import { createAffineDownloadProvider } from './providers/affine';
|
|
|
|
export const createAffineProviders = (
|
|
blockSuiteWorkspace: BlockSuiteWorkspace
|
|
): Provider[] => {
|
|
return (
|
|
[
|
|
createAffineDownloadProvider(blockSuiteWorkspace),
|
|
createAffineWebSocketProvider(blockSuiteWorkspace),
|
|
config.enableBroadCastChannelProvider &&
|
|
createBroadCastChannelProvider(blockSuiteWorkspace),
|
|
config.enableIndexedDBProvider &&
|
|
createIndexedDBProvider(blockSuiteWorkspace),
|
|
] as any[]
|
|
).filter(v => Boolean(v));
|
|
};
|
|
|
|
export const createLocalProviders = (
|
|
blockSuiteWorkspace: BlockSuiteWorkspace
|
|
): Provider[] => {
|
|
return (
|
|
[
|
|
config.enableBroadCastChannelProvider &&
|
|
createBroadCastChannelProvider(blockSuiteWorkspace),
|
|
config.enableIndexedDBProvider &&
|
|
createIndexedDBProvider(blockSuiteWorkspace),
|
|
] as any[]
|
|
).filter(v => Boolean(v));
|
|
};
|