logan-web
Version:
Web SDK for Logan, supports log and report in H5 and browser environment.
45 lines (44 loc) • 1.63 kB
TypeScript
import { idbIsSupported, deleteDB } from 'idb-managed';
declare const LOG_DETAIL_REPORTNAME_INDEX = "logReportName";
declare const LOG_DETAIL_CREATETIME_INDEX = "logCreateTime";
export declare const LOG_DAY_TABLE_PRIMARY_KEY = "logDay";
export declare type FormattedLogReportName = string;
declare type TimeStamp = number;
interface LogReportNameParsedOb {
logDay: string;
pageIndex: number;
}
interface LoganLogItem {
[LOG_DETAIL_REPORTNAME_INDEX]: string;
[LOG_DETAIL_CREATETIME_INDEX]: TimeStamp;
logSize: number;
logString: string;
}
export interface LoganLogDayItem {
[LOG_DAY_TABLE_PRIMARY_KEY]: string;
totalSize: number;
reportPagesInfo: {
pageSizes: number[];
};
}
export default class LoganDB {
static idbIsSupported: typeof idbIsSupported;
static deleteDB: typeof deleteDB;
private DB;
constructor(dbName?: string);
/**
* @param logDay
* @param pageIndex start from 0
*/
logReportNameFormatter(logDay: string, pageIndex: number): FormattedLogReportName;
logReportNameParser(reportName: FormattedLogReportName): LogReportNameParsedOb;
getLogDayInfo(logDay: string): Promise<LoganLogDayItem | null>;
getLogDaysInfo(fromLogDay: string, toLogDay: string): Promise<LoganLogDayItem[]>;
getLogsByReportName(reportName: FormattedLogReportName): Promise<LoganLogItem[]>;
addLog(logString: string): Promise<void>;
/**
* Delete reported pages of logDay, in case that new pages are added after last report.
*/
incrementalDelete(logDay: string, reportedPageIndexes: number[]): Promise<void>;
}
export {};