### TL;DR Refactored `SpecProvider` singleton access pattern and reorganized adapter/extension code structure. ### What changed? - Changed `SpecProvider.getInstance()` to `SpecProvider._` for cleaner singleton access - Moved adapter/extension code from `_common` directory to dedicated `adapters` and `extensions` folders - Consolidated adapter extensions into a single file - Removed unused dependencies from package.json - Deleted unnecessary schema files - Extracted `MobileSpecsPatches` class into the mobile patching code - Updated all references to use the new `SpecProvider._` accessor ### How to test? - Verify all specs are properly registered and accessible via `SpecProvider._` - Test adapter functionality for HTML, Markdown, Notion HTML and plain text - Check mobile-specific features and patches work correctly - Ensure preview functionality works in both page and edgeless modes ### Why make this change? - Improves code organization by properly separating adapters and extensions - Simplifies singleton access pattern - Removes unnecessary dependencies and files - Makes the codebase more maintainable by consolidating related functionality
16 lines
406 B
TypeScript
16 lines
406 B
TypeScript
import { SpecProvider } from '@blocksuite/affine-shared/utils';
|
|
import { Container } from '@blocksuite/global/di';
|
|
|
|
import { registerSpecs } from '../../extensions/register';
|
|
|
|
registerSpecs();
|
|
|
|
export function getProvider() {
|
|
const container = new Container();
|
|
const exts = SpecProvider._.getSpec('store').value;
|
|
exts.forEach(ext => {
|
|
ext.setup(container);
|
|
});
|
|
return container.provider();
|
|
}
|