UNPKG

fasam-imc-calc

Version:
74 lines (62 loc) 1.82 kB
(() => { // const Error = require('err'); class FasamIMC { /** * Opcionalmente constrói o objeto com valor pré determinados * * @param {Number} peso * @param {Number} altura */ constructor(peso, altura){ this.peso = peso; this.altura = altura; } /** * Calcula o resultado númerico do IMC com base * no peso e altura provido, ou nos valores * informados na construção do objeto * * @param {Number} peso * @param {Number} altura * @return {Number} */ calc(peso, altura){ peso = this.peso || peso; altura = this.altura || altura; peso = this._parse(peso); altura = this._parse(altura); return (peso / Math.pow(altura, 2)).toFixed(2); } /** * Alias para calc * * @param {*} args */ calcular(...args){ return this.calc(...args); } /** * Faz um parse do número transformando possível * vírgula (,) em ponto (.) e garantindo que * ele se torne um Float * * @param {Number} num * @return {Number} */ _parse(num){ this._validar(num); num = num + ""; return parseFloat(num.replace(',','.')).toFixed(2); } /** * Valida se o número é de fato um número (duuhh) * * @param {Number} num */ _validar(num){ if(typeof num !== 'number') throw new Error("Valor inválido, informe um número inteiro ou decimal"); } } module.exports = FasamIMC; })();