From 4590fb187536440a2206d30e21ff7ecd494d9862 Mon Sep 17 00:00:00 2001 From: Alex Kaminskii Date: Fri, 26 Aug 2022 15:53:51 +0200 Subject: [PATCH] fix(tracker): sessionHash as a start() option --- tracker/tracker/src/main/app/index.ts | 11 ++++++++--- tracker/tracker/src/main/index.ts | 10 ++++------ 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/tracker/tracker/src/main/app/index.ts b/tracker/tracker/src/main/app/index.ts index f0a0d7248..49ca76694 100644 --- a/tracker/tracker/src/main/app/index.ts +++ b/tracker/tracker/src/main/app/index.ts @@ -21,6 +21,7 @@ export interface StartOptions { userID?: string metadata?: Record 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) { + constructor(projectKey: string, sessionToken: string | undefined, options: Partial) { // 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 = { diff --git a/tracker/tracker/src/main/index.ts b/tracker/tracker/src/main/index.ts index d505f46ad..02fbead4d 100644 --- a/tracker/tracker/src/main/index.ts +++ b/tracker/tracker/src/main/index.ts @@ -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)