UNPKG

@engine2/efa-utils

Version:

Library for EFA Apps utility functions

87 lines (67 loc) 3.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _round = _interopRequireDefault(require("lodash/round")); var _mapValues = _interopRequireDefault(require("lodash/fp/mapValues")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var possibleFuelActualUnit = ['l', 'u', 'i', 'k', 'p']; var possibleWeightUnit = ['kg', 'lb']; var calcFuelling = function calcFuelling(_ref) { var _ref$fuelRef = _ref.fuelRef, fuelRef = _ref$fuelRef === void 0 ? 0 : _ref$fuelRef, _ref$convertingCoef = _ref.convertingCoef, convertingCoef = _ref$convertingCoef === void 0 ? 0.8 : _ref$convertingCoef, _ref$fuelActual = _ref.fuelActual, fuelActual = _ref$fuelActual === void 0 ? 0 : _ref$fuelActual, _ref$fuelActualUnit = _ref.fuelActualUnit, fuelActualUnit = _ref$fuelActualUnit === void 0 ? 'l' : _ref$fuelActualUnit, _ref$fuelPrev = _ref.fuelPrev, fuelPrev = _ref$fuelPrev === void 0 ? 0 : _ref$fuelPrev, _ref$weightUnit = _ref.weightUnit, weightUnit = _ref$weightUnit === void 0 ? 'kg' : _ref$weightUnit; // convertingCoef. always Litres to kg/lb if (!possibleFuelActualUnit.includes(fuelActualUnit)) { throw new Error("Wrong fuelActualUnit. Possible values are ".concat(possibleFuelActualUnit.join(', '))); } if (!possibleWeightUnit.includes(weightUnit)) { throw new Error("Wrong weightUnit. Possible values are ".concat(possibleWeightUnit.join(', '))); } var fuelWanted = Number(fuelRef) - Number(fuelPrev); var fuelWantedConverted = fuelWanted / Number(convertingCoef); var fuelActualConverted = 0; switch (fuelActualUnit) { case 'k': fuelActualConverted = weightUnit === 'kg' ? Number(fuelActual) : 2.20462 * Number(fuelActual); break; case 'l': fuelActualConverted = Number(fuelActual) * Number(convertingCoef); // Litres to kg break; case 'u': fuelActualConverted = 3.78541 * Number(fuelActual) * Number(convertingCoef); // Convert to Litres first, then to kg break; case 'i': fuelActualConverted = 4.54609 * Number(fuelActual) * Number(convertingCoef); // Convert to Litres first, then to kg break; case 'p': fuelActualConverted = weightUnit === 'lb' ? Number(fuelActual) : 0.453592 * Number(fuelActual); // Pounds to kg break; } var discrepancy = fuelActualConverted - fuelWanted; var discrepancyPerc = fuelWantedConverted ? discrepancy / fuelWantedConverted * 100 : 0; var discrepancySign = discrepancy > 0 ? '+' : ''; return (0, _mapValues.default)(function (val) { return typeof val === 'number' ? (0, _round.default)(val, 1) : val; }, { fuelWanted: fuelWanted, fuelWantedConverted: fuelWantedConverted, fuelActualConverted: fuelActualConverted, discrepancy: discrepancy, discrepancyPerc: discrepancyPerc, discrepancySign: discrepancySign }); }; var _default = calcFuelling; exports.default = _default; module.exports = exports.default;