@engine2/efa-utils
Version:
Library for EFA Apps utility functions
67 lines (55 loc) • 2.33 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getData = getData;
exports.getString = getString;
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
var COCKPIT_POS = ['CD', 'CP', 'FO', 'LT', 'OP', 'OF', 'OB'];
var CABIN_POS = ['PR', 'SC', 'CC', 'OC', 'AM', 'GE', 'AH'];
function filterCrew(crew, positions) {
return positions.reduce(function (init, pos) {
var addMembers = crew.filter(function (_ref) {
var position = _ref.position,
dhc = _ref.dhc;
return position === pos && !dhc;
});
return [].concat(_toConsumableArray(init), _toConsumableArray(addMembers));
}, []);
}
function getMembersString(prevMembers, nextMember) {
var position = nextMember.position,
firstName = nextMember.firstName,
lastName = nextMember.lastName;
var memberStr = "<".concat(position, "> ").concat(firstName, " ").concat(lastName, " \n");
return prevMembers.concat(memberStr);
}
var getCompartmentsString = function getCompartmentsString(delimiter) {
return function (prevCompartments, nextCompartment) {
if (!nextCompartment.length) return prevCompartments;
var members = nextCompartment.reduce(getMembersString, '');
if (prevCompartments) {
return prevCompartments.concat(delimiter).concat(members);
} else {
return prevCompartments.concat(members);
}
};
};
function getData(crew) {
return {
cockpit: filterCrew(crew, COCKPIT_POS),
cabin: filterCrew(crew, CABIN_POS),
dhc: crew.filter(function (_ref2) {
var dhc = _ref2.dhc;
return !!dhc;
})
};
}
function getString(crew) {
var delimiter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '\n';
var asData = getData(crew);
return Object.values(asData).reduce(getCompartmentsString(delimiter), '');
}