@lx-frontend/multi-track-shared
Version:
sls 日志生成工具库
163 lines (162 loc) • 4.91 kB
TypeScript
import type { BaseEvent, EventLevel, EventType, ClickEvent, CustomUserEvent, LifecycleEvent, CustomErrorEvent, ApiCallEvent, HttpBaseInfo, HttpResponse } from './type';
/**
* 生成唯一ID,由于不同事件触发都是异步的,用于后续上报前进行排序,保证上报顺序
* @returns
*/
export declare const generateId: () => string;
/**
* 获取当前页面路径,小程序 通过 getCurrentPages,网页通过 location 对象
* @returns
*/
export declare const getCurPage: () => string;
/**
* 生成基础信息
* @param eventType 事件类型
* @param eventLevel 事件级别
* @returns
*/
export declare const generateBaseEvent: <T extends EventType>(eventType: T, eventLevel?: EventLevel) => {
eventId: string;
eventType: T;
eventLevel: EventLevel;
stime: number;
pageUrl: string;
fullUrl: string;
};
/**
* 生成点击事件
* @param options.eventLevel 事件级别
* @param options.elementText 元素文本
* @param options.elementName 元素名称
* @param options.elementProps 元素属性
* @param options.elementDetail 元素详情
*/
export declare const generateClickEvent: (options: Omit<ClickEvent, keyof BaseEvent> & {
eventLevel: EventLevel;
}) => {
elementText: string;
elementName: string;
elementProps: string | Record<string, any> | undefined;
elementDetail: string | Record<string, any> | undefined;
eventId: string;
eventType: "click";
eventLevel: EventLevel;
stime: number;
pageUrl: string;
fullUrl: string;
};
/**
* 生成 API 信息
* @param options.eventLevel 事件级别
* @param options.apiBaseInfo 基础信息
* @param options.apiName API 名称
* @param options.apiArgs API 参数
* @param options.apiStatus API 状态
* @param options.apiResponse API 响应
*/
export declare const generateApiCallEvent: (options: Omit<ApiCallEvent, keyof BaseEvent | "duration" | "etime"> & {
eventLevel: EventLevel;
apiBaseInfo: BaseEvent;
}) => {
eventLevel: EventLevel;
eventType: "api";
etime: number;
apiName: string;
apiArgs: string;
apiStatus: "success" | "fail" | "complete" | undefined;
apiResponse: string;
duration: number;
eventId: string;
stime: number;
extra?: Record<string, any>;
pageUrl?: string;
fullUrl?: string;
};
/**
* 生成 HTTP 信息
* @param options.eventLevel 事件级别
* @param options.httpBaseInfo 基础信息
* @param options.otherOptions 其他选项
* @param options.response 响应
*/
export declare const generateHttpEvent: <T extends EventType>(options: {
eventLevel: EventLevel;
httpBaseInfo: BaseEvent<T>;
otherOptions: Partial<HttpBaseInfo>;
response: Partial<HttpResponse>;
}) => {
eventLevel: EventLevel;
eventType: "http";
method: "GET" | "POST" | "PUT" | "DELETE" | "OPTIONS" | "HEAD" | "TRACE" | "CONNECT";
requestUrl: string;
params: string;
headers: string;
body: string;
statusCode: number;
etime: number;
timeout: number;
duration: number;
eventId: string;
stime: number;
extra?: Record<string, any>;
pageUrl?: string;
fullUrl?: string;
};
/**
* 生成生命周期事件
* @param options.eventLevel 事件级别
* @param options.lifecycleStage 生命周期阶段
* @param options.lifecycleOption 生命周期选项
*/
export declare const generateLifecycleEvent: (options: Omit<LifecycleEvent, keyof BaseEvent> & {
eventLevel: EventLevel;
}) => {
lifecycleStage: import("./type").LifecycleStage;
lifecycleOption: string | Record<string, any> | undefined;
eventId: string;
eventType: "lifecycle";
eventLevel: EventLevel;
stime: number;
pageUrl: string;
fullUrl: string;
};
/**
* 生成自定义事件
* @param options.eventLevel 事件级别
* @param options.customName 自定义名称
* @param options.customData 自定义数据
*/
export declare const generateCustomUserEvent: (options: Omit<CustomUserEvent, keyof BaseEvent> & {
eventLevel: EventLevel;
}) => {
customName: string;
customData: Record<string, any> | undefined;
eventId: string;
eventType: "custom";
eventLevel: EventLevel;
stime: number;
pageUrl: string;
fullUrl: string;
};
/**
* 生成错误事件
* @param options.eventLevel 事件级别
* @param options.errType 错误类型
* @param options.errMsg 错误消息
* @param options.stackTrace 堆栈跟踪
* @param options.errExtraData 错误额外数据
*/
export declare const generateCustomErrorEvent: (options: Omit<CustomErrorEvent, keyof BaseEvent> & {
eventLevel: EventLevel;
}) => {
errType: "error" | "onUnhandledRejection";
errMsg: string;
stackTrace: string;
errExtraData: Record<string, any> | undefined;
eventId: string;
eventType: "error";
eventLevel: EventLevel;
stime: number;
pageUrl: string;
fullUrl: string;
};