MCPcopy
hub / github.com/npmx-dev/npmx.dev / buildCompareScatterChartDataset

Function buildCompareScatterChartDataset

app/utils/compare-scatter-chart.ts:94–131  ·  view source on GitHub ↗
(
  packagesData: ReadonlyArray<PackageComparisonData | null>,
  packages: string[],
  xFacet: ComparisonFacet,
  yFacet: ComparisonFacet,
)

Source from the content-addressed store, hash-verified

92}
93
94export function buildCompareScatterChartDataset(
95 packagesData: ReadonlyArray<PackageComparisonData | null>,
96 packages: string[],
97 xFacet: ComparisonFacet,
98 yFacet: ComparisonFacet,
99): VueUiScatterDatasetItem[] {
100 return packagesData.reduce<VueUiScatterDatasetItem[]>((acc, packageData, index) => {
101 if (!packageData) {
102 return acc
103 }
104
105 const x = getNumericFacetValue(packageData, xFacet)
106 const y = getNumericFacetValue(packageData, yFacet)
107
108 if (x === null || y === null) {
109 return acc
110 }
111
112 const fallbackName = packages[index] || `package-${index + 1}`
113 const packageName = getPackageName(packageData, fallbackName)
114
115 acc.push({
116 name: applyEllipsis(packageName, 14),
117 fullName: packageName,
118 color: isListedFramework(packageName) ? getFrameworkColor(packageName) : undefined,
119 values: [
120 {
121 x,
122 y,
123 name: applyEllipsis(packageName, 14),
124 fullName: packageName,
125 },
126 ],
127 })
128
129 return acc
130 }, [])
131}

Callers 1

Calls 5

applyEllipsisFunction · 0.90
isListedFrameworkFunction · 0.90
getFrameworkColorFunction · 0.90
getNumericFacetValueFunction · 0.85
getPackageNameFunction · 0.70

Tested by

no test coverage detected