// Helper to sort tokens const sortTokens = (...sources) => _(_.flatten([...sources])) .sortBy('date') .groupBy('user') .map(tokens => _.last(tokens)) .value()
_(relationships) .map((relationship, name) => _.merge({}, relationship[0], {relationship: name})) .groupBy('service') .value()
_(normalizeRoutes(routes)) // Map redirects to upstreams .map(route => getUpstream(route, normalizeRoutes(routes))) // Remove blank entries .compact() // Parse to lando things .map(route => _.merge({}, url.parse(route.key), {service: route.upstream.split(':')[0]})) // Filter unsupported upstreams .filter(route => _.includes(_.map(supported, 'name'), route.service)) // Merge in port data .map(route => _.merge({}, route, _.find(supported, {name: route.service}))) // Add port to data .map(route => ({service: route.service, config: getProxyMiddlewares(route)})) // Group by service .groupBy('service') // Map to lando proxy config .map((entries, service) => ([service, _.map(entries, 'config')])) // objectify .fromPairs() // Return .value()
_(_.flatten([...sources])) .sortBy('date') .groupBy('email') .map(tokens => _.last(tokens)) .value()
_(_.flatten([...sources])) .sortBy('date') .groupBy('email') .map(tokens => _.last(tokens)) .value()