11import {
22 AutoEnvAttributes ,
33 BasicLogger ,
4+ BROWSER_DATA_SYSTEM_DEFAULTS ,
45 browserFdv1Endpoints ,
56 Configuration ,
7+ dataSystemValidators ,
68 FlagManager ,
79 Hook ,
810 internal ,
11+ LDClientDataSystemOptions ,
912 LDClientImpl ,
1013 LDContext ,
1114 LDEmitter ,
@@ -19,6 +22,7 @@ import {
1922 Platform ,
2023 readFlagsFromBootstrap ,
2124 safeRegisterDebugOverridePlugins ,
25+ validateOptions ,
2226} from '@launchdarkly/js-client-sdk-common' ;
2327
2428import { getHref } from './BrowserApi' ;
@@ -78,41 +82,53 @@ class BrowserClientImpl extends LDClientImpl {
7882 const { eventUrlTransformer } = validatedBrowserOptions ;
7983 const endpoints = browserFdv1Endpoints ( clientSideId ) ;
8084
81- const dataManagerFactory = validatedBrowserOptions . useFDv2
82- ? (
83- flagManager : FlagManager ,
84- configuration : Configuration ,
85- baseHeaders : LDHeaders ,
86- emitter : LDEmitter ,
87- _diagnosticsManager ?: internal . DiagnosticsManager ,
88- ) =>
89- new BrowserFDv2DataManager (
90- platform ,
91- flagManager ,
92- clientSideId ,
93- configuration ,
94- baseHeaders ,
95- emitter ,
96- )
97- : (
98- flagManager : FlagManager ,
99- configuration : Configuration ,
100- baseHeaders : LDHeaders ,
101- emitter : LDEmitter ,
102- diagnosticsManager ?: internal . DiagnosticsManager ,
103- ) =>
104- new BrowserDataManager (
105- platform ,
106- flagManager ,
107- clientSideId ,
108- configuration ,
109- validatedBrowserOptions ,
110- endpoints . polling ,
111- endpoints . streaming ,
112- baseHeaders ,
113- emitter ,
114- diagnosticsManager ,
115- ) ;
85+ const validatedDataSystem =
86+ options . dataSystem !== undefined
87+ ? ( validateOptions (
88+ options . dataSystem ,
89+ dataSystemValidators ,
90+ BROWSER_DATA_SYSTEM_DEFAULTS as unknown as Record < string , unknown > ,
91+ logger ,
92+ 'dataSystem' ,
93+ ) as unknown as LDClientDataSystemOptions )
94+ : undefined ;
95+
96+ const dataManagerFactory =
97+ validatedDataSystem !== undefined
98+ ? (
99+ flagManager : FlagManager ,
100+ configuration : Configuration ,
101+ baseHeaders : LDHeaders ,
102+ emitter : LDEmitter ,
103+ _diagnosticsManager ?: internal . DiagnosticsManager ,
104+ ) =>
105+ new BrowserFDv2DataManager (
106+ platform ,
107+ flagManager ,
108+ clientSideId ,
109+ configuration ,
110+ baseHeaders ,
111+ emitter ,
112+ )
113+ : (
114+ flagManager : FlagManager ,
115+ configuration : Configuration ,
116+ baseHeaders : LDHeaders ,
117+ emitter : LDEmitter ,
118+ diagnosticsManager ?: internal . DiagnosticsManager ,
119+ ) =>
120+ new BrowserDataManager (
121+ platform ,
122+ flagManager ,
123+ clientSideId ,
124+ configuration ,
125+ validatedBrowserOptions ,
126+ endpoints . polling ,
127+ endpoints . streaming ,
128+ baseHeaders ,
129+ emitter ,
130+ diagnosticsManager ,
131+ ) ;
116132
117133 super ( clientSideId , autoEnvAttributes , platform , baseOptionsWithDefaults , dataManagerFactory , {
118134 // This logic is derived from https://github.com/launchdarkly/js-sdk-common/blob/main/src/PersistentFlagStore.js
0 commit comments