All files / views/readout columns.ts

100% Statements 3/3
100% Branches 0/0
100% Functions 2/2
100% Lines 2/2

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20                        1x     1664x        
import { Array, Option } from 'effect'
 
import { type ProfileId, formattersFor } from '../../core/systems/profiles'
import { findGrid } from '../../core/systems/registry'
import type { Formatter, Grid } from '../../core/systems/types'
 
export type ReadoutColumn = Readonly<{
  formatter: Formatter
  maybeGrid: Option.Option<Grid>
}>
 
/** The readout's columns: one per registered formatter, in the profile's order, keyed to the grid that draws it. */
export const columnsFor = (
  profileId: ProfileId,
): ReadonlyArray<ReadoutColumn> =>
  Array.map(formattersFor(profileId), formatter => ({
    formatter,
    maybeGrid: Option.flatMap(formatter.maybeGridId, findGrid),
  }))