// Система регистрации и управления калькуляторами import { CalculatorConfig } from './calculator-types'; import { soapCalculatorConfig } from '@/calculators/soap/config'; import { candlesCalculatorConfig } from '@/calculators/candles/config'; // Реестр всех доступных калькуляторов const calculators: Map = new Map(); // Регистрация калькуляторов export function registerCalculator(config: CalculatorConfig): void { if (calculators.has(config.id)) { console.warn(`Калькулятор с ID "${config.id}" уже зарегистрирован. Перезаписываем.`); } calculators.set(config.id, config); } // Получить калькулятор по ID export function getCalculator(id: string): CalculatorConfig | undefined { return calculators.get(id); } // Получить список всех калькуляторов export function getAllCalculators(): CalculatorConfig[] { return Array.from(calculators.values()); } // Получить список ID всех калькуляторов export function getAllCalculatorIds(): string[] { return Array.from(calculators.keys()); } // Инициализация: регистрация всех калькуляторов export function initializeCalculators(): void { // Регистрируем калькулятор мыла registerCalculator(soapCalculatorConfig); // Регистрируем калькулятор свечей registerCalculator(candlesCalculatorConfig); // Здесь будут регистрироваться другие калькуляторы // registerCalculator(otherCalculatorConfig); } // Автоматическая инициализация при импорте модуля initializeCalculators();