@teamsight/flight
Version:
Lambda life cycles
20 lines (19 loc) • 863 B
TypeScript
export interface IMetric {
rank?: number;
total: number;
chartData?: number[][];
}
export interface IReportCreatorBase<TReport, TUser> {
full(data: TReport): Promise<TReport>;
slim(data: TReport): Promise<TReport>;
user(data: TReport, userId: string): Promise<TUser>;
create(orgId: string, start: Date, end: Date): Promise<TReport>;
}
export declare abstract class ReportCreatorBase<TReport, TUser> implements IReportCreatorBase<TReport, TUser> {
abstract full(data: TReport): Promise<TReport>;
abstract slim(data: TReport): Promise<TReport>;
abstract user(data: TReport, userId: string): Promise<TUser>;
abstract create(orgId: string, start: Date, end: Date): Promise<TReport>;
protected rankStats(items: TUser[], fn: (userReport: TUser) => IMetric): void;
protected abstract calcImpact(item: any): IMetric;
}