feature-toggle-decorator
v1.0.0
Published
Feature Toggle Decorator
Downloads
1
Readme
Feature Toggle Decorator
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 [email protected]: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.