diff --git a/tracker/tracker-axios/package-lock.json b/tracker/tracker-axios/package-lock.json index 244d16daf..9894d6bc8 100644 --- a/tracker/tracker-axios/package-lock.json +++ b/tracker/tracker-axios/package-lock.json @@ -57,9 +57,9 @@ } }, "@openreplay/tracker": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@openreplay/tracker/-/tracker-3.0.3.tgz", - "integrity": "sha512-50C2cwJFENeHNjXVV90uIA5YE1bxfGbhI8e76Nfw9Pg+GVN38DcvGhr3PJ3OKjioT9V4gXBbvtE/RDGRaJJWLA==", + "version": "3.4.9", + "resolved": "https://registry.npmjs.org/@openreplay/tracker/-/tracker-3.4.9.tgz", + "integrity": "sha512-7w1ddAboWu6NN926ySMUsKG6kmlYM0BYelSRIPM1xdoddLMRKZT4XaggLYjFezNSi9UJ9WYI8qwMHFIkS9lhCQ==", "dev": true, "requires": { "error-stack-parser": "^2.0.6" @@ -782,9 +782,9 @@ } }, "typescript": { - "version": "3.9.9", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.9.tgz", - "integrity": "sha512-kdMjTiekY+z/ubJCATUPlRDl39vXYiMV9iyeMuEuXZh2we6zz80uovNN2WlAxmmdE/Z/YQe+EbOEXB5RHEED3w==", + "version": "4.6.0-dev.20211126", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.0-dev.20211126.tgz", + "integrity": "sha512-m+LKstqVv6FYW363aIbO6bm8awsLbeSUCzU6FxPtzUF/WJkFieQfYmdVwEIzigeTpw4E2GETBXnk6P6AixcQJQ==", "dev": true }, "validate-npm-package-license": { diff --git a/tracker/tracker-axios/package.json b/tracker/tracker-axios/package.json index 0d6de4ca1..06d2b41a0 100644 --- a/tracker/tracker-axios/package.json +++ b/tracker/tracker-axios/package.json @@ -1,7 +1,7 @@ { "name": "@openreplay/tracker-axios", "description": "Tracker plugin for axios requests recording", - "version": "3.4.1", + "version": "3.4.2", "keywords": [ "axios", "logging", @@ -20,14 +20,14 @@ }, "dependencies": {}, "peerDependencies": { - "@openreplay/tracker": "^3.0.0", + "@openreplay/tracker": "^3.4.8", "axios": "^0.21.2" }, "devDependencies": { - "@openreplay/tracker": "^3.0.0", + "@openreplay/tracker": "^3.4.9", "axios": "^0.21.2", "prettier": "^1.18.2", "replace-in-files-cli": "^1.0.0", - "typescript": "^3.6.4" + "typescript": "^4.6.0-dev.20211126" } } diff --git a/tracker/tracker-axios/src/index.ts b/tracker/tracker-axios/src/index.ts index 01eb79dca..f9d53e025 100644 --- a/tracker/tracker-axios/src/index.ts +++ b/tracker/tracker-axios/src/index.ts @@ -1,8 +1,8 @@ -import { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios'; +import type { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios'; import axios from 'axios'; import { App, Messages } from '@openreplay/tracker'; -import { getExceptionMessage } from '@openreplay/tracker/lib/modules/exception'; // TODO: export from tracker root -import { buildFullPath } from './url'; +import { getExceptionMessage } from '@openreplay/tracker/lib/modules/exception.js'; // TODO: export from tracker root +import { buildFullPath } from './url.js'; export interface Options { sessionTokenHeader?: string; @@ -12,6 +12,13 @@ export interface Options { ignoreHeaders: Array | boolean; } + +function isAxiosResponse(r: any): r is AxiosResponse { + return typeof r === "object" && + typeof r.config === "object" && + typeof r.status === "number" +} + export default function(opts: Partial = {}) { const options: Options = Object.assign( { @@ -145,6 +152,11 @@ export default function(opts: Partial = {}) { app.send(getExceptionMessage(error, [])); } + // TODO: common case (selector) + if (isAxiosResponse(error)) { + sendFetchMessage(error) + } + return Promise.reject(error); }); }