UNPKG

@pinelab/vendure-plugin-metrics

Version:

Vendure plugin measuring and visualizing e-commerce metrics

36 lines (35 loc) 1.41 kB
import { AdvancedMetricSeries } from '../ui/generated/graphql'; import { MetricRequest } from '../entities/metric-request.entity'; import { Session } from './request-service'; interface EntitiesPerMonth<T> { monthNr: number; year: number; date: Date; entities: T[]; } export type DataPointsPerLegend = Map<string, number[]>; export declare function getMonthName(monthNr: number): string; /** * Categorize loaded entities per month */ export declare function groupEntitiesPerMonth<T, K extends keyof T>(entities: T[], sortableField: K, from: Date, to: Date): EntitiesPerMonth<T>[]; /** * Get entities from a list for given month and year */ export declare function getEntitiesForMonth<T, K extends keyof T>(entities: T[], date: Date, dateFilterField: K): T[]; /** * Map the data points per month map to the AdvancedMetricSeries array. * * E.g. `'product1', [10, 20, 30]` becomes * `[{ name: 'product1', values: [10, 20, 30] }]` * This is used to display the data in the chart. */ export declare function mapToSeries(dataPointsPerMonth: DataPointsPerLegend): AdvancedMetricSeries[]; /** * Aggregates the raw requests to sessions, grouping them by identifier and session length. * * E.g. multiple requests from id:123 within 5 minutes are combined into 1 session * */ export declare function getSessions(requests: MetricRequest[], sessionLengthInMinutes: number): Session[]; export {};