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 21 22 23 24 | 5x 5x 5x 5x 12x 7x 5x 5x 16x 6x 9x 5x | import { CodeMapNode, PrimaryMetrics } from "../../../codeCharta.model"
import { primaryMetricNamesSelector } from "../../../state/selectors/primaryMetrics/primaryMetricNames.selector"
import { selectedNodeSelector } from "../../../state/selectors/selectedNode.selector"
import { Metric } from "../util/metric"
import { createSelector } from "@ngrx/store"
export const _calculateSecondaryMetrics = (primaryMetrics: PrimaryMetrics, node?: Pick<CodeMapNode, "attributes">) => {
if (!node) {
return [] as Metric[]
}
const primaryMetricNamesList = Object.values(primaryMetrics)
const secondaryMetricNames = Object.keys(node.attributes)
.filter(metricName => metricName !== "unary" && !primaryMetricNamesList.includes(metricName))
.sort((metricNameA, metricNameB) => metricNameA.localeCompare(metricNameB))
return secondaryMetricNames.map(secondaryMetricName => ({
name: secondaryMetricName,
value: node.attributes[secondaryMetricName]
}))
}
export const secondaryMetricsSelector = createSelector(primaryMetricNamesSelector, selectedNodeSelector, _calculateSecondaryMetrics)
|