DoSoapCalc/backend/calculators/index.js

48 lines
1.3 KiB
JavaScript

// calculators/index.js
// Регистрация всех калькуляторов
// Регистрация калькуляторов
// Ключ - это тип калькулятора (используется в URL и командах)
const soapCalculator = require('./soap');
const candleCalculator = require('./candle');
const calculators = {
soap: soapCalculator,
candle: candleCalculator,
// Здесь будут добавляться новые калькуляторы:
// bathBomb: bathBombCalculator,
};
/**
* Получить калькулятор по типу
* @param {string} type - Тип калькулятора
* @returns {Object|null} Модуль калькулятора или null
*/
function getCalculator(type) {
return calculators[type] || null;
}
/**
* Получить список всех доступных калькуляторов
* @returns {string[]} Массив типов калькуляторов
*/
function getAvailableCalculators() {
return Object.keys(calculators);
}
/**
* Проверить, существует ли калькулятор
* @param {string} type - Тип калькулятора
* @returns {boolean}
*/
function hasCalculator(type) {
return type in calculators;
}
module.exports = {
getCalculator,
getAvailableCalculators,
hasCalculator,
};