aotds-docks/src/dux/utils.js

31 lines
641 B
JavaScript

import fp from 'lodash/fp';
const expand_cost_mass = (obj={}) => ([
fp.pick(['cost','mass'],obj),
...Object.values(obj || {}).filter( val => typeof val === 'object' ).map(
val => expand_cost_mass(val)
)
]);
export function calc_ship_req(ship) {
console.log(ship);
let { general, ...rest } = ship;
//if(!general) general = {};
const items = fp.flow(
expand_cost_mass,
fp.flattenDeep,
fp.filter(fp.has('cost'))
)({
...rest,
cost: general.mass, mass: 0
})
return {
mass: fp.sumBy('mass',items),
cost: fp.sumBy('cost',items),
}
}