Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 | 1x 1x 1x 1x 1x | import { Breadcrumb } from '../core/breadcrumb'
import { BreadcrumbPushData } from './breadcrumb'
import { ReportDataType } from './transportData'
type CANCEL = null | undefined | boolean
export type HttpMethod = 'GET' | 'POST' | 'PATCH' | 'PUT' | 'DELETE' | 'OPTIONS'
export enum EMethods {
Get = 'GET',
Post = 'POST',
Put = 'PUT',
Delete = 'DELETE'
}
interface IRequestHeaderConfig {
url: HttpMethod
method: string
}
type TSetRequestHeader = (key: string, value: string) => {}
export interface IBeforeAppAjaxSendConfig {
setRequestHeader: TSetRequestHeader
}
export interface InitOptions extends SilentEventTypes, HooksTypes {
/**
* dsn服务器地址
*/
dsn?: string
/**
* 为true时,整个sdk将禁用
*/
disabled?: boolean
/**
* 每个项目有一个唯一key
*/
apikey?: string
/**
* 默认为关闭,为true是会打印一些信息:breadcrumb
*/
debug?: boolean
/**
* 默认是关闭traceId,开启时,页面的所有请求都会生成一个uuid,放入请求头中
*/
enableTraceId?: boolean
/**
* 如果开启了enableTraceId,也需要配置该配置项,includeHttpUrlTraceIdRegExp.test(xhr.url)为true时,才会在该请求头中添加traceId
* 由于考虑部分接口如果随便加上多余的请求头会造成跨域,所以这边用的是包含关系的正则
*/
includeHttpUrlTraceIdRegExp?: RegExp
/**
* traceId放入请求头中的key,默认是Trace-Id
*/
traceIdFieldName?: string
/**
* 默认为空,所有ajax都会被监听,不为空时,filterXhrUrlRegExp.test(xhr.url)为true时过滤
*/
filterXhrUrlRegExp?: RegExp
/**
* 忽视某些错误不上传
*/
// ignoreErrors?: Array<string | RegExp>
/**
* 默认20,最大100,超过100还是设置成100
*/
maxBreadcrumbs?: number
}
export interface HooksTypes {
/**
* 钩子函数,配置发送到服务端的xhr
* 可以对当前xhr实例做一些配置:xhr.setRequestHeader()、xhr.withCredentials
* 会在xhr.setRequestHeader('Content-Type', 'text/plain;charset=UTF-8')、
* xhr.withCredentials = true,后面调用该函数
* ../param xhr XMLHttpRequest的实例
*/
configReportXhr?(xhr: XMLHttpRequest): void
/**
* 钩子函数,在每次发送事件前会调用
*
* ../param event 有SDK生成的错误事件
* ../returns 如果返回 null | undefined | boolean 时,将忽略本次上传
*/
beforeDataReport?(event: ReportDataType): PromiseLike<ReportDataType | null> | ReportDataType | CANCEL
/**
* 钩子函数,在每次添加用户行为事件前都会调用
*
* ../param breadcrumb 由SDK生成的breacrumb事件栈
* ../param hint 当次的生成的breadcrumb数据
* ../returns 如果返回 null | undefined | boolean 时,将忽略本次的push
*/
beforePushBreadcrumb?(breadcrumb: Breadcrumb, hint: BreadcrumbPushData): BreadcrumbPushData | CANCEL
/**
* 在状态小于400并且不等于0的时候回调用当前hook
* ../param data 请求状态为200时返回的响应体
* ../returns 如果返回 null | undefined | boolean 时,将忽略本次的上传
*/
// afterSuccessHttp?<T>(data: T): string | CANCEL
/**
* 钩子函数,拦截用户页面的ajax请求,并在ajax请求发送前执行该hook,可以对用户发送的ajax请求做xhr.setRequestHeader
* ../param config 当前请求的
*/
beforeAppAjaxSend?(config: IRequestHeaderConfig, setRequestHeader: IBeforeAppAjaxSendConfig): void
/**
* 钩子函数:在页面拦截的ajax后,收集当次数据并传入该函数后并调用
*/
// afterAppAjaxClose?(data: ReportDataType): ReportDataType
/**
* 钩子函数,在beforeDataReport后面调用,在整合上报数据和本身SDK信息数据前调用,当前函数执行完后立即将数据错误信息上报至服务端
* trackerId表示用户唯一键(可以理解成userId),需要trackerId的意义可以区分每个错误影响的用户数量
*/
backTrackerId?(): string | number
}
export interface SilentEventTypes {
/**
* 静默监控Xhr事件
*/
silentXhr?: boolean
/**
* 静默监控fetch事件
*/
silentFetch?: boolean
/**
* 静默监控console事件
*/
silentConsole?: boolean
/**
* 静默监控Dom事件
*/
silentDom?: boolean
/**
* 静默监控history事件
*/
silentHistory?: boolean
/**
* 静默监控error事件
*/
silentError?: boolean
/**
* 静默监控unhandledrejection事件
*/
silentUnhandledrejection?: boolean
/**
* 静默监控hashchange事件
*/
silentHashchange?: boolean
/**
* 静默监控Vue.warn函数
*/
silentVue?: boolean
}
|