/** * External dependencies */ import type { FinishedExperimentSummary, Maybe, Opportunity, OptimizationScore, PendingExperimentSummary, RunningExperimentSummary, } from '@nab/types'; /** * Internal dependencies */ import type { State } from '../types'; import { INIT_STATE } from '../config'; export function hasEverCreatedExperiments( state: State ): boolean { return state.recommendationEngine.experiments.exist; } export function getRecommendationEngineState( state: State ): State[ 'recommendationEngine' ] { return state.recommendationEngine; } export function isRecommendationEngineDataLoaded( state: State ): boolean { const currentScore = state.recommendationEngine.score; return currentScore !== INIT_STATE.recommendationEngine.score; } export function getOptimizationScore( state: State ): OptimizationScore { return state.recommendationEngine.score; } export function getOpportunities( state: State ): ReadonlyArray< Opportunity > { return state.recommendationEngine.opportunities; } export function getOpportunityBeingInstantiated( state: State ): Maybe< Opportunity > { return state.recommendationEngine.instantiatingOpportunity; } export function getRecentlyFinishedExperimentCount( state: State ): number { return state.recommendationEngine.experiments.recentCount; } export function getRecentlyFinishedExperimentSummaries( state: State ): ReadonlyArray< FinishedExperimentSummary > { return state.recommendationEngine.experiments.recentSummaries; } export function getRunningExperimentCount( state: State ): number { return state.recommendationEngine.experiments.runningCount; } export function getRunningExperimentSummaries( state: State ): ReadonlyArray< RunningExperimentSummary > { return state.recommendationEngine.experiments.runningSummaries; } export function getPendingExperimentSummaries( state: State ): ReadonlyArray< PendingExperimentSummary > { return state.recommendationEngine.experiments.pendingSummaries; } export function getSuggestionGenerationState( state: State ): State[ 'recommendationEngine' ][ 'suggestionGenerationState' ] { return state.recommendationEngine.suggestionGenerationState; }