@splitsoftware/splitio
Advanced tools
Comparing version 0.22.0 to 0.24.0
@@ -9,4 +9,4 @@ /* @flow */'use strict'; | ||
var splitSettings = require('../settings'); | ||
var schedulerFactory = require('../scheduler'); | ||
var SchedulerFactory = require('@splitsoftware/splitio-utils/lib/scheduler'); | ||
var settings = require('@splitsoftware/splitio-utils/lib/settings'); | ||
@@ -30,14 +30,9 @@ var _require = require('@splitsoftware/splitio-cache'); | ||
var coreSettings = splitSettings.get('core'); | ||
var featuresRefreshRate = splitSettings.get('featuresRefreshRate'); | ||
var segmentsRefreshRate = splitSettings.get('segmentsRefreshRate'); | ||
var metricsRefreshRate = splitSettings.get('metricsRefreshRate'); | ||
var coreSettings = settings.get('core'); | ||
var featuresRefreshRate = settings.get('featuresRefreshRate'); | ||
var segmentsRefreshRate = settings.get('segmentsRefreshRate'); | ||
var splitRefreshScheduler = schedulerFactory(); | ||
var segmentsRefreshScheduler = schedulerFactory(); | ||
var metricsPushScheduler = schedulerFactory(); | ||
var splitRefreshScheduler = SchedulerFactory(); | ||
var segmentsRefreshScheduler = SchedulerFactory(); | ||
// send stats to split servers if needed. | ||
metricsPushScheduler.forever(metrics.publish, metricsRefreshRate); | ||
// the first time the download is sequential: | ||
@@ -44,0 +39,0 @@ // 1- download feature settings |
/* @flow */'use strict'; | ||
var coreSettings = require('./settings'); | ||
var log = require('debug')('splitio'); | ||
var coreSettings = require('@splitsoftware/splitio-utils/lib/settings'); | ||
var metricsEngine = require('@splitsoftware/splitio-metrics'); | ||
var impressionsTracker = metricsEngine.impressions; | ||
var getTreatmentTracker = metricsEngine.getTreatment; | ||
var core = require('./core'); | ||
var tracker = require('@splitsoftware/splitio-metrics').sdk.tracker(); | ||
var log = require('debug')('splitio'); | ||
function splitio(settings /*: object */) /*: object */{ | ||
var engine = undefined; | ||
var engineReadyPromise = undefined; | ||
// setup settings for all the modules | ||
coreSettings.configure(settings); | ||
settings = coreSettings.configure(settings); | ||
// the engine startup is async (till we get localStorage as | ||
// secondary cache) | ||
core.start().then(function (initializedEngine) { | ||
return engine = initializedEngine; | ||
engineReadyPromise = core.start().then(function (initializedEngine) { | ||
engine = initializedEngine; | ||
}).catch(function noop() {/* only for now */}); | ||
// startup monitoring tools | ||
metricsEngine.start(settings); | ||
return { | ||
@@ -26,7 +34,15 @@ getTreatment: function getTreatment(key /*: string */, featureName /*: string */) /*: string */{ | ||
if (engine === undefined) { | ||
impressionsTracker({ | ||
feature: featureName, | ||
key: key, | ||
treatment: treatment, | ||
when: Date.now() | ||
}); | ||
return treatment; | ||
} | ||
var stopGetTreatmentTracker = getTreatmentTracker(); // start engine perf monitoring | ||
var split = engine.splits.get(featureName); | ||
var stop = tracker(); | ||
if (split) { | ||
@@ -39,5 +55,16 @@ treatment = split.getTreatment(key); | ||
} | ||
stop(); | ||
stopGetTreatmentTracker(); // finish engine perf monitoring | ||
impressionsTracker({ | ||
feature: featureName, | ||
key: key, | ||
treatment: treatment, | ||
when: Date.now() | ||
}); | ||
return treatment; | ||
}, | ||
ready: function ready() /*: Promise */{ | ||
return engineReadyPromise; | ||
} | ||
@@ -44,0 +71,0 @@ }; |
@@ -19,2 +19,6 @@ 'use strict'; | ||
var _promise = require('babel-runtime/core-js/promise'); | ||
var _promise2 = _interopRequireDefault(_promise); | ||
var _typeof2 = require('babel-runtime/helpers/typeof'); | ||
@@ -89,2 +93,4 @@ | ||
var alwaysReadyPromise = _promise2.default.resolve(undefined); | ||
return { | ||
@@ -103,2 +109,5 @@ getTreatment: function getTreatment() { | ||
return typeof treatment === 'undefined' ? 'control' : treatment; | ||
}, | ||
ready: function ready() { | ||
return alwaysReadyPromise; | ||
} | ||
@@ -105,0 +114,0 @@ }; |
{ | ||
"name": "@splitsoftware/splitio", | ||
"version": "0.22.0", | ||
"version": "0.24.0", | ||
"description": "Split SDK", | ||
@@ -18,7 +18,10 @@ "author": "Facundo Cabrera <facundo@split.io>", | ||
"watch-test": "babel test/es6 --out-dir test/lib --source-maps --watch", | ||
"test": "istanbul test tape -- test/lib/**/*.spec.js" | ||
"test": "tape test/lib/**/*.spec.js | faucet", | ||
"coverage": "istanbul test tape -- test/lib/**/*.spec.js" | ||
}, | ||
"dependencies": { | ||
"@splitsoftware/splitio-metrics": "0.22.0", | ||
"@splitsoftware/splitio-cache": "0.22.0", | ||
"@splitsoftware/splitio-cache": "0.24.0", | ||
"@splitsoftware/splitio-metrics": "0.24.0", | ||
"@splitsoftware/splitio-utils": "0.24.0", | ||
"babel-runtime": "^6.5.0", | ||
"debug": "^2.2.0" | ||
@@ -32,6 +35,4 @@ }, | ||
"babel-preset-es2015": "^6.3.13", | ||
"browserify": "^13.0.0", | ||
"eslint": "^1.10.3", | ||
"faucet": "0.0.1", | ||
"istanbul": "^0.4.2", | ||
"jscs": "^2.7.0", | ||
"tape": "^4.4.0" | ||
@@ -38,0 +39,0 @@ }, |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
8
21475
5
13
184
1
+ Addedbabel-runtime@^6.5.0
+ Addedbabel-runtime@6.26.0(transitive)
+ Addedcore-js@2.6.12(transitive)
+ Addedregenerator-runtime@0.11.1(transitive)