Skip to content

Commit

Permalink
Move utils around
Browse files Browse the repository at this point in the history
  • Loading branch information
cmdcolin committed Nov 30, 2023
1 parent 992b059 commit ed8cbd7
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 19 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,10 @@ import {
measureGridWidth,
} from '@jbrowse/core/util'
import { autorun, observable } from 'mobx'
import { getRootKeys } from './components/faceted/util'
import { getRootKeys, getNonSparseKeys } from './facetedUtil'

const nonMetadataKeys = ['category', 'adapter', 'description'] as const

function filt(
keys: readonly string[],
rows: Record<string, unknown>[],
cb: (row: Record<string, unknown>, f: string) => unknown,
) {
return keys.filter(f => rows.map(r => cb(r, f)).filter(f => !!f).length > 5)
}

/**
* #stateModel FacetedModel
*/
Expand Down Expand Up @@ -147,29 +139,42 @@ export function facetedStateTreeF() {
}))

.views(self => ({
/**
* #getter
*/
get filteredNonMetadataKeys() {
return self.showSparse
? nonMetadataKeys
: filt(nonMetadataKeys, self.rows, (r, f) => r[f])
: getNonSparseKeys(nonMetadataKeys, self.rows, (r, f) => r[f])
},

/**
* #getter
*/
get metadataKeys() {
return [...new Set(self.rows.flatMap(row => getRootKeys(row.metadata)))]
},
get filteredMetadataKeys() {
return self.showSparse
? this.metadataKeys
: // @ts-expect-error
filt(this.metadataKeys, self.rows, (r, f) => r.metadata[f])
: getNonSparseKeys(
this.metadataKeys,
self.rows,
(r, f) => r.metadata[f],
)
},

/**
* #getter
*/
get fields() {
return [
'name',
...this.filteredNonMetadataKeys,
...this.filteredMetadataKeys.map(m => `metadata.${m}`),
]
},
/**
* #getter
*/
get filteredRows() {
const arrFilters = [...self.filters.entries()]
.filter(f => f[1].length > 0)
Expand All @@ -181,9 +186,15 @@ export function facetedStateTreeF() {
},
}))
.actions(self => ({
/**
* #action
*/
setVisible(args: Record<string, boolean>) {
self.visible = args
},
/**
* #action
*/
setWidths(args: Record<string, number | undefined>) {
self.widths = args
},
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
export function findNonSparseKeys(
keys: readonly string[],
rows: Record<string, unknown>[],
cb: (row: Record<string, unknown>, f: string) => unknown,
) {
return keys.filter(f => rows.map(r => cb(r, f)).filter(f => !!f).length > 5)
}

export function getRootKeys(obj: Record<string, unknown>) {
return Object.entries(obj)
.map(([key, val]) => (typeof val === 'string' ? key : ''))
.filter(f => !!f)
}

0 comments on commit ed8cbd7

Please sign in to comment.