Skip to content

Commit a7552eb

Browse files
committed
Added session management components
1 parent b0ad802 commit a7552eb

15 files changed

+198
-8
lines changed

dist/exceptionless.d.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@ export interface IEventQueue {
2828
export interface IEnvironmentInfoCollector {
2929
getEnvironmentInfo(context: EventPluginContext): IEnvironmentInfo;
3030
}
31+
export interface ISessionManager {
32+
getSessionId(identity: string): string;
33+
startSession(identity: string): string;
34+
endSession(sessionId: string): void;
35+
}
3136
export interface IErrorParser {
3237
parse(context: EventPluginContext, exception: Error): IError;
3338
}
@@ -55,6 +60,7 @@ export interface IConfigurationSettings {
5560
apiKey?: string;
5661
serverUrl?: string;
5762
environmentInfoCollector?: IEnvironmentInfoCollector;
63+
sessionManager?: ISessionManager;
5864
errorParser?: IErrorParser;
5965
lastReferenceIdManager?: ILastReferenceIdManager;
6066
log?: ILog;
@@ -137,6 +143,12 @@ export declare class DefaultEventQueue implements IEventQueue {
137143
private processSubmissionResponse(response, events);
138144
private removeEvents(events);
139145
}
146+
export declare class DefaultSessionManager implements ISessionManager {
147+
private sessionMap;
148+
getSessionId(identity: string): string;
149+
startSession(identity: string): string;
150+
endSession(sessionId: string): void;
151+
}
140152
export declare class InMemoryStorage<T> implements IStorage<T> {
141153
private _items;
142154
private _maxItems;
@@ -178,6 +190,7 @@ export declare class Configuration implements IConfigurationSettings {
178190
log: ILog;
179191
moduleCollector: IModuleCollector;
180192
requestInfoCollector: IRequestInfoCollector;
193+
sessionManager: ISessionManager;
181194
submissionBatchSize: number;
182195
submissionAdapter: ISubmissionAdapter;
183196
submissionClient: ISubmissionClient;

dist/exceptionless.js

Lines changed: 29 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/exceptionless.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/exceptionless.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/exceptionless.min.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/exceptionless.node.js

Lines changed: 29 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/exceptionless.node.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/configuration/Configuration.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ import { IEnvironmentInfoCollector } from '../services/IEnvironmentInfoCollector
1616
import { IErrorParser } from '../services/IErrorParser';
1717
import { IModuleCollector } from '../services/IModuleCollector';
1818
import { IRequestInfoCollector } from '../services/IRequestInfoCollector';
19+
import { ISessionManager } from '../services/ISessionManager';
20+
import { DefaultSessionManager } from '../services/DefaultSessionManager';
1921
import { IStorage } from '../storage/IStorage';
2022
import { InMemoryStorage } from '../storage/InMemoryStorage';
2123
import { ISubmissionAdapter } from '../submission/ISubmissionAdapter';
@@ -57,10 +59,11 @@ export class Configuration implements IConfigurationSettings {
5759

5860
public environmentInfoCollector: IEnvironmentInfoCollector;
5961
public errorParser: IErrorParser;
60-
public lastReferenceIdManager: ILastReferenceIdManager = new DefaultLastReferenceIdManager();
62+
public lastReferenceIdManager: ILastReferenceIdManager;
6163
public log: ILog;
6264
public moduleCollector: IModuleCollector;
6365
public requestInfoCollector: IRequestInfoCollector;
66+
public sessionManager: ISessionManager;
6467

6568
/**
6669
* Maximum number of events that should be sent to the server together in a batch. (Defaults to 50)
@@ -98,6 +101,7 @@ export class Configuration implements IConfigurationSettings {
98101
this.serverUrl = configSettings.serverUrl;
99102

100103
this.environmentInfoCollector = inject(configSettings.environmentInfoCollector);
104+
this.sessionManager = inject(configSettings.sessionManager) || new DefaultSessionManager();
101105
this.errorParser = inject(configSettings.errorParser);
102106
this.lastReferenceIdManager = inject(configSettings.lastReferenceIdManager) || new DefaultLastReferenceIdManager();
103107
this.moduleCollector = inject(configSettings.moduleCollector);

src/configuration/IConfigurationSettings.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { ILastReferenceIdManager } from '../lastReferenceIdManager/ILastReferenc
22
import { ILog } from '../logging/ILog';
33
import { IEventQueue } from '../queue/IEventQueue';
44
import { IEnvironmentInfoCollector } from '../services/IEnvironmentInfoCollector';
5+
import { ISessionManager } from '../services/ISessionManager';
56
import { IErrorParser } from '../services/IErrorParser';
67
import { IModuleCollector } from '../services/IModuleCollector';
78
import { IRequestInfoCollector } from '../services/IRequestInfoCollector';
@@ -13,6 +14,7 @@ export interface IConfigurationSettings {
1314
apiKey?: string;
1415
serverUrl?: string;
1516
environmentInfoCollector?: IEnvironmentInfoCollector;
17+
sessionManager?: ISessionManager;
1618
errorParser?: IErrorParser;
1719
lastReferenceIdManager?: ILastReferenceIdManager;
1820
log?: ILog;

src/models/ISessionInfo.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
export interface ISessionInfo {
2+
version?: string;
3+
user_id?: string;
4+
ip_address?: string;
5+
machine_id?: string;
6+
install_id?: string;
7+
}

0 commit comments

Comments
 (0)