Nuxt.js module to use Unleash toggle feature services
Use $unleash
to access and handle your Unleash feature flags in client side,
or context.app.unleash
to access Unleash feature flags from server side.
nuxt-unleash
dependency to your projectyarn add nuxt-unleash
nuxt-unleash
to the modules
section of nuxt.config.js
export default {
modules: [
// Simple usage
'nuxt-unleash',
// With options
['nuxt-unleash', { /* module options */ }]
]
}
:warning: If you are using Nuxt < v2.9 you have to install the module as a dependency
(No --dev
or --save-dev
flags) and use modules
section in nuxt.config.js
instead of buildModules
.
export default {
buildModules: [
'nuxt-unleash'
],
unleash: {
/* module options */
}
}
url
String
true
Unleash API URL
instanceId
String
true
Unleash API Instance ID
environment
String
false
Name of the environment your Unleash application runs in. If is not filled in, the response will be an empty array. See the example configuration.
config
The module allows some configuration parameters.
If you want to default to the value of a feature that doesn't exist, use:
enabledDefault: true
On the other hand, to set a header as the source of the ip, you can add:
headerIP: 'CF-Connection-IP'
To access the module in side client you just have to call this.$unleash
and method you want to use.
<template>
<h1>{{ value ? 'enabled' : 'disabled' }}</h1>
</template>
<script>
export default {
mounted() {
this.value = this.$unleash.isEnabled('new-feature')
}
}
</script>
To access the module in side server you just have to call ctx.app.unleash
and method you want to use.
asyncData(ctx) {
const value = ctx.app.unleash.isEnabled('new-feature')
if(value) {
ctx.redirect('/new-feature-page')
}
}
The library provides four methods:
Returns whether a feature flag exists
this.$unleash.exists('new-feature')
If the feature flag exists, return its status value. Otherwise, return the value of module option enabledDefault
.
this.$unleash.isEnabled('new-feature')
If feature flag has the strategy userWithId
as user list (comma separated), returns whether myUsername is in the user list of userIds
.
this.$unleash.isAllowUser('new-feature', 'myUsername')
If feature flag has the strategy userWithId
as IP list (comma separated), returns whether the current request IP is in the IP list of userIds
.
this.$unleash.isAllowIP('new-feature')
Pd: It's necessary to activate vuex for this functionality
yarn install
or npm install
npm run dev
Copyright (c) Conejerock