MCPcopy Create free account
hub / github.com/triggerdotdev/jsonhero-web / generateColumns

Function generateColumns

app/useColumnView/index.ts:478–514  ·  view source on GitHub ↗
(
  nodeTable: NodeTable,
  path: string[],
  columnCache: ColumnDefinitionCache
)

Source from the content-addressed store, hash-verified

476
477// TODO: CACHE THIS
478function generateColumns(
479 nodeTable: NodeTable,
480 path: string[],
481 columnCache: ColumnDefinitionCache
482): Array<ColumnDefinition> {
483 const columns: Array<ColumnDefinition> = [];
484
485 function addColumn(nodeRecord: NodeRecord) {
486 const cachedColumn = columnCache.get(nodeRecord.id);
487
488 if (cachedColumn) {
489 columns.push(cachedColumn);
490 return;
491 }
492
493 const column: ColumnDefinition = {
494 id: nodeRecord.id,
495 title: nodeRecord.node.longTitle ?? nodeRecord.node.title,
496 icon: nodeRecord.node.icon,
497 items: nodeRecord.node.children || [],
498 };
499
500 columns.push(column);
501
502 columnCache.set(nodeRecord.id, column);
503 }
504
505 path.forEach((nodeId) => {
506 const nodeRecord = nodeTable[nodeId];
507
508 if (nodeRecord && nodeRecord.node.children.length > 0) {
509 addColumn(nodeRecord);
510 }
511 });
512
513 return columns;
514}
515
516function getPathToNode(nodeTable: NodeTable, nodeId?: string): string[] {
517 return getNodeAncestorPath(nodeTable, nodeId).reverse();

Callers 1

useColumnViewFunction · 0.85

Calls 1

addColumnFunction · 0.85

Tested by

no test coverage detected