/nuxt-unleash

Nuxt.js module to use Unleash toggle feature services

Primary LanguageTypeScriptMIT LicenseMIT

nuxt-unleash

npm version npm downloads Github Actions CI Codecov License

Nuxt.js module to use Unleash toggle feature services

📖 Release Notes

Features

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.

Setup

  1. Add nuxt-unleash dependency to your project
yarn add nuxt-unleash
  1. Add nuxt-unleash to the modules section of nuxt.config.js
export default {
  modules: [
    // Simple usage
    'nuxt-unleash',

    // With options
    ['nuxt-unleash', { /* module options */ }]
  ]
}

⚠️ 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.

Using top level options

export default {
  buildModules: [
    'nuxt-unleash'
  ],
  unleash: {
    /* module options */
  }
}

Options

url

  • Type: String
  • Required: true

Unleash API URL

instanceId

  • Type: String
  • Required: true

Unleash API Instance ID

environment

  • Type: String
  • Required: false

Name of the environment your Unleash application runs in. 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'

Usage

Client Side

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>

Sever Side

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')
  }
}

Development

  1. Clone this repository
  2. Install dependencies using yarn install or npm install
  3. Start development server using npm run dev

License

MIT License

Copyright (c) Conejerock