fix(tracker): fix for setSessionTokenHeader

This commit is contained in:
nick-delirium 2023-08-17 16:00:25 +02:00
parent 0d9c225c1d
commit 1cf1c3688a
4 changed files with 25 additions and 2 deletions

View file

@ -1,3 +1,12 @@
# 9.0.2
- fix "setSessionTokenHeader" method
# 9.0.1
- Warning about SSR mode
- Prevent crashes due to network proxy in SSR
# 9.0.0
- Option to disable string dictionary `{disableStringDict: true}` in Tracker constructor

View file

@ -1,7 +1,7 @@
{
"name": "@openreplay/tracker",
"description": "The OpenReplay tracker main package",
"version": "9.0.1",
"version": "9.0.2",
"keywords": [
"logging",
"replay"

View file

@ -81,8 +81,10 @@ export class ResponseProxyHandler<T extends Response> implements ProxyHandler<T>
// @ts-ignore
readerReceivedValue = new Uint8Array(result.value)
} else {
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
const newValue = new Uint8Array(readerReceivedValue.length + result.value!.length)
newValue.set(readerReceivedValue)
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
newValue.set(result.value!, readerReceivedValue.length)
readerReceivedValue = newValue
}
@ -125,7 +127,7 @@ export class FetchProxyHandler<T extends typeof fetch> implements ProxyHandler<T
private readonly isServiceUrl: (url: string) => boolean,
) {}
public apply(target: T, thisArg: typeof window, argsList: [RequestInfo | URL, RequestInit]) {
public apply(target: T, _: typeof window, argsList: [RequestInfo | URL, RequestInit]) {
const input = argsList[0]
const init = argsList[1]
@ -141,6 +143,15 @@ export class FetchProxyHandler<T extends typeof fetch> implements ProxyHandler<T
const item = new NetworkMessage(this.ignoredHeaders, this.setSessionTokenHeader, this.sanitize)
this.beforeFetch(item, input as RequestInfo, init)
this.setSessionTokenHeader((name, value) => {
argsList[1] = {
...argsList[1],
headers: {
...argsList[1]?.headers,
[name]: value,
},
}
})
return (<ReturnType<T>>target.apply(window, argsList))
.then(this.afterFetch(item))
.catch((e) => {

View file

@ -42,6 +42,9 @@ export class XHRProxyHandler<T extends XMLHttpRequest> implements ProxyHandler<T
case 'open':
return this.getOpen(target)
case 'send':
this.setSessionTokenHeader((name: string, value: string) => {
target.setRequestHeader(name, value)
})
return this.getSend(target)
case 'setRequestHeader':
return this.getSetRequestHeader(target)