UNPKG

@flags-sdk/openfeature

Version:

OpenFeature provider for the Flags SDK

38 lines (35 loc) 1.37 kB
import { Adapter } from 'flags'; import { Client, FlagEvaluationOptions, EvaluationContext } from '@openfeature/server-sdk'; type AdapterResponse<ClientType> = { booleanValue: (options?: FlagEvaluationOptions) => Adapter<boolean, EvaluationContext>; stringValue: (options?: FlagEvaluationOptions) => Adapter<string, EvaluationContext>; numberValue: (options?: FlagEvaluationOptions) => Adapter<number, EvaluationContext>; objectValue: <ValueType>(options?: FlagEvaluationOptions) => Adapter<ValueType, EvaluationContext>; client: ClientType; }; /** * Creates a sync OpenFeature adapter. * @param init Client * @example * ``` * const openFeatureAdapter = createOpenFeatureAdapter(async () => { * await OpenFeature.setProviderAndWait( * new LaunchDarklyProvider("sdk-3eb98afb-a6ff-4d8c-a648-ddd35cad4140") * ); * return OpenFeature.getClient(); * }); * ``` */ declare function createOpenFeatureAdapter(init: Client): AdapterResponse<Client>; /** * Creates an async OpenFeature adapter. * * @param init () => Promise<Client> * @example * ``` * OpenFeature.setProvider(someProvider); * const openFeatureAdapter = createOpenFeatureAdapter(OpenFeature.getClient()); * ``` */ declare function createOpenFeatureAdapter(init: () => Promise<Client>): AdapterResponse<() => Promise<Client>>; export { createOpenFeatureAdapter };