UNPKG

@sdc-monitor/demo

Version:

<div align="center"> <a href="#" target="_blank"> <img src="https://i.loli.net/2021/07/28/EvPwd4NjVH3tBfO.jpg" alt="mito-logo" height="90"> </a> <p>A Lightweight SDK For Monitor Web</p>

50 lines (48 loc) 1.67 kB
import { ToStringTypes } from '@sdc-monitor/shared' import { toStringValidateOption, _support, transformParams } from '@sdc-monitor/utils' import { ReportDataType } from '@sdc-monitor/types' import { BaseTransport } from '@sdc-monitor/core' import { WxOptionsFieldsTypes } from './types' export class WxTransport extends BaseTransport<WxOptionsFieldsTypes> { configReportWxRequest: unknown useImgUpload = false constructor(options: Partial<WxOptionsFieldsTypes> = {}) { super() super.bindOptions(options) this.bindOptions(options) } post(data: any, url: string) { const requestFun = (): void => { let requestOptions = { method: 'POST' } as WechatMiniprogram.RequestOption if (typeof this.configReportWxRequest === 'function') { const params = this.configReportWxRequest(data) // default method requestOptions = { ...requestOptions, ...params } } requestOptions = { ...requestOptions, data: JSON.stringify(data), url } wx.request(requestOptions) } this.queue.addTask(requestFun) } sendToServer(data: any, url: string) { // 此处去修改入参 const params = transformParams(data) return this.post(params, url) } getTransportData(data: ReportDataType) { return { authInfo: this.getAuthInfo(), data, deviceInfo: _support.deviceInfo } } bindOptions(options: WxOptionsFieldsTypes = {}) { const { configReportWxRequest } = options toStringValidateOption(configReportWxRequest, 'configReportWxRequest', ToStringTypes.Function) && (this.configReportWxRequest = configReportWxRequest) } }