UNPKG

studiocms

Version:

Astro Native CMS for AstroDB. Built from the ground up by the Astro community.

71 lines (70 loc) 2.18 kB
import { checkDate } from "./checkDate.js"; const buildPageRouteDataObject = (webVitalData) => { const perRouteData = []; const last24HoursData = []; const last7DaysData = []; const last30DaysData = []; if (webVitalData.length > 0) { for (const item of webVitalData) { const { pathname, route, timestamp } = item; if (checkDate(timestamp).isInLast24Hours()) { const index2 = last24HoursData.findIndex((entry) => entry.pagePathname === pathname); if (index2 !== -1) { last24HoursData[index2].analyticData.pageViews += 1; } else { last24HoursData.push({ pagePathname: pathname, analyticData: { pageRoute: route, pageViews: 1 } }); } } if (checkDate(timestamp).isInLast7Days()) { const index2 = last7DaysData.findIndex((entry) => entry.pagePathname === pathname); if (index2 !== -1) { last7DaysData[index2].analyticData.pageViews += 1; } else { last7DaysData.push({ pagePathname: pathname, analyticData: { pageRoute: route, pageViews: 1 } }); } } if (checkDate(timestamp).isInLast30Days()) { const index2 = last30DaysData.findIndex((entry) => entry.pagePathname === pathname); if (index2 !== -1) { last30DaysData[index2].analyticData.pageViews += 1; } else { last30DaysData.push({ pagePathname: pathname, analyticData: { pageRoute: route, pageViews: 1 } }); } } const index = perRouteData.findIndex((entry) => entry.pagePathname === pathname); if (index !== -1) { perRouteData[index].analyticData.pageViews += 1; } else { perRouteData.push({ pagePathname: pathname, analyticData: { pageRoute: route, pageViews: 1 } }); } } } return { last24HoursData, last7DaysData, last30DaysData, perRouteData }; }; export { buildPageRouteDataObject };