UNPKG

@opengis/fastify-table

Version:

core-plugins

50 lines (47 loc) 1.71 kB
/** * Хелпер для виконання математичних операцій з числами * * @summary Дії над числами. Дозволяє виконання простих математичних операцій. * @priority 3 * @type helper * @tag math * @alias _math * @example * {{_math operator='-' arg1=10 arg2=5}} * @descr Отримання різниці між arg1 та arg2 * @example * {{_math '1' '+' '1'}} * @descr Виконання складання довжини масиву + 2 * @param {Object} operator Оператор для дії з числами * @param {Object} arg1 Перше число для дії * @param {Object} arg2 Друге число для дії * @param {Array} args[0]] Перше число для дії * @param {Array} args[1]] Оператор для дії з числами * @param {Array} args[2]] Друге число для дії * @returns {String} Returns HTML */ export default function _math(...args) { const options = args.pop(); const opt = options.hash; const operator = opt.operator ? opt.operator : args[1]; opt.arg1 = (opt.arg1 || args[0]) - 0; opt.arg2 = (opt.arg2 || args[2]) - 0; if (+opt.arg1 !== 0 && !opt.arg1) return ''; if (+opt.arg2 !== 0 && !opt.arg2) return ''; switch (operator) { case '/': return opt.arg1 / opt.arg2; case '%': return opt.arg1 % opt.arg2; case '*': return opt.arg1 * opt.arg2; case '-': return opt.arg1 - opt.arg2; case '+': return opt.arg1 + opt.arg2; case '.%': return `${((opt.arg1 * 100) / opt.arg2).toFixed(0)}%`; default: return 'operator is not defined'; } }