Ejemplo n.º 1
0
export const resolveWith = curry((client, graph) => {
  if (Graph.nodes(graph).length === 0 && Graph.hasComponent('main', graph)) {
    const components = Graph.components(graph).filter((c) => c.componentId !== 'main')
    graph = Graph.component('main', graph)
    graph.components = (graph.components || []).concat(components)
  }
  var needed = requiredGraphComponents(graph)
  return Promise.resolveDeep(needed.map((ref) => merge(ref, {component: client(ref.ref)})))
  .then((newComponents) => {
    if (newComponents.length === 0) return graph // .disallowReferences()
    return Graph.flow(
      storeComponent(newComponents),
      markRecursions(newComponents),
      resolveReferences(newComponents),
      resolveWith(client),
      {
        name: 'Resolving components',
        names: [
          'Storing Components in the Graph',
          'Marking Recursions',
          'Resolving References',
          'Recursively resolving graph components'
        ]
      }
    )(graph)
  })
})
Ejemplo n.º 2
0
 .filter((c) => !Graph.hasComponent(c.component, graph))