github.com/anth0d/nomad@v0.0.0-20221214183521-ae3a0a2cad06/ui/mirage/serializers/allocation.js (about) 1 import ApplicationSerializer from './application'; 2 import { arrToObj } from '../utils'; 3 4 export default ApplicationSerializer.extend({ 5 embed: true, 6 include: ['taskStates', 'taskResources'], 7 8 serialize() { 9 var json = ApplicationSerializer.prototype.serialize.apply(this, arguments); 10 if (json instanceof Array) { 11 json.forEach(serializeAllocation); 12 } else { 13 serializeAllocation(json); 14 } 15 return json; 16 }, 17 }); 18 19 function serializeAllocation(allocation) { 20 allocation.TaskStates = allocation.TaskStates.reduce(arrToObj('Name'), {}); 21 const { Ports, Networks } = allocation.TaskResources[0] 22 ? allocation.TaskResources[0].Resources 23 : {}; 24 allocation.AllocatedResources = { 25 Shared: { Ports, Networks }, 26 Tasks: allocation.TaskResources.map(({ Name, Resources }) => ({ Name, ...Resources })).reduce( 27 arrToObj('Name'), 28 {} 29 ), 30 }; 31 }