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

Function fetchDailyRangeChunked

app/composables/useCharts.ts:252–268  ·  view source on GitHub ↗

* API limit workaround: * If the requested range is larger than the API allows (≈18 months), * split into multiple requests, then merge/sum by day.

(packageName: string, startIso: string, endIso: string)

Source from the content-addressed store, hash-verified

250 * split into multiple requests, then merge/sum by day.
251 */
252async function fetchDailyRangeChunked(packageName: string, startIso: string, endIso: string) {
253 const maximumDaysPerRequest = 540
254 const ranges = splitIsoRangeIntoChunksInclusive(startIso, endIso, maximumDaysPerRequest)
255
256 if (ranges.length === 1) {
257 return fetchDailyRangeCached(packageName, startIso, endIso)
258 }
259
260 const parts = await mapWithConcurrency(
261 ranges,
262 range => fetchDailyRangeCached(packageName, range.startIso, range.endIso),
263 10,
264 )
265 const all = parts.flat()
266
267 return mergeDailyPoints(all)
268}
269
270function toDateOnly(value?: string): string | null {
271 if (!value) return null

Callers 1

Calls 4

mapWithConcurrencyFunction · 0.90
fetchDailyRangeCachedFunction · 0.85
mergeDailyPointsFunction · 0.85

Tested by

no test coverage detected