@hypertune/openfeature-server-provider
Version:
OpenFeature provider for Hypertune.
68 lines (46 loc) • 2.37 kB
Markdown
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).
[ ](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.
```sh
npm install @openfeature/server-sdk
npm install @hypertune/openfeature-server-provider
```
```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");
}
```
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.
To publish an event you can evaluate an event trigger flag using the `getBooleanValue` method.
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.
This package contains a provider