UNPKG

@lucidcms/core

Version:

The core of the Lucid CMS. It's responsible for spinning up the API and serving the CMS.

2 lines 966 B
import{getNumber as e,getObject as t}from"../../../utils/helpers/get-typed-value.mjs";import{addDays as n,getDateKey as r,parseStoredTimestamp as i}from"./date-helpers.mjs";const a=(e,t)=>{let i=new Map,a=new Date(e);for(;a.getTime()<=t.getTime();)i.set(r(a),0),a=n(a,1);return i},o=(n,r)=>{switch(r){case`requests`:return 1;case`cost`:return n.cost_total_minor??0;default:return e(t(t(n.usage)?.tokens)?.total)??0}},s=e=>{let t=new Map(e.metrics.map(t=>[t,a(e.start,e.end)])),n=t.get(e.metrics[0]??`totalTokens`),s=null;for(let a of e.rows){let c=i(a.created_at);if(Number.isNaN(c.getTime()))continue;let l=r(c);if(n?.has(l)){!s&&a.cost_currency&&(s=a.cost_currency);for(let n of e.metrics){let e=t.get(n);e&&e.set(l,(e.get(l)??0)+o(a,n))}}}return{currency:s,series:e.metrics.map(n=>({metric:n,points:Array.from((t.get(n)??a(e.start,e.end)).entries()).map(([e,t])=>({date:e,value:t}))}))}};export{s as default}; //# sourceMappingURL=build-usage-chart-series.mjs.map