hapi-features
v1.0.2
Published
Simple feature management for hapi.js
Readme
hapi-features
Simple feature flags management for hapi.js
Installation
$ npm install hapi-featuresUsage
To use this plugin just load it into your hapi.js server.
Pass it your feature flags as the options property. It will add the plugins.features property to every request object.
server.register({
register: index,
options: {"feature_a":true, "feature_b":false}
}, function(err) {});To update features while the server is running call the updateFeatures(features) methods
server.methods.updateFeatures({"new_conf": true});Configuration
Simple true/false
Input:
{
"feature_a": true,
"feature_b": false
}Output:
{
"feature_a": true,
"feature_b": false
}Simple dependencies
Input:
{
"feature_a": true,
"feature_b": false,
"true_dep_a": {
"active": true,
"required": [
"feature_a"
]
},
"false_dep_a": {
"active": false,
"required": [
"feature_a"
]
},
"true_dep_b": {
"active": true,
"required": [
"feature_b"
]
},
"false_dep_b": {
"active": false,
"required": [
"feature_b"
]
},
"true_dep_ab": {
"active": true,
"required": [
"feature_a",
"feature_b"
]
},
"false_dep_ab": {
"active": false,
"required": [
"feature_a",
"feature_b"
]
}
}Output:
{
"feature_a": true,
"feature_b": false,
"true_dep_a": true,
"false_dep_a": false,
"true_dep_b": false,
"false_dep_b": false,
"true_dep_ab": false,
"false_dep_ab": false
}Nested dependencies
Input:
{
"feature_a": true,
"feature_b": false,
"true_dep_a": {
"active": true,
"required": [
"feature_a"
]
},
"true_dep_b": {
"active": true,
"required": [
"feature_b"
]
},
"a_dep_a": {
"active": true,
"required": [
"feature_a",
"true_dep_a"
]
},
"a_dep_b": {
"active": true,
"required": [
"feature_a",
"true_dep_b"
]
}
}Output:
{
"feature_a": true,
"feature_b": false,
"true_dep_a": true,
"true_dep_b": false,
"a_dep_a": true,
"a_dep_b": false
}