import AscendReactNativeSdk from '../NativeAscendReactNativeSdk'; const Experiments = { getStringFlag: ( experimentKey: string, variable: string, dontCache: boolean, ignoreCache: boolean ): Promise => { return AscendReactNativeSdk.getStringFlag( experimentKey, variable, dontCache, ignoreCache ); }, getBooleanFlag: ( experimentKey: string, variable: string, dontCache: boolean, ignoreCache: boolean ): Promise => { return AscendReactNativeSdk.getBooleanFlag( experimentKey, variable, dontCache, ignoreCache ); }, getNumberFlag: ( experimentKey: string, variable: string, dontCache: boolean, ignoreCache: boolean ): Promise => { return AscendReactNativeSdk.getNumberFlag( experimentKey, variable, dontCache, ignoreCache ); }, getAllVariables: async (experimentKey: string): Promise => { try { const val = await AscendReactNativeSdk.getAllVariables(experimentKey); if (!val) { return {} as T; } const json = JSON.parse(val); return json as T; } catch (e) { return {} as T; } }, getExperimentVariants: async (): Promise => { try { const result = await AscendReactNativeSdk.getExperimentVariants(); const json = JSON.parse(result); return json as T; } catch (e) { return {} as T; } }, refreshExperiment: (): Promise => { return AscendReactNativeSdk.refreshExperiment(); }, fetchExperiments: (defaultValues: Object): Promise => { return AscendReactNativeSdk.fetchExperiments(defaultValues); }, initializeExperiments: (): Promise => { return AscendReactNativeSdk.initializeExperiments(); }, }; export default Experiments;