New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@wework/we-experiment-js

Package Overview
Dependencies
Maintainers
39
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@wework/we-experiment-js

Thin abstraction layer for WeWork A/B testing.

  • 1.2.0
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
3
decreased by-66.67%
Maintainers
39
Weekly downloads
 
Created
Source

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: {
    // Optional user attributes
  }
});

experiments.getExperiment('foo')
  .then(experiment => {
    // experiment is a string equal to the user's experiment variant, or null.
  })
  .catch(error => {
    // we-experiment handles SDK init issues transparently, but in the unlikely event another error arises, you should catch it here
  });

experiments.getExperiments(['foo', 'bar'])
  .then(experiments => {
    /*
      experiments === {
                        foo: '...',
                        bar: '...'
                      }
     */
  });

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' // initial attributes
  }
});

experiments.getExperiment('bar', { bar: 'bar' }) // passed attributes are now { foo: 'foo', 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: {
    // Split.io factory options here
  }
});

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

FAQs

Package last updated on 18 Mar 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc