@buape/experiments
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

@buape/experiments

This package is an experiment manager for use in creating limited rollouts of new features.

Each experiment has a unique rollout based on a hash created using the featureKey of the experiment and the guild ID.

Installation

npm install @buape/experiments

Usage

import { ExperimentManager } from "@buape/experiments"
const data = [
    {
        name: "Feature 1",
        feature_key: "featureOne",
        rollout_percentage: 50,
    },
    {
        name: "Unreleased Feature",
        feature_key: "unreleased",
        rollout_percentage: 0,
        force_enabled: ["744282929684938844"],
    },
    {
        name: "Released Feature 2",
        feature_key: "featureTwo",
        rollout_percentage: 100,
		force_disabled: ["608098293498511360"]
    },
]
const manager = new ExperimentManager(data)

await manager.checkExperimentAccess("unreleased", "1018194170906693653") // -> false, the percentage is at 0 and that guild is not force enabled
await manager.checkExperimentAccess("unreleased", "744282929684938844") // -> true, the guild is force enabled

Planned Features

  • [ ] Add feature tags to guilds and filter experiments by tag instead of ID
  • [ ] Prisma integration (?)
  • [ ] Change rollouts on the fly instead of hardcoded

Readme

Keywords

none

Package Sidebar

Install

npm i @buape/experiments

Weekly Downloads

0

Version

1.0.2

License

MIT

Unpacked Size

9.17 kB

Total Files

7

Last publish

Collaborators

  • thewilloftheshadow