MCPcopy Create free account
hub / github.com/ZenNotes/zennotes / boardColumns

Function boardColumns

packages/shared-domain/src/database-transforms.ts:144–161  ·  view source on GitHub ↗
(
  rows: DbRow[],
  groupField: DbField,
  optionOrder: string[]
)

Source from the content-addressed store, hash-verified

142 * references a removed option.
143 */
144export function boardColumns(
145 rows: DbRow[],
146 groupField: DbField,
147 optionOrder: string[]
148): BoardColumn[] {
149 const buckets = new Map<string, DbRow[]>()
150 const known = new Set(optionOrder)
151 for (const value of optionOrder) buckets.set(value, [])
152 buckets.set(EMPTY_GROUP, [])
153 for (const row of rows) {
154 const v = cell(row, groupField.id).trim()
155 const key = v.length > 0 && known.has(v) ? v : EMPTY_GROUP
156 buckets.get(key)!.push(row)
157 }
158 const columns = optionOrder.map((value) => ({ key: value, rows: buckets.get(value)! }))
159 columns.push({ key: EMPTY_GROUP, rows: buckets.get(EMPTY_GROUP)! })
160 return columns
161}

Callers 2

DatabaseBoardViewFunction · 0.90

Calls 1

cellFunction · 0.70

Tested by

no test coverage detected