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

Function buildWeeklyEvolutionFromContributorCounts

app/composables/useCharts.ts:108–136  ·  view source on GitHub ↗
(
  weeklyCounts: Map<number, number>,
  rangeStart: Date,
  rangeEnd: Date,
)

Source from the content-addressed store, hash-verified

106}
107
108function buildWeeklyEvolutionFromContributorCounts(
109 weeklyCounts: Map<number, number>,
110 rangeStart: Date,
111 rangeEnd: Date,
112): WeeklyDataPoint[] {
113 return Array.from(weeklyCounts.entries())
114 .sort(([a], [b]) => a - b)
115 .map(([weekStartSeconds, value]) => {
116 const weekStartDate = new Date(weekStartSeconds * 1000)
117 const weekEndDate = addDays(weekStartDate, 6)
118
119 if (!isOverlappingRange(weekStartDate, weekEndDate, rangeStart, rangeEnd)) return null
120
121 const clampedWeekEndDate = weekEndDate.getTime() > rangeEnd.getTime() ? rangeEnd : weekEndDate
122
123 const weekStartIso = toIsoDate(weekStartDate)
124 const weekEndIso = toIsoDate(clampedWeekEndDate)
125
126 return {
127 value,
128 weekKey: `${weekStartIso}_${weekEndIso}`,
129 weekStart: weekStartIso,
130 weekEnd: weekEndIso,
131 timestampStart: weekStartDate.getTime(),
132 timestampEnd: clampedWeekEndDate.getTime(),
133 }
134 })
135 .filter((item): item is WeeklyDataPoint => Boolean(item))
136}
137
138function buildMonthlyEvolutionFromContributorCounts(
139 monthlyCounts: Map<string, number>,

Callers 1

Calls 3

addDaysFunction · 0.85
isOverlappingRangeFunction · 0.85
toIsoDateFunction · 0.85

Tested by

no test coverage detected