UNPKG

synapse-storage

Version:

Набор инструментов для управления состоянием и апи-запросами

30 lines (25 loc) 1.18 kB
import { SingletonKeyGenerator, SingletonManager } from "./singleton.util.js"; class SingletonMixin { static handleSingletonCreation(config, storageType, factory, logger) { // Если singleton не включен, создаем обычный экземпляр if (!config.singleton?.enabled) return factory(config); // Настраиваем логгер в SingletonManager if (logger) { SingletonManager.setLogger(logger); } const key = SingletonKeyGenerator.generate(config, storageType); const result = SingletonManager.getOrCreate(key, config, factory); // Логируем результат if (result.isNewInstance) { logger?.debug(`Created new singleton storage: ${key}`); } else { logger?.debug(`Reusing existing singleton storage: ${key}`); if (result.conflicts && result.conflicts.length > 0) { logger?.debug(`Configuration conflicts detected: ${result.conflicts.join(', ')}`); } } return result.instance; } } export { SingletonMixin }; //# sourceMappingURL=mixin.util.js.map