@flags-sdk/openfeature
Version:
OpenFeature provider for the Flags SDK
38 lines (35 loc) • 1.37 kB
TypeScript
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 };