@engine2/efa-utils
Version:
Library for EFA Apps utility functions
87 lines (67 loc) • 3.07 kB
JavaScript
;
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;