studiocms
Version:
Astro Native CMS for AstroDB. Built from the ground up by the Astro community.
44 lines (35 loc) • 972 B
text/typescript
import type { WebVitalsResponseItem } from '../types.js';
import { checkDate } from './checkDate.js';
export type BuildDataObject = {
historicalData: WebVitalsResponseItem[];
last24HoursData: WebVitalsResponseItem[];
last7DaysData: WebVitalsResponseItem[];
last30DaysData: WebVitalsResponseItem[];
};
export function buildDataObject(
webVitalData: WebVitalsResponseItem[],
collect: string
): BuildDataObject {
const data: BuildDataObject = {
historicalData: [],
last24HoursData: [],
last7DaysData: [],
last30DaysData: [],
};
for (const item of webVitalData) {
const { name, timestamp } = item;
if (name === collect) {
data.historicalData.push(item);
if (checkDate(timestamp).isInLast24Hours()) {
data.last24HoursData.push(item);
}
if (checkDate(timestamp).isInLast7Days()) {
data.last7DaysData.push(item);
}
if (checkDate(timestamp).isInLast30Days()) {
data.last30DaysData.push(item);
}
}
}
return data;
}