diff --git a/packages/optimizely-sdk/lib/index.browser.tests.js b/packages/optimizely-sdk/lib/index.browser.tests.js index 3f2160f16..ca171fcf5 100644 --- a/packages/optimizely-sdk/lib/index.browser.tests.js +++ b/packages/optimizely-sdk/lib/index.browser.tests.js @@ -475,7 +475,7 @@ describe('javascript-sdk', function() { sinon.assert.calledWithExactly( eventProcessorSpy, sinon.match({ - maxQueueSize: 10, + batchSize: 10, }) ); }); @@ -500,7 +500,7 @@ describe('javascript-sdk', function() { sinon.assert.calledWithExactly( eventProcessorSpy, sinon.match({ - maxQueueSize: 10, + batchSize: 10, }) ); }); @@ -526,7 +526,7 @@ describe('javascript-sdk', function() { sinon.assert.calledWithExactly( eventProcessorSpy, sinon.match({ - maxQueueSize: 300, + batchSize: 300, }) ); }); diff --git a/packages/optimizely-sdk/lib/index.node.tests.js b/packages/optimizely-sdk/lib/index.node.tests.js index f683fa1ec..ebba652e0 100644 --- a/packages/optimizely-sdk/lib/index.node.tests.js +++ b/packages/optimizely-sdk/lib/index.node.tests.js @@ -161,7 +161,7 @@ describe('optimizelyFactory', function() { sinon.assert.calledWithExactly( eventProcessorSpy, sinon.match({ - maxQueueSize: 10, + batchSize: 10, }) ); }); @@ -176,7 +176,7 @@ describe('optimizelyFactory', function() { sinon.assert.calledWithExactly( eventProcessorSpy, sinon.match({ - maxQueueSize: 10, + batchSize: 10, }) ); }); @@ -192,7 +192,7 @@ describe('optimizelyFactory', function() { sinon.assert.calledWithExactly( eventProcessorSpy, sinon.match({ - maxQueueSize: 300, + batchSize: 300, }) ); }); diff --git a/packages/optimizely-sdk/lib/index.react_native.js b/packages/optimizely-sdk/lib/index.react_native.js index 38dccc1bc..a7b17a4f9 100644 --- a/packages/optimizely-sdk/lib/index.react_native.js +++ b/packages/optimizely-sdk/lib/index.react_native.js @@ -37,6 +37,7 @@ setLogLevel(LogLevel.INFO); var DEFAULT_EVENT_BATCH_SIZE = 10; var DEFAULT_EVENT_FLUSH_INTERVAL = 1000; // Unit is ms, default is 1s +var DEFAULT_EVENT_MAX_QUEUE_SIZE = 10000; /** * Creates an instance of the Optimizely class @@ -81,6 +82,7 @@ var createInstance = function(config) { clientEngine: enums.JAVASCRIPT_CLIENT_ENGINE, eventBatchSize: DEFAULT_EVENT_BATCH_SIZE, eventDispatcher: defaultEventDispatcher, + eventMaxQueueSize: DEFAULT_EVENT_MAX_QUEUE_SIZE, eventFlushInterval: DEFAULT_EVENT_FLUSH_INTERVAL, }, config, diff --git a/packages/optimizely-sdk/lib/index.react_native.tests.js b/packages/optimizely-sdk/lib/index.react_native.tests.js index 9b8341b9d..27d3d6d9f 100644 --- a/packages/optimizely-sdk/lib/index.react_native.tests.js +++ b/packages/optimizely-sdk/lib/index.react_native.tests.js @@ -268,7 +268,7 @@ describe('javascript-sdk/react-native', function() { sinon.assert.calledWithExactly( eventProcessorSpy, sinon.match({ - maxQueueSize: 10, + batchSize: 10, }) ); }); @@ -293,7 +293,7 @@ describe('javascript-sdk/react-native', function() { sinon.assert.calledWithExactly( eventProcessorSpy, sinon.match({ - maxQueueSize: 10, + batchSize: 10, }) ); }); @@ -319,7 +319,7 @@ describe('javascript-sdk/react-native', function() { sinon.assert.calledWithExactly( eventProcessorSpy, sinon.match({ - maxQueueSize: 300, + batchSize: 300, }) ); }); diff --git a/packages/optimizely-sdk/lib/optimizely/index.js b/packages/optimizely-sdk/lib/optimizely/index.js index 52056568e..3f2d86e5c 100644 --- a/packages/optimizely-sdk/lib/optimizely/index.js +++ b/packages/optimizely-sdk/lib/optimizely/index.js @@ -87,7 +87,7 @@ function Optimizely(config) { }.bind(this) ); - this.__readyPromise = this.projectConfigManager.onReady(); + var projectConfigManagerReadyPromise = this.projectConfigManager.onReady(); var userProfileService = null; if (config.userProfileService) { @@ -115,10 +115,17 @@ function Optimizely(config) { this.eventProcessor = new eventProcessor.LogTierV1EventProcessor({ dispatcher: this.eventDispatcher, flushInterval: config.eventFlushInterval, - maxQueueSize: config.eventBatchSize, + batchSize: config.eventBatchSize, + maxQueueSize: config.eventMaxQueueSize, notificationCenter: this.notificationCenter, }); - this.eventProcessor.start(); + + var eventProcessorStartedPromise = this.eventProcessor.start(); + + this.__readyPromise = Promise.all([projectConfigManagerReadyPromise, eventProcessorStartedPromise]).then(function(promiseResults) { + // Only return status from project config promise because event processor promise does not return any status. + return promiseResults[0]; + }) this.__readyTimeouts = {}; this.__nextReadyTimeoutId = 0; diff --git a/packages/optimizely-sdk/lib/optimizely/index.tests.js b/packages/optimizely-sdk/lib/optimizely/index.tests.js index 777d4c505..e2856f541 100644 --- a/packages/optimizely-sdk/lib/optimizely/index.tests.js +++ b/packages/optimizely-sdk/lib/optimizely/index.tests.js @@ -7682,7 +7682,7 @@ describe('lib/optimizely', function() { sinon.match({ dispatcher: eventDispatcher, flushInterval: 20000, - maxQueueSize: 100, + batchSize: 100, }) ); }); diff --git a/packages/optimizely-sdk/lib/plugins/event_dispatcher/index.browser.js b/packages/optimizely-sdk/lib/plugins/event_dispatcher/index.browser.js index 8f1438a02..8359cc912 100644 --- a/packages/optimizely-sdk/lib/plugins/event_dispatcher/index.browser.js +++ b/packages/optimizely-sdk/lib/plugins/event_dispatcher/index.browser.js @@ -34,7 +34,7 @@ export var dispatchEvent = function(eventObj, callback) { req.onreadystatechange = function() { if (req.readyState === READYSTATE_COMPLETE && callback && typeof callback === 'function') { try { - callback(params); + callback({ statusCode: req.status }); } catch (e) { // TODO: Log this somehow (consider adding a logger to the EventDispatcher interface) } diff --git a/packages/optimizely-sdk/package-lock.json b/packages/optimizely-sdk/package-lock.json index f6e27df64..e5f64e269 100644 --- a/packages/optimizely-sdk/package-lock.json +++ b/packages/optimizely-sdk/package-lock.json @@ -391,12 +391,12 @@ } }, "@optimizely/js-sdk-event-processor": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@optimizely/js-sdk-event-processor/-/js-sdk-event-processor-0.4.0.tgz", - "integrity": "sha512-5fqBG9N66O+9KWktUTH/OmMiQ4SKi42gP7qqWNKe0Ciu5PlBMTREKmo8+EixcDvDW8yQBvIPBj6GWzKz0RVAxg==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/@optimizely/js-sdk-event-processor/-/js-sdk-event-processor-0.5.1.tgz", + "integrity": "sha512-Ua9IbULqXjd899MPuI4mkMvjepn2zpwvxvi/JOt/XCHEJNIDO7HR4o0Y9DsqZpHJnwtD3ODWdVSHSzZsQz/q7g==", "requires": { "@optimizely/js-sdk-logging": "^0.1.0", - "@optimizely/js-sdk-utils": "^0.2.0" + "@optimizely/js-sdk-utils": "0.2.0" } }, "@optimizely/js-sdk-logging": { diff --git a/packages/optimizely-sdk/package.json b/packages/optimizely-sdk/package.json index a7a850311..777d0a183 100644 --- a/packages/optimizely-sdk/package.json +++ b/packages/optimizely-sdk/package.json @@ -42,7 +42,7 @@ "homepage": "https://github.com/optimizely/javascript-sdk/tree/master/packages/optimizely-sdk", "dependencies": { "@optimizely/js-sdk-datafile-manager": "^0.6.0", - "@optimizely/js-sdk-event-processor": "^0.4.0", + "@optimizely/js-sdk-event-processor": "^0.5.1", "@optimizely/js-sdk-logging": "^0.1.0", "@optimizely/js-sdk-utils": "^0.2.0", "json-schema": "^0.2.3",