@flowforge/flowforge
Version:
An open source low-code development platform
44 lines (36 loc) • 1.06 kB
JavaScript
const featureFlags = [
]
module.exports = function (app, config) {
const userProvidedFlags = config.features || {}
const publicFlags = {}
const privateFlags = {}
featureFlags.forEach(flag => {
let flagValue = flag.default
if (userProvidedFlags[flag.name] !== undefined) {
flagValue = userProvidedFlags[flag.name]
}
if (flag.isPublic) {
publicFlags[flag.name] = flagValue
} else {
privateFlags[flag.name] = flagValue
}
})
return {
register: function (name, value, isPublic) {
if (isPublic) {
publicFlags[name] = value
} else {
privateFlags[name] = value
}
},
getPublicFeatures: function () {
return { ...publicFlags }
},
getAllFeatures: function () {
return { ...publicFlags, ...privateFlags }
},
enabled: function (name) {
return publicFlags[name] || privateFlags[name]
}
}
}