feature-toggle-decorator

1.0.0 • Public • Published

Feature Toggle Decorator

Travis npm David

A decorator that will only execute the wrapped function if it is given a truthy parameter, and optionally call a fallback method if the feature is not enabled.

Usage

import { isEnabled } from "./is-enabled";

const features = {
  FEATURE_1: true,
  FEATURE_2: false,
  FEATURE_3: false
};

class Example {
  @isEnabled(features.FEATURE_1)
  public test1() {
    // will be called
  }

  @isEnabled(features.FEATURE_2)
  public test2() {
    // will not be called
  }

  @isEnabled(features.FEATURE_3, "fallbackMethod")
  public test3(...args) {
    // will not be called
  }

  public fallbackMethod() {
    // will be called instead of test3
  }

}

Note that any arguments sent to a disabled method with a fallback will be passed on to the fallback.

Limitations

  • The decorator parameters are evaluated at compile time so it is not possible to dynamically toggle features
  • Fallback methods must be specified by string name

Contributing

Issues and PRs are very welcome. To get the project set up run:

git clone git@github.com:solirius/feature-toggle-decorator
npm install --dev
npm test

If you would like to send a pull request please write your contribution in TypeScript and if possible, add a test.

License

This software is licensed under GNU GPLv3.

Package Sidebar

Install

npm i feature-toggle-decorator

Weekly Downloads

1

Version

1.0.0

License

GPL-3.0

Unpacked Size

43.3 kB

Total Files

10

Last publish

Collaborators

  • linusnorton