MCPcopy Create free account
hub / github.com/Snapchat/dagger-browser / NodeClosure

Function NodeClosure

browser/src/components/NodeClosure.tsx:22–94  ·  view source on GitHub ↗
({ graphManager, componentName, nodeName }: Props)

Source from the content-addressed store, hash-verified

20}
21
22export default function NodeClosure({ graphManager, componentName, nodeName }: Props) {
23
24 const dependencies = getDependencies(graphManager, componentName, nodeName);
25
26 const scopedDependencies = Object.keys(dependencies.bindings).filter((scope: string) => {
27 return scope != NO_SCOPE && scope != "@dagger.Reusable"
28 });
29
30 const modules = Object.keys(dependencies.modules);
31
32 const history = useHistory();
33
34 return (
35 <div className="card">
36 <div className="card-content">
37 <div className="card-title">
38 Transitive Dependencies: {nodeName}
39 </div>
40
41 {scopedDependencies.length > 0 && (
42 <div>
43 <br/>
44 <h6>Scoped Bindings</h6>
45 { scopedDependencies.map((scope: string) => {
46 return (<div>
47 <p>{getScopeDisplayName(scope)}</p>
48 {dependencies.bindings[scope].map((binding: Node) => {
49 return (
50 <div>{binding.key}</div>
51 )
52 })}</div>)
53 })}
54 </div>
55 )}
56
57 {modules.length > 0 && (
58 <div>
59 <br/>
60 <h6>Module Bindings</h6>
61 { modules.map((module: string) => {
62 return (
63 <div>
64 <div>
65 <Link className="soft-link" to={Routes.GraphModule(componentName, module)}>
66 {getModuleDisplayName(module)}
67 </Link>
68 &nbsp;
69 (
70 {dependencies.modules[module].length}
71 /
72 {dependencies.moduleSummary[module]}
73 )
74 </div>
75 {dependencies.modules[module].map((binding: Node) => {
76 return (
77 <NodeLink
78 key={binding.key}
79 node={binding}

Callers

nothing calls this directly

Calls 3

getScopeDisplayNameFunction · 0.85
getModuleDisplayNameFunction · 0.85
getDependenciesFunction · 0.70

Tested by

no test coverage detected