mutiple
Version:
A SDK for monitoring browser and miniPrograme errors
49 lines (42 loc) • 1.58 kB
text/typescript
import { SDK_NAME, SDK_VERSION } from '@/common/config'
import { BREADCRUMBCATEGORYS } from '@/common/constant'
import initOptions from '@/common/initOpitons'
import { log } from '@/core'
import { InitOptions, ReportDataType } from '@/types'
import { generateUUID, isEmpty, isWxMiniEnv } from '@/utils'
import { setupReplace } from '@/wx-mini/load'
function init(options: InitOptions = {}) {
if (!isWxMiniEnv) return
initOptions(options)
setupReplace()
}
// 如果是接口正常情况下不取响应体 因为sls中单字段最多只能16k
function beforePushBreadcrumb(breadcrumb, cruBreadcrumbData) {
if (cruBreadcrumbData.category === BREADCRUMBCATEGORYS.HTTP) {
const data = cruBreadcrumbData.data as ReportDataType
if (data.response.status >= 200 && data.response.status < 300) {
data.response.data = ''
}
}
return cruBreadcrumbData
}
const includeHttpUrlTraceIdRegExp = /apigw/
const maxBreadcrumbs = 20
const enableTraceId = true
type TCallBack = () => void
function manualInit(callback: TCallBack, qa = false) {
const isQa = wx.getAccountInfoSync().miniProgram.envVersion !== 'release'
const envInit = qa ? isQa : !isQa
if (envInit) {
callback()
}
}
const miniTrackerId = 'mito-uuid'
function backTrackerId() {
let uuid = wx.getStorageSync(miniTrackerId)
if (!isEmpty(uuid)) return uuid
uuid = generateUUID()
wx.setStorageSync(miniTrackerId, uuid)
return uuid
}
export { beforePushBreadcrumb, includeHttpUrlTraceIdRegExp, maxBreadcrumbs, enableTraceId, manualInit, init, SDK_VERSION, SDK_NAME, log, backTrackerId }