@@ -7,7 +7,6 @@ import { UserInfo } from "../models/data/UserInfo.js";
77import { HeartbeatPlugin } from "../plugins/default/HeartbeatPlugin.js" ;
88import { ReferenceIdPlugin } from "../plugins/default/ReferenceIdPlugin.js" ;
99import { EventPluginContext } from "../plugins/EventPluginContext.js" ;
10- import { EventPluginManager } from "../plugins/EventPluginManager.js" ;
1110import { IEventPlugin } from "../plugins/IEventPlugin.js" ;
1211import { DefaultEventQueue } from "../queue/DefaultEventQueue.js" ;
1312import { IEventQueue } from "../queue/IEventQueue.js" ;
@@ -19,7 +18,6 @@ import { InMemoryStorageProvider } from "../storage/InMemoryStorageProvider.js";
1918import { IStorageProvider } from "../storage/IStorageProvider.js" ;
2019import { ISubmissionClient } from "../submission/ISubmissionClient.js" ;
2120import { IConfigurationSettings } from "./IConfigurationSettings.js" ;
22- import { SettingsManager } from "./SettingsManager.js" ;
2321import { guid , merge } from "../Utils.js" ;
2422import { KnownEventDataKeys } from "../models/Event.js" ;
2523
@@ -58,14 +56,14 @@ export class Configuration {
5856 public environmentInfoCollector : IEnvironmentInfoCollector ;
5957 public errorParser : IErrorParser ;
6058 public lastReferenceIdManager : ILastReferenceIdManager = new DefaultLastReferenceIdManager ( ) ;
61- public log : ILog ;
59+ public log : ILog = new NullLog ( ) ;
6260 public moduleCollector : IModuleCollector ;
6361 public requestInfoCollector : IRequestInfoCollector ;
6462
6563 /**
6664 * Maximum number of events that should be sent to the server together in a batch. (Defaults to 50)
6765 */
68- public submissionBatchSize : number ;
66+ public submissionBatchSize : number = 50 ;
6967 public submissionClient : ISubmissionClient ;
7068
7169 /**
@@ -74,9 +72,9 @@ export class Configuration {
7472 */
7573 public settings : Record < string , string > = { } ;
7674
77- public storage : IStorageProvider ;
75+ public storage : IStorageProvider = new InMemoryStorageProvider ( ) ;
7876
79- public queue : IEventQueue ;
77+ public queue : IEventQueue = new DefaultEventQueue ( this ) ;
8078
8179 /**
8280 * The API key that will be used when sending events to the server.
@@ -149,30 +147,61 @@ export class Configuration {
149147 */
150148 private _handlers : Array < ( config : Configuration ) => void > = [ ] ;
151149
152- public apply ( configSettings : IConfigurationSettings ) : void {
150+ public apply ( configSettings ? : IConfigurationSettings ) : void {
153151 function inject < T > ( functionOrValue : T | ( ( config : Configuration ) => T ) ) {
154152 return functionOrValue instanceof Function ? functionOrValue ( this ) : functionOrValue ;
155153 }
156154
157155 // TODO: Handle this being called multiple times.
158156 configSettings = merge ( Configuration . defaults , configSettings ) ;
159- this . log = inject ( configSettings . log ) || new NullLog ( ) ;
160- this . apiKey = configSettings . apiKey ;
161- this . serverUrl = configSettings . serverUrl ;
162- this . configServerUrl = configSettings . configServerUrl ;
163- this . heartbeatServerUrl = configSettings . heartbeatServerUrl ;
164- this . updateSettingsWhenIdleInterval = configSettings . updateSettingsWhenIdleInterval ;
165- this . includePrivateInformation = configSettings . includePrivateInformation ;
166-
167- this . environmentInfoCollector = inject ( configSettings . environmentInfoCollector ) ;
168- this . errorParser = inject ( configSettings . errorParser ) ;
169- this . lastReferenceIdManager = inject ( configSettings . lastReferenceIdManager ) || new DefaultLastReferenceIdManager ( ) ;
170- this . moduleCollector = inject ( configSettings . moduleCollector ) ;
171- this . requestInfoCollector = inject ( configSettings . requestInfoCollector ) ;
172- this . submissionBatchSize = inject ( configSettings . submissionBatchSize ) || 50 ;
173- this . submissionClient = inject ( configSettings . submissionClient ) ;
174- this . storage = inject ( configSettings . storage ) || new InMemoryStorageProvider ( ) ;
175- this . queue = inject ( configSettings . queue ) || new DefaultEventQueue ( this ) ;
157+ if ( configSettings . apiKey ) {
158+ this . apiKey = configSettings . apiKey ;
159+ }
160+ if ( configSettings . serverUrl ) {
161+ this . serverUrl = configSettings . serverUrl ;
162+ }
163+ if ( configSettings . configServerUrl ) {
164+ this . configServerUrl = configSettings . configServerUrl ;
165+ }
166+ if ( configSettings . heartbeatServerUrl ) {
167+ this . heartbeatServerUrl = configSettings . heartbeatServerUrl ;
168+ }
169+ if ( configSettings . updateSettingsWhenIdleInterval !== undefined ) {
170+ this . updateSettingsWhenIdleInterval = configSettings . updateSettingsWhenIdleInterval ;
171+ }
172+ if ( configSettings . includePrivateInformation !== undefined ) {
173+ this . includePrivateInformation = configSettings . includePrivateInformation ;
174+ }
175+ if ( configSettings . submissionBatchSize !== undefined ) {
176+ this . submissionBatchSize = configSettings . submissionBatchSize ;
177+ }
178+ if ( configSettings . log ) {
179+ this . log = inject ( configSettings . log ) ;
180+ }
181+ if ( configSettings . environmentInfoCollector ) {
182+ this . environmentInfoCollector = inject ( configSettings . environmentInfoCollector ) ;
183+ }
184+ if ( configSettings . errorParser ) {
185+ this . errorParser = inject ( configSettings . errorParser ) ;
186+ }
187+ if ( configSettings . lastReferenceIdManager ) {
188+ this . lastReferenceIdManager = inject ( configSettings . lastReferenceIdManager ) ;
189+ }
190+ if ( configSettings . moduleCollector ) {
191+ this . moduleCollector = inject ( configSettings . moduleCollector ) ;
192+ }
193+ if ( configSettings . requestInfoCollector ) {
194+ this . requestInfoCollector = inject ( configSettings . requestInfoCollector ) ;
195+ }
196+ if ( configSettings . submissionClient ) {
197+ this . submissionClient = inject ( configSettings . submissionClient ) ;
198+ }
199+ if ( configSettings . storage ) {
200+ this . storage = inject ( configSettings . storage ) ;
201+ }
202+ if ( configSettings . queue ) {
203+ this . queue = inject ( configSettings . queue ) ;
204+ }
176205 }
177206
178207 /**
0 commit comments