WeExperiment
A thin abstraction layer for A/B testing.
Currently built on top of Split.io's JavaScript SDK.
This package is complemented by we-experiment-react.
Installation
npm install --save @wework/we-experiment-js
Usage
import weExperiment from 'we-experiment';
const experiments = weExperiment('USER_ID', 'SPLIT_API_KEY', {
userAttributes: {
}
});
experiments.getExperiment('foo')
.then(experiment => {
})
.catch(error => {
});
experiments.getExperiments(['foo', 'bar'])
.then(experiments => {
});
Additional attributes
When getting experiments, it is possible to add additional attributes to the userAttributes
supplied at initialization,
or override existing attributes.
const experiments = weExperiment('USER_ID', 'SPLIT_API_KEY', {
userAttributes: {
foo: 'foo'
}
});
experiments.getExperiment('bar', { bar: 'bar' })
.then(experiment => {})
.catch(error => {});
Overrides
It is possible to override experiments by initializing the library like so:
weExperiment('USER_ID', 'SPLIT_API_KEY', {
experimentOverrides: {
foo: 'variant_1',
bar: 'variant_2'
}
});
Additional Split.io options
It's possible to pass additional options to the Split.io library in the following way:
weExperiment('USER_ID', {
extraOptions: {
}
});
For more information on the possible options, see: http://docs.split.io/docs/javascript-sdk-overview#section-advanced-configuration-of-the-sdk
Note that core.authorizationKey
and core.key
are already passed as apiKey
and userId
respectively.
Additionally, features
are passed in as experimentOverrides
.
Publish
npm run build
npm version [patch, minor, major]
npm publish