/
evaluation.ts
118 lines (103 loc) · 5.25 KB
/
evaluation.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
import { EvaluationDetails, BaseHook, HookHints, JsonValue } from '@openfeature/core';
export interface FlagEvaluationOptions {
hooks?: BaseHook[];
hookHints?: HookHints;
}
export interface Features {
/**
* Performs a flag evaluation that returns a boolean.
* @param {string} flagKey The flag key uniquely identifies a particular flag
* @param {boolean} defaultValue The value returned if an error occurs
* @param {FlagEvaluationOptions} options Additional flag evaluation options
* @returns {boolean} Flag evaluation response
*/
getBooleanValue(flagKey: string, defaultValue: boolean, options?: FlagEvaluationOptions): boolean;
/**
* Performs a flag evaluation that a returns an evaluation details object.
* @param {string} flagKey The flag key uniquely identifies a particular flag
* @param {boolean} defaultValue The value returned if an error occurs
* @param {FlagEvaluationOptions} options Additional flag evaluation options
* @returns {EvaluationDetails<boolean>} Flag evaluation details response
*/
getBooleanDetails(
flagKey: string,
defaultValue: boolean,
options?: FlagEvaluationOptions,
): EvaluationDetails<boolean>;
/**
* Performs a flag evaluation that returns a string.
* @param {string} flagKey The flag key uniquely identifies a particular flag
* @template {string} T A optional generic argument constraining the string
* @param {T} defaultValue The value returned if an error occurs
* @param {FlagEvaluationOptions} options Additional flag evaluation options
* @returns {T} Flag evaluation response
*/
getStringValue(flagKey: string, defaultValue: string, options?: FlagEvaluationOptions): string;
getStringValue<T extends string = string>(flagKey: string, defaultValue: T, options?: FlagEvaluationOptions): T;
/**
* Performs a flag evaluation that a returns an evaluation details object.
* @param {string} flagKey The flag key uniquely identifies a particular flag
* @template {string} T A optional generic argument constraining the string
* @param {T} defaultValue The value returned if an error occurs
* @param {FlagEvaluationOptions} options Additional flag evaluation options
* @returns {EvaluationDetails<T>} Flag evaluation details response
*/
getStringDetails(flagKey: string, defaultValue: string, options?: FlagEvaluationOptions): EvaluationDetails<string>;
getStringDetails<T extends string = string>(
flagKey: string,
defaultValue: T,
options?: FlagEvaluationOptions,
): EvaluationDetails<T>;
/**
* Performs a flag evaluation that returns a number.
* @param {string} flagKey The flag key uniquely identifies a particular flag
* @template {number} T A optional generic argument constraining the number
* @param {T} defaultValue The value returned if an error occurs
* @param {FlagEvaluationOptions} options Additional flag evaluation options
* @returns {T} Flag evaluation response
*/
getNumberValue(flagKey: string, defaultValue: number, options?: FlagEvaluationOptions): number;
getNumberValue<T extends number = number>(flagKey: string, defaultValue: T, options?: FlagEvaluationOptions): T;
/**
* Performs a flag evaluation that a returns an evaluation details object.
* @param {string} flagKey The flag key uniquely identifies a particular flag
* @template {number} T A optional generic argument constraining the number
* @param {T} defaultValue The value returned if an error occurs
* @param {FlagEvaluationOptions} options Additional flag evaluation options
* @returns {Promise<EvaluationDetails<T>>} Flag evaluation details response
*/
getNumberDetails(flagKey: string, defaultValue: number, options?: FlagEvaluationOptions): EvaluationDetails<number>;
getNumberDetails<T extends number = number>(
flagKey: string,
defaultValue: T,
options?: FlagEvaluationOptions,
): EvaluationDetails<T>;
/**
* Performs a flag evaluation that returns an object.
* @param {string} flagKey The flag key uniquely identifies a particular flag
* @template {JsonValue} T A optional generic argument describing the structure
* @param {T} defaultValue The value returned if an error occurs
* @param {FlagEvaluationOptions} options Additional flag evaluation options
* @returns {Promise<T>} Flag evaluation response
*/
getObjectValue(flagKey: string, defaultValue: JsonValue, options?: FlagEvaluationOptions): JsonValue;
getObjectValue<T extends JsonValue = JsonValue>(flagKey: string, defaultValue: T, options?: FlagEvaluationOptions): T;
/**
* Performs a flag evaluation that a returns an evaluation details object.
* @param {string} flagKey The flag key uniquely identifies a particular flag
* @template {JsonValue} T A optional generic argument describing the structure
* @param {T} defaultValue The value returned if an error occurs
* @param {FlagEvaluationOptions} options Additional flag evaluation options
* @returns {Promise<EvaluationDetails<T>>} Flag evaluation details response
*/
getObjectDetails(
flagKey: string,
defaultValue: JsonValue,
options?: FlagEvaluationOptions,
): EvaluationDetails<JsonValue>;
getObjectDetails<T extends JsonValue = JsonValue>(
flagKey: string,
defaultValue: T,
options?: FlagEvaluationOptions,
): EvaluationDetails<T>;
}