feat(tracker-axios): 3.4.3: check response for being actual AxiosResponse

This commit is contained in:
ShiKhu 2022-02-02 21:32:02 +01:00
parent 4669060120
commit 1ca1774225
2 changed files with 8 additions and 4 deletions

View file

@ -1,7 +1,7 @@
{
"name": "@openreplay/tracker-axios",
"description": "Tracker plugin for axios requests recording",
"version": "3.4.2",
"version": "3.4.3",
"keywords": [
"axios",
"logging",

View file

@ -12,6 +12,7 @@ export interface Options {
ignoreHeaders: Array<string> | boolean;
}
// TODO: test webpack 5 for axios imports
function isAxiosResponse(r: any): r is AxiosResponse {
return typeof r === "object" &&
@ -40,6 +41,8 @@ export default function(opts: Partial<Options> = {}) {
: () => ihOpt
const sendFetchMessage = (res: AxiosResponse) => {
// ?? TODO: why config is undeined sometimes?
if (!isAxiosResponse(res)) { return }
// @ts-ignore
const startTime: number = res.config.__openreplayStartTs;
const duration = performance.now() - startTime;
@ -107,9 +110,10 @@ export default function(opts: Partial<Options> = {}) {
);
}
// TODO: why app.safe doesn't work here?
options.instance.interceptors.request.use(function (config) {
if (options.sessionTokenHeader) {
if (typeof config !== "object") { return config } // ??
if (options.sessionTokenHeader) {
const sessionToken = app.getSessionToken();
if (sessionToken) {
if (config.headers === undefined) {
@ -152,7 +156,7 @@ export default function(opts: Partial<Options> = {}) {
app.send(getExceptionMessage(error, []));
}
// TODO: common case (selector)
// TODO: common case (selector option) for modified responses
if (isAxiosResponse(error)) {
sendFetchMessage(error)
}