Skip to content

Commit 1117d37

Browse files
committed
sdk-core: make sessionId backwards compatible
1 parent 65e7828 commit 1117d37

File tree

5 files changed

+16
-5
lines changed

5 files changed

+16
-5
lines changed

packages/sdk-core/src/modules/database/AttachmentBacktraceDatabaseFileRecord.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export class AttachmentBacktraceDatabaseFileRecord implements AttachmentBacktrac
1010
public readonly rxid: string;
1111
public readonly timestamp: number;
1212
public readonly attachment: BacktraceAttachment<unknown>;
13-
public readonly sessionId: SessionId;
13+
public readonly sessionId: SessionId | string;
1414
public locked: boolean;
1515

1616
private constructor(record: AttachmentBacktraceDatabaseRecord) {

packages/sdk-core/src/modules/database/BacktraceDatabase.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ export class BacktraceDatabase extends Events<BacktraceDatabaseEvents> implement
396396
}
397397

398398
const sessionId = record.sessionId;
399-
if (typeof sessionId !== 'string') {
399+
if (!SessionFiles.isValidSessionId(sessionId)) {
400400
this._sessionFiles.lockPreviousSessions(record.id);
401401
return;
402402
}

packages/sdk-core/src/modules/database/ReportBacktraceDatabaseFileRecord.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export class ReportBacktraceDatabaseFileRecord implements ReportBacktraceDatabas
1010
public readonly data: BacktraceData;
1111
public readonly id: string;
1212
public readonly timestamp: number;
13-
public readonly sessionId?: SessionId;
13+
public readonly sessionId?: SessionId | string;
1414
public locked: boolean;
1515

1616
private constructor(

packages/sdk-core/src/modules/database/model/BacktraceDatabaseRecord.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export interface ReportBacktraceDatabaseRecord {
77
readonly data: BacktraceData;
88
readonly id: string;
99
readonly timestamp: number;
10-
readonly sessionId?: SessionId;
10+
readonly sessionId?: string | SessionId;
1111
attachments: BacktraceAttachment[];
1212
/**
1313
* Determines if the record is in use
@@ -21,7 +21,7 @@ export interface AttachmentBacktraceDatabaseRecord {
2121
readonly rxid: string;
2222
readonly timestamp: number;
2323
readonly attachment: BacktraceAttachment;
24-
readonly sessionId: SessionId;
24+
readonly sessionId: string | SessionId;
2525
/**
2626
* Determines if the record is in use
2727
*/

packages/sdk-core/src/modules/storage/SessionFiles.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,4 +251,15 @@ export class SessionFiles implements BacktraceModule {
251251
private sessionIdEquals(a: SessionId, b: SessionId) {
252252
return a.id === b.id && a.timestamp === b.timestamp;
253253
}
254+
255+
public static isValidSessionId(value: unknown): value is SessionId {
256+
return (
257+
typeof value === 'object' &&
258+
!!value &&
259+
'id' in value &&
260+
'timestamp' in value &&
261+
typeof value.id === 'string' &&
262+
typeof value.timestamp === 'number'
263+
);
264+
}
254265
}

0 commit comments

Comments
 (0)