@splitsoftware/splitio-commons
Version:
Split JavaScript SDK common components
20 lines (19 loc) • 1.05 kB
JavaScript
;
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;