@@ -13,17 +13,19 @@ import type {
1313 FeatureContext ,
1414 EnvironmentContext ,
1515 IdentityContext ,
16- Segments ,
1716 SegmentContext
1817} from './evaluationContext/evaluationContext.types.js' ;
1918
20- export interface CustomFeatureMetadata extends FeatureMetadata {
21- flagsmith_id : number ;
19+ export * from './evaluationContext/evaluationContext.types.js' ;
20+
21+ export enum SegmentSource {
22+ API = 'api' ,
23+ IDENTITY_OVERRIDE = 'identity_override'
2224}
2325
24- export interface CustomSegmentMetadata extends SegmentMetadata {
26+ // Feature types
27+ export interface CustomFeatureMetadata extends FeatureMetadata {
2528 flagsmith_id : number ;
26- source ?: SegmentSource ;
2729}
2830
2931export interface FeatureContextWithMetadata < T extends FeatureMetadata = FeatureMetadata >
@@ -36,6 +38,21 @@ export type FeaturesWithMetadata<T extends FeatureMetadata = FeatureMetadata> =
3638 [ k : string ] : FeatureContextWithMetadata < T > ;
3739} ;
3840
41+ export type FlagResultWithMetadata < T extends FeatureMetadata = FeatureMetadata > = FlagResult & {
42+ metadata : T ;
43+ } ;
44+
45+ export type EvaluationResultFlags < T extends FeatureMetadata = FeatureMetadata > = Record <
46+ string ,
47+ FlagResultWithMetadata < T >
48+ > ;
49+
50+ // Segment types
51+ export interface CustomSegmentMetadata extends SegmentMetadata {
52+ flagsmith_id : number ;
53+ source ?: SegmentSource ;
54+ }
55+
3956export interface SegmentContextWithMetadata < T extends SegmentMetadata = SegmentMetadata >
4057 extends SegmentContext {
4158 metadata : T ;
@@ -46,6 +63,14 @@ export type SegmentsWithMetadata<T extends SegmentMetadata = SegmentMetadata> =
4663 [ k : string ] : SegmentContextWithMetadata < T > ;
4764} ;
4865
66+ export interface SegmentResultWithMetadata {
67+ name : string ;
68+ metadata : CustomSegmentMetadata ;
69+ }
70+
71+ export type EvaluationResultSegments = EvaluationContextResult [ 'segments' ] ;
72+
73+ // Evaluation context types
4974export interface GenericEvaluationContext <
5075 T extends FeatureMetadata = FeatureMetadata ,
5176 S extends SegmentMetadata = SegmentMetadata
@@ -57,36 +82,15 @@ export interface GenericEvaluationContext<
5782 [ k : string ] : unknown ;
5883}
5984
60- export type FlagResultWithMetadata < T extends FeatureMetadata = FeatureMetadata > = FlagResult & {
61- metadata : T ;
62- } ;
63-
64- export type EvaluationResultFlags < T extends FeatureMetadata = FeatureMetadata > = Record <
65- string ,
66- FlagResultWithMetadata < T >
85+ export type EvaluationContextWithMetadata = GenericEvaluationContext <
86+ CustomFeatureMetadata ,
87+ CustomSegmentMetadata
6788> ;
6889
69- export type EvaluationResultSegments = EvaluationContextResult [ 'segments' ] ;
70-
90+ // Evaluation result types
7191export type EvaluationResult < T extends FeatureMetadata = FeatureMetadata > = {
7292 flags : EvaluationResultFlags < T > ;
7393 segments : EvaluationResultSegments ;
7494} ;
7595
7696export type EvaluationResultWithMetadata = EvaluationResult < CustomFeatureMetadata > ;
77- export type EvaluationContextWithMetadata = GenericEvaluationContext <
78- CustomFeatureMetadata ,
79- CustomSegmentMetadata
80- > ;
81-
82- export interface SegmentResultWithMetadata {
83- name : string ;
84- metadata : CustomSegmentMetadata ;
85- }
86-
87- export enum SegmentSource {
88- API = 'api' ,
89- IDENTITY_OVERRIDE = 'identity_override'
90- }
91-
92- export * from './evaluationContext/evaluationContext.types.js' ;
0 commit comments