@splitsoftware/splitio-commons
Version:
Split JavaScript SDK common components
16 lines (15 loc) • 835 B
JavaScript
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));
}