@@ -33,22 +33,24 @@ export default function SessionManager(
3333
3434 this . initialize = function ( ) : void {
3535 if ( mpInstance . _Store . sessionId ) {
36- if ( hasSessionTimedOut ( mpInstance . _Store . dateLastEventSent . getTime ( ) ) ) {
36+ const { dateLastEventSent, SDKConfig } = mpInstance . _Store ;
37+ const { sessionTimeout } = SDKConfig ;
38+
39+ if ( hasSessionTimedOut ( dateLastEventSent . getTime ( ) , sessionTimeout ) ) {
3740 self . endSession ( ) ;
3841 self . startNewSession ( ) ;
3942 } else {
4043 // https://go.mparticle.com/work/SQDSDKS-6045
4144 // https://go.mparticle.com/work/SQDSDKS-6323
4245 const currentUser = mpInstance . Identity . getCurrentUser ( ) ;
43- const sdkIdentityRequest =
44- mpInstance . _Store . SDKConfig . identifyRequest ;
46+ const sdkIdentityRequest = SDKConfig . identifyRequest ;
4547
4648 if (
4749 hasIdentityRequestChanged ( currentUser , sdkIdentityRequest )
4850 ) {
4951 mpInstance . Identity . identify (
50- mpInstance . _Store . SDKConfig . identifyRequest ,
51- mpInstance . _Store . SDKConfig . identityCallback
52+ sdkIdentityRequest ,
53+ SDKConfig . identityCallback
5254 ) ;
5355 mpInstance . _Store . identifyCalled = true ;
5456 mpInstance . _Store . SDKConfig . identityCallback = null ;
@@ -160,7 +162,9 @@ export default function SessionManager(
160162 }
161163
162164 if ( cookies ?. gs ?. les ) {
163- if ( hasSessionTimedOut ( cookies . gs . les ) ) {
165+ const sessionTimeout = mpInstance . _Store . SDKConfig . sessionTimeout ;
166+
167+ if ( hasSessionTimedOut ( cookies . gs . les , sessionTimeout ) ) {
164168 performSessionEnd ( ) ;
165169 } else {
166170 self . setSessionTimer ( ) ;
@@ -210,29 +214,26 @@ export default function SessionManager(
210214 /**
211215 * Checks if the session has expired based on the last event timestamp
212216 * @param lastEventTimestamp - Unix timestamp in milliseconds of the last event
217+ * @param sessionTimeout - Session timeout in minutes
213218 * @returns true if the session has expired, false otherwise
214219 */
215- function hasSessionTimedOut ( lastEventTimestamp : number ) : boolean {
216- const sessionTimeoutInMilliseconds : number =
217- mpInstance . _Store . SDKConfig . sessionTimeout * 60000 ;
218- const timeSinceLastEvent : number =
219- new Date ( ) . getTime ( ) - lastEventTimestamp ;
220+ function hasSessionTimedOut ( lastEventTimestamp : number , sessionTimeout : number ) : boolean {
221+ const sessionTimeoutInMilliseconds : number = sessionTimeout * 60000 ;
222+ const timeSinceLastEvent : number = Date . now ( ) - lastEventTimestamp ;
220223
221224 return timeSinceLastEvent >= sessionTimeoutInMilliseconds ;
222225 }
223226
224227 /**
225228 * Performs session end operations:
226229 * - Logs a SessionEnd event
227- * - Clears session start date
228230 * - Nullifies the session ID and related data
229231 * - Resets the time-on-site timer
230232 */
231233 function performSessionEnd ( ) : void {
232234 mpInstance . _Events . logEvent ( {
233235 messageType : Types . MessageType . SessionEnd ,
234236 } ) ;
235- mpInstance . _Store . sessionStartDate = null ;
236237 mpInstance . _Store . nullifySession ( ) ;
237238 mpInstance . _timeOnSiteTimer ?. resetTimer ( ) ;
238239 }
0 commit comments