toggle-provider
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

@dataverse/toggle-provider

This package provides a common interface for feature toggle provider functionality as well as default feature toggle provider implementation leveraging Unleash server client.

Config

Name Description
url URL to Unleash server (not proxy but the actual instance)
appName app name for browser and metric reasons
instanceId identity the instance
apiToken token to authorize API requests (taken from Unleash)
logger A config for the logger
refreshInterval How often does unleash client refreshes the toggles status
disableMetrics Should the client register with the server and send usage metrics
environment Which environment in Unleash to connect to

For logger configuration properties see the logger documentation

Usage

import { UnleashToggleProvider } from '@dataverse/toggle-provider';

const config = {
  url: 'https://URL to your unleash instance/api',
  appName: 'my application',
  instanceId: 'my application instance id',
  apiToken: '*.development.tokenfromunleash',
  logger: { ...loggerConfig },
  refreshInterval: 15000,
  disableMetrics: false,
  environment: 'development',
};

const provider = new UnleashToggleProvider(config);

// Init the instance (optional bootstrap can be provided to load feature config before first api call is done)
await provider.init();

const isEnabled = provider.isEnabled('feature-name-from-unleash');
// console.log(isEnabled) -> false

// Optionally make sure your openapi definition is feature toggled.
// Take a look into ./src/__tests__/fixtures for possible usage.
// Currently object and array object segments can be feature toggled
const openapiSpec = {
  info: {},
  paths: {
    '/users': {
      post: {
        'x-toggle-feature': 'feature-name-from-unleash',
      },
    },
  },
};

const featureToggleUpdatedSpec = this.provider.syncOpenApiSpec(openapiSpec);
// console.log(featureToggleUpdatedSpec) ->
// {
//   info: {},
//   paths: {
//     '/users': {
//       // The whole post object parrent to 'x-toggle-feature' is removed when the feature toggle is disabled
//     },
//   },
// }

Readme

Keywords

Package Sidebar

Install

npm i toggle-provider

Weekly Downloads

1

Version

1.0.0

License

ISC

Unpacked Size

76.2 kB

Total Files

16

Last publish

Collaborators

  • anokhi0895