import { AxiosResponse } from "axios"; import { CnReportData } from "../index.d"; function isUndefined(val: any): boolean { return typeof val === "undefined"; } function mergeReportData( data1: CnReportData, data2: CnReportData ): CnReportData { let extend = undefined; if (data1.extend instanceof Object) { if (data2.extend instanceof Object) { extend = { ...data1.extend, ...data2.extend, }; } } else { if (data2.extend instanceof Object) { extend = data2.extend; } } const reportData: CnReportData = { ...data1, ...data2, extend, }; return reportData; } function armsTraceLog( response: AxiosResponse, armsTrace: any, cnReportData: CnReportData ): void { const { request = {}, config = {} } = response; const currentTime = new Date(); const { errorCode, errorMsg, extend, reportResponse } = cnReportData; let recordInfo = request.__recordInfo__; if (!recordInfo) { recordInfo = { startTime: "-", }; } let responseStr = "-"; if (reportResponse === true) { responseStr = JSON.stringify(response); } let extendStr = "-"; if (extend) { extendStr = JSON.stringify(extend); } armsTrace.logApi({ success: false, url: config.url, httpCode: request.status, time: recordInfo.startTime === "-" ? "-" : currentTime.getTime() - recordInfo.startTime, requestType: "XHR", method: config.method, params: JSON.stringify(config.data), header: JSON.stringify(config.headers), response: responseStr, code: errorCode, msg: errorMsg, c1: "cn-request-auto", c2: extendStr, }); } function getCookie(cookieName: string): string { const allCookies: string = window.document.cookie; let cookiePos = allCookies.indexOf(cookieName); let cookieVal = ""; if (cookiePos != -1) { cookiePos = cookiePos + cookieName.length + 1; let cookieEnd = allCookies.indexOf(";", cookiePos); if (cookieEnd == -1) { cookieEnd = allCookies.length; } cookieVal = allCookies.substring(cookiePos, cookieEnd); } return cookieVal; } export { isUndefined, mergeReportData, armsTraceLog, getCookie };