fix(tracker): sessionHash as a start() option

This commit is contained in:
Alex Kaminskii 2022-08-26 15:53:51 +02:00
parent 231a7d62b6
commit 4590fb1875
2 changed files with 12 additions and 9 deletions

View file

@ -21,6 +21,7 @@ export interface StartOptions {
userID?: string
metadata?: Record<string, string>
forceNew?: boolean
sessionHash?: string
}
interface OnStartInfo {
@ -94,7 +95,7 @@ export default class App {
private activityState: ActivityState = ActivityState.NotActive
private readonly version = 'TRACKER_VERSION' // TODO: version compatability check inside each plugin.
private readonly worker?: Worker
constructor(projectKey: string, sessionHash: string | undefined, options: Partial<Options>) {
constructor(projectKey: string, sessionToken: string | undefined, options: Partial<Options>) {
// if (options.onStart !== undefined) {
// deprecationWarn("'onStart' option", "tracker.start().then(/* handle session info */)")
// } ?? maybe onStart is good
@ -140,8 +141,9 @@ export default class App {
}
})
if (sessionHash != null) {
this.session.applySessionHash(sessionHash)
// @depricated (use sessionHash on start instead)
if (sessionToken != null) {
this.session.applySessionHash(sessionToken)
}
try {
@ -343,6 +345,9 @@ export default class App {
)
}
this.activityState = ActivityState.Starting
if (startOpts.sessionHash) {
this.session.applySessionHash(startOpts.sessionHash)
}
const timestamp = now()
const startWorkerMsg: WorkerMessageData = {

View file

@ -37,7 +37,7 @@ export type Options = Partial<
> & {
projectID?: number // For the back compatibility only (deprecated)
projectKey: string
sessionHash?: string
sessionToken?: string
respectDoNotTrack?: boolean
autoResetOnWindowOpen?: boolean
// dev only
@ -70,10 +70,8 @@ function processOptions(obj: any): obj is Options {
obj.projectKey = obj.projectKey.toString()
}
}
if (typeof obj.sessionHash !== 'string' && obj.sessionHash != null) {
console.warn(
`OpenReplay: invalid 'sessionHash' option type. Please, check documentation on ${DOCS_HOST}${DOCS_SETUP}`,
)
if (obj.sessionToken != null) {
deprecationWarn('`sessionToken` option', '`sessionHash` start() option', '/')
}
return true
}
@ -110,7 +108,7 @@ export default class API {
!('Blob' in window) ||
!('Worker' in window)
? null
: new App(options.projectKey, options.sessionHash, options))
: new App(options.projectKey, options.sessionToken, options))
if (app !== null) {
Viewport(app)
CSSRules(app)