@@ -22,9 +22,16 @@ import { scheduleMicrotask } from '../utils/microtask';
2222import { Service , ServiceState , BaseService } from '../service' ;
2323import { Consumer , Fn , Transformer } from '../utils/type' ;
2424import { EventEmitter } from '../utils/event_emitter/event_emitter' ;
25- import { DATAFILE_MANAGER_STOPPED , NO_SDKKEY_OR_DATAFILE , DATAFILE_MANAGER_FAILED_TO_START } from 'error_message' ;
26- import { OptimizelyError } from '../error/optimizly_error' ;
2725
26+ import {
27+ SERVICE_FAILED_TO_START ,
28+ SERVICE_STOPPED_BEFORE_RUNNING ,
29+ } from '../service'
30+
31+ export const NO_SDKKEY_OR_DATAFILE = 'sdkKey or datafile must be provided' ;
32+ export const GOT_INVALID_DATAFILE = 'got invalid datafile' ;
33+
34+ import { sprintf } from '../utils/fns' ;
2835interface ProjectConfigManagerConfig {
2936 datafile ?: string | Record < string , unknown > ;
3037 jsonSchemaValidator ?: Transformer < unknown , boolean > ,
@@ -82,7 +89,7 @@ export class ProjectConfigManagerImpl extends BaseService implements ProjectConf
8289 this . state = ServiceState . Starting ;
8390
8491 if ( ! this . datafile && ! this . datafileManager ) {
85- this . handleInitError ( new OptimizelyError ( NO_SDKKEY_OR_DATAFILE ) ) ;
92+ this . handleInitError ( new Error ( NO_SDKKEY_OR_DATAFILE ) ) ;
8693 return ;
8794 }
8895
@@ -119,14 +126,16 @@ export class ProjectConfigManagerImpl extends BaseService implements ProjectConf
119126 }
120127
121128 private handleDatafileManagerError ( err : Error ) : void {
122- this . logger ?. error ( DATAFILE_MANAGER_FAILED_TO_START , err ) ;
129+ this . logger ?. error ( SERVICE_FAILED_TO_START , 'DatafileManager' , err . message ) ;
123130
124131 // If datafile manager onRunning() promise is rejected, and the project config manager
125132 // is still in starting state, that means a datafile was not provided in cofig or was invalid,
126133 // otherwise the state would have already been set to running synchronously.
127134 // In this case, we cannot recover.
128135 if ( this . isStarting ( ) ) {
129- this . handleInitError ( err ) ;
136+ this . handleInitError ( new Error (
137+ sprintf ( SERVICE_FAILED_TO_START , 'DatafileManager' , err . message )
138+ ) ) ;
130139 }
131140 }
132141
@@ -173,7 +182,7 @@ export class ProjectConfigManagerImpl extends BaseService implements ProjectConf
173182 const fatalError = ( this . isStarting ( ) && ! this . datafileManager ) ||
174183 ( this . isStarting ( ) && ! fromConfig ) ;
175184 if ( fatalError ) {
176- this . handleInitError ( err ) ;
185+ this . handleInitError ( new Error ( GOT_INVALID_DATAFILE ) ) ;
177186 }
178187 }
179188 }
@@ -206,7 +215,9 @@ export class ProjectConfigManagerImpl extends BaseService implements ProjectConf
206215 }
207216
208217 if ( this . isNew ( ) || this . isStarting ( ) ) {
209- this . startPromise . reject ( new OptimizelyError ( DATAFILE_MANAGER_STOPPED ) ) ;
218+ this . startPromise . reject ( new Error (
219+ sprintf ( SERVICE_STOPPED_BEFORE_RUNNING , 'ProjectConfigManager' )
220+ ) ) ;
210221 }
211222
212223 this . state = ServiceState . Stopping ;
0 commit comments