UNPKG

@lx-frontend/multi-track-shared

Version:

sls 日志生成工具库

163 lines (162 loc) 4.91 kB
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; };