Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@guardian/ab-core

Package Overview
Dependencies
Maintainers
36
Versions
32
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@guardian/ab-core - npm Package Compare versions

Comparing version 1.1.0-next.0 to 1.1.0

3

dist/index.d.ts
import { AB } from './ab';
import { ABTest as _ABTest, ABTestAPI as _ABTestAPI, AbTestConfig as _AbTestConfig, Runnable as _Runnable } from './types';
import { ABTest as _ABTest, ABTestAPI as _ABTestAPI, AbTestConfig as _AbTestConfig, Runnable as _Runnable, Variant as _Variant } from './types';
export { AB };

@@ -8,1 +8,2 @@ export declare type ABTest = _ABTest;

export declare type Runnable = _Runnable<_ABTest>;
export declare type Variant = _Variant;
{
"version": "1.1.0-next.0",
"version": "1.1.0",
"name": "@guardian/ab-core",

@@ -77,3 +77,3 @@ "author": "The Guardian",

},
"gitHead": "aa079e0b4252f5ab85c04f8f6ce395212891933f"
"gitHead": "7579ddbbecaf07345780bf1769f0ccb5697114ae"
}

@@ -1,49 +0,5 @@

# ab-rendering
# AB Core
Client-side ab testing framework (broken out from Frontend)
A client-side library for ab-testing
## API
### Initialise AB Tests
```ts
import { AB } from '@guardian/ab-rendering';
// See config object values below
const coreConfig = {};
const ophanConfig = {};
const abTests = new AB(config);
// Provides access to:
// test being a single AB tests
// [tests] being an array of ab tests
abTests.runnableTest(test);
abTests.firstRunnableTest([tests]);
abTests.isUserInVariant(test, variantId);
// [tests] being an array of *runnable* ab tests
abTest.registerCompleteEvents([tests]);
abTest.registerImpressionEvents([tests]);
abTest.trackABTests([tests]);
```
#### coreConfig
| Config | Type | Example | Note |
| ------------------- | ---------------------------------------------------- | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| mvtMaxValue | number | `10000` | MVT % is calculated from 0 to mvtMaxValue |
| mvtId | number | getCookie('mvtCookie') | The user's MVT ID to calculate what tests and variants they fall into |
| pageIsSensitive | boolean | guardian.config.page.isSensitive | Sensitive pages must have explicit settings in AB tests |
| abTestSwitches | Record<string, boolean> | {'TestOne': true} | An object containing all of the boolean values of abTestSwitches, in Frontend from page.config.switches.abTests |
| forcedTestVariant | Optional: { testId: ABTest['id']; variant: Variant } | | In Frontend this might be set by the URL override, but otherwise can be used to force a user into a test and variant at init time |
| forcedTestException | Optional: ABTest['id'] | | Can be used to force a user out of a test (in Frontend, again with url override) |
| arrayOfTestObjects | ABTest[] | | Pass all tests definitions into the config |
| ServerSideTets | ServerSideTests | | ServerSideTets are accessed via window config in Frontend |
| errorReporter | ErrorReporterFunc | | Pass an error reporter, probably Sentry |
| ophanRecord | OphanRecordFunction | | Probably Ophan's 'record' function |
## TODO
- Generate flow types from Typescript definition https://github.com/joarwilk/flowgen
- Move time-utils to a packaged lib folder
See the [main docs](https://github.com/guardian/ab-testing).
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