UNPKG

@hypertune/openfeature-server-provider

Version:

OpenFeature provider for Hypertune.

68 lines (46 loc) 2.37 kB
# Hypertune OpenFeature Server Provider This package contains a provider for using Hypertune with the OpenFeature [JS Server SDK](https://www.npmjs.com/package/@openfeature/server-sdk). If you want to use Hypertune with OpenFeature in the client then checkout the [Hypertune OpenFeature Web Provider](https://www.npmjs.com/package/@hypertune/openfeature-web-provider). ## Hypertune overview [Hypertune](https://www.hypertune.com/) is the most flexible platform for feature flags, A/B testing, analytics and app configuration. Built with full end-to-end type-safety, Git-style version control and local, synchronous, in-memory flag evaluation. Optimized for TypeScript, React and Next.js. # Quick start ### 1. Installation ```sh npm install @openfeature/server-sdk npm install @hypertune/openfeature-server-provider ``` ### 2. Usage ```ts import { OpenFeature } from "@openfeature/server-sdk"; import { HypertuneProvider } from "@hypertune/openfeature-server-provider"; // Register Hypertune feature flag provider await OpenFeature.setProviderAndWait( new HypertuneProvider({ token: "YOUR_HYPERTUNE_TOKEN", }) ); // Create a new client const client = OpenFeature.getClient(); // Define a context that matches schema of your Hypertune project const context = { environment: "test", user: { id: "user_123", name: "Test User", email: "test@hypertune.com", }, }; // Set global context or pass it to each flag evaluation await OpenFeature.setContext(context); // Evaluate your feature flag const exampleFlag = await client.getBooleanValue("exampleFlag", false); if (exampleFlag) { console.log("exampleFlag is enabled"); } ``` ## OpenFeature Specific Considerations ### Accessing nested flags To access nested flags you can use a dot separated path to your flag e.g. `backend.exampleFlag`. Values in a list can only be accessed by first evaluating the list flag as an object using the `getObjectValue` method. ### Publishing events To publish an event you can evaluate an event trigger flag using the `getBooleanValue` method. ### Flag-specific arguments Flag-specific arguments are not supported for individual flags with this OpenFeature provider. Trying to evaluate a flag with arguments will result in an error and the default/fallback value will be used. The only way to pass inputs to Hypertune is via the top level context.