UNPKG

@splitsoftware/splitio-commons

Version:
20 lines (19 loc) 1.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sdkClientFactory = void 0; var objectAssign_1 = require("../utils/lang/objectAssign"); var client_1 = require("./client"); var clientInputValidation_1 = require("./clientInputValidation"); var sdkLifecycle_1 = require("./sdkLifecycle"); /** * Creates an Sdk client, i.e., a base client with status, init, flush and destroy interface */ function sdkClientFactory(params, isSharedClient) { var sdkReadinessManager = params.sdkReadinessManager, settings = params.settings; return (0, objectAssign_1.objectAssign)( // Proto-linkage of the readiness Event Emitter Object.create(sdkReadinessManager.sdkStatus), // Client API (getTreatment* & track methods) (0, clientInputValidation_1.clientInputValidationDecorator)(settings, (0, client_1.clientFactory)(params), sdkReadinessManager.readinessManager, params.fallbackCalculator), (0, sdkLifecycle_1.sdkLifecycleFactory)(params, isSharedClient)); } exports.sdkClientFactory = sdkClientFactory;