UNPKG

@splitsoftware/splitio-commons

Version:
16 lines (15 loc) 835 B
import { objectAssign } from '../utils/lang/objectAssign'; import { clientFactory } from './client'; import { clientInputValidationDecorator } from './clientInputValidation'; import { sdkLifecycleFactory } from './sdkLifecycle'; /** * Creates an Sdk client, i.e., a base client with status, init, flush and destroy interface */ export function sdkClientFactory(params, isSharedClient) { var sdkReadinessManager = params.sdkReadinessManager, settings = params.settings; return objectAssign( // Proto-linkage of the readiness Event Emitter Object.create(sdkReadinessManager.sdkStatus), // Client API (getTreatment* & track methods) clientInputValidationDecorator(settings, clientFactory(params), sdkReadinessManager.readinessManager, params.fallbackCalculator), sdkLifecycleFactory(params, isSharedClient)); }