UNPKG

cs-element

Version:

Advanced reactive data management library with state machines, blueprints, persistence, compression, networking, and multithreading support

106 lines (83 loc) 3.62 kB
# Service Registry - Реестр сервисов и внедрение зависимостей Service Registry в CSElement предоставляет централизованную систему управления сервисами с поддержкой внедрения зависимостей и глобальной конфигурации. ## 🎯 Основные возможности - **Централизованный реестр сервисов** - единая точка доступа ко всем сервисам - **Внедрение зависимостей** - автоматическое разрешение зависимостей - **Lifecycle management** - управление жизненным циклом сервисов - **Глобальная конфигурация** - централизованная настройка всех систем ## 🚀 Быстрый старт ```typescript import { ServiceRegistry } from 'cs-element'; // Доступ к встроенным сервисам const persistence = services.persistence; const reactivity = services.reactivity; const history = services.history; const registry = services.registry; // Глобальная конфигурация services.configureReactivity({ autoDispose: true, debug: true, warnMemoryLeaks: true }); services.configurePersistence({ adapter: 'indexeddb', autoSave: true, compression: true }); // Работа с Element Registry const allElements = services.registry.getAllElements(); const userElements = services.registry.getElementsByType('User'); const element = services.registry.getElementById('element-123'); // Поиск элементов const results = services.registry.search({ name: 'John', type: 'User', active: true }); ``` ## 📚 Подробное руководство ### Встроенные сервисы ```typescript // Persistence Manager services.persistence.save(element); services.persistence.load('element-id'); services.persistence.clear(); // Reactivity Manager services.reactivity.createComputed(() => element.data.value * 2); services.reactivity.watch(() => element.data, callback); // History Manager services.history.undo(); services.history.redo(); services.history.createSnapshot(); // Element Registry services.registry.register(element); services.registry.unregister('element-id'); services.registry.clear(); ``` ### Пользовательские сервисы ```typescript // Регистрация пользовательского сервиса class NotificationService { constructor() { this.subscribers = new Map(); } subscribe(channel, callback) { if (!this.subscribers.has(channel)) { this.subscribers.set(channel, []); } this.subscribers.get(channel).push(callback); } notify(channel, data) { const callbacks = this.subscribers.get(channel) || []; callbacks.forEach(callback => callback(data)); } } // Регистрация в реестре services.register('notifications', new NotificationService()); // Использование const notifications = services.get('notifications'); notifications.subscribe('user-created', (user) => { console.log('New user created:', user.name); }); ``` Service Registry обеспечивает централизованное управление всеми сервисами CSElement с поддержкой dependency injection и глобальной конфигурации.