UNPKG

@engine2/efa-utils

Version:

Library for EFA Apps utility functions

67 lines (55 loc) 2.33 kB
"use strict"; 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), ''); }