minimalytics
Version:
A minimal, on-premise alternative to Google Analytics
31 lines (30 loc) • 866 B
TypeScript
import * as Express from "express";
import * as Mongoose from "mongoose";
import { ILog } from "./db/LogSchema";
interface MinimalyticsOpt {
express: Express.Application;
mongoose: Mongoose.Mongoose;
username: string;
password: string;
collection: string;
deltaMs?: number;
validPaths?: Array<string | RegExp>;
debug?: boolean;
}
declare class Minimalytics {
private static readonly TAG;
private static instance;
private opt;
readonly logModel: Mongoose.Model<ILog>;
static init(opt: MinimalyticsOpt): Minimalytics;
private constructor();
private use;
private handleBasicAuthRequests;
private handleAnalyticsDashboardRequests;
private getTodayViews;
private getThisMonthViews;
private getTotalViews;
private getViewsGroupedByCountry;
private log;
}
export default Minimalytics;