48 lines
1.3 KiB
JavaScript
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,
|
|
};
|
|
|