0.3.2 • Published 8 months ago

@openfeature/launchdarkly-client-provider v0.3.2

Weekly downloads
-
License
Apache-2.0
Repository
-
Last release
8 months ago

launchdarkly-client Provider

Experimental

An unofficial browser provider for LaunchDarkly.

Installation

$ npm install @openfeature/launchdarkly-client-provider

Sample initialization

import { LaunchDarklyClientProvider } from '@openfeature/launchdarkly-client-provider';

// initialize provider
const clientEnvKey = 'LDEnvironmentID';

/*
 * optional launch darkly options
 * @see https://launchdarkly.github.io/js-client-sdk/interfaces/LDOptions.html
 */
const ldOptions = {
  streaming: true,
};

/*
  * initialization happens inside the provider, the initial context will be { anonymous: true } by default if there is not context set in Open Feature.
  * @see https://launchdarkly.github.io/js-client-sdk/interfaces/LDContextCommon.html#anonymous
  * you can change it using setContext. 

  */
const ldOpenFeatureProvider = new LaunchDarklyClientProvider(clientEnvKey, options);

//set open feature provider and get client
OpenFeature.setProvider(ldOpenFeatureProvider);
const client = OpenFeature.getClient('my-client');

//use client
const boolValue = client.getBooleanValue('boolFlag', false);

To opt in for streaming, you should set "streaming: true" explicitly, that guarantee you set the appropriate listeners and you enable streaming in the LD SDK

Update Context

For context update always use OpenFeature.setContext(myNewContext);

Please note that context changes result in network traffic, so changes should be made sparingly in accordance to relevant user behavior.

await OpenFeature.setContext({ targetingKey: 'my-key' });
//Laundarkly uses key but this provider tranlates targetingKey to key;
//So the above is the same as doing
await OpenFeature.setContext({ key: 'my-key' });

Read more about LD contexts here

Tracking

You can send custom events to LaunchDarkly metrics for use in experiments and guarded rollouts. To learn more, read Sending custom events.

const client = await OpenFeature.getClient();
client.track('event-key-123abc', { customProperty: someValue })

Building

Run nx package providers-launchdarkly-client to build the library.

Running unit tests

Run nx test providers-launchdarkly-client to execute the unit tests via Jest.

0.3.2

8 months ago

0.3.1

11 months ago

0.3.0

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.1.2

2 years ago