Skip to content

Commit 2bbd1d1

Browse files
committed
feat: reverted-types-to-main-and-bumped-version
1 parent a475236 commit 2bbd1d1

File tree

3 files changed

+18
-13
lines changed

3 files changed

+18
-13
lines changed

flagsmith-engine/evaluation/models.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import type {
1212
FeatureContext,
1313
EnvironmentContext,
1414
IdentityContext,
15-
SegmentContext
15+
Segments
1616
} from './evaluationContext/evaluationContext.types.js';
1717

1818
export interface CustomFeatureMetadata extends FeatureMetadata {
@@ -31,8 +31,8 @@ export type FeaturesWithMetadata<T extends FeatureMetadata = FeatureMetadata> =
3131

3232
export interface GenericEvaluationContext<T extends FeatureMetadata = FeatureMetadata> {
3333
environment: EnvironmentContext;
34-
identity?: IdentityContext;
35-
segments?: SegmentContext;
34+
identity?: IdentityContext | null;
35+
segments?: Segments;
3636
features?: FeaturesWithMetadata<T>;
3737
[k: string]: unknown;
3838
}
@@ -53,8 +53,8 @@ export type EvaluationResult<T extends FeatureMetadata = FeatureMetadata> = {
5353
segments: EvaluationResultSegments;
5454
};
5555

56-
export type EvaluationResultWithMetadata = EvaluationResult<FeatureMetadata>;
57-
export type EvaluationContextWithMetadata = GenericEvaluationContext<FeatureMetadata>;
56+
export type EvaluationResultWithMetadata = EvaluationResult<CustomFeatureMetadata>;
57+
export type EvaluationContextWithMetadata = GenericEvaluationContext<CustomFeatureMetadata>;
5858

5959
export enum SegmentSource {
6060
API = 'api',

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "flagsmith-nodejs",
3-
"version": "6.1.0",
3+
"version": "7.0.0",
44
"description": "Flagsmith lets you manage features flags and remote config across web, mobile and server side applications. Deliver true Continuous Integration. Get builds out faster. Control who has access to new features.",
55
"main": "./build/cjs/index.js",
66
"type": "module",
@@ -58,8 +58,8 @@
5858
"deploy": "npm i && npm run build && npm publish",
5959
"deploy:beta": "npm i && npm run build && npm publish --tag beta",
6060
"prepare": "husky install",
61-
"generate-evaluation-result-types": "curl -o evaluation-result.json https://raw.githubusercontent.com/Flagsmith/flagsmith/chore%2Fschema-niceties/sdk/evaluation-result.json && npx json2ts -i evaluation-result.json -o flagsmith-engine/evaluation/evaluationResult/evaluationResult.types.ts && rm evaluation-result.json",
62-
"generate-evaluation-context-types": "curl -o evaluation-context.json https://raw.githubusercontent.com/Flagsmith/flagsmith/chore%2Fschema-niceties/sdk/evaluation-context.json && npx json2ts -i evaluation-context.json -o flagsmith-engine/evaluation/evaluationContext/evaluationContext.types.ts && rm evaluation-context.json",
61+
"generate-evaluation-result-types": "curl -o evaluation-result.json https://raw.githubusercontent.com/Flagsmith/flagsmith/main/sdk/evaluation-result.json && npx json2ts -i evaluation-result.json -o flagsmith-engine/evaluation/evaluationResult/evaluationResult.types.ts && rm evaluation-result.json",
62+
"generate-evaluation-context-types": "curl -o evaluation-context.json https://raw.githubusercontent.com/Flagsmith/flagsmith/main/sdk/evaluation-context.json && npx json2ts -i evaluation-context.json -o flagsmith-engine/evaluation/evaluationContext/evaluationContext.types.ts && rm evaluation-context.json",
6363
"generate-engine-types": "npm run generate-evaluation-result-types && npm run generate-evaluation-context-types"
6464
},
6565
"dependencies": {

sdk/models.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {
2-
EvaluationResult,
32
CustomFeatureMetadata,
4-
FlagResultWithMetadata
3+
FlagResultWithMetadata,
4+
EvaluationResultWithMetadata
55
} from '../flagsmith-engine/evaluation/models.js';
66
import { FeatureStateModel } from '../flagsmith-engine/features/models.js';
77
import { AnalyticsProcessor } from './analytics.js';
@@ -85,7 +85,7 @@ export class Flag extends BaseFlag {
8585
});
8686
}
8787

88-
static fromFlagResult(flagResult: FlagResultWithMetadata<CustomFeatureMetadata>): Flag {
88+
static fromFlagResult(flagResult: FlagResultWithMetadata<CustomFeatureMetadata>): Flag | null {
8989
return new Flag({
9090
enabled: flagResult.enabled,
9191
value: flagResult.value ?? null,
@@ -122,16 +122,21 @@ export class Flags {
122122
}
123123

124124
static fromEvaluationResult(
125-
evaluationResult: EvaluationResult,
125+
evaluationResult: EvaluationResultWithMetadata,
126126
defaultFlagHandler?: (v: string) => DefaultFlag,
127127
analyticsProcessor?: AnalyticsProcessor
128128
): Flags {
129129
const flags: { [key: string]: Flag } = {};
130130
for (const flag of Object.values(evaluationResult.flags)) {
131+
const flagsmithId = flag.metadata?.flagsmithId || Number(flag.feature_key);
132+
if (!flagsmithId) {
133+
continue;
134+
}
135+
131136
flags[flag.name] = new Flag({
132137
enabled: flag.enabled,
133138
value: flag.value ?? null,
134-
featureId: Number(flag.feature_key),
139+
featureId: flag.metadata?.flagsmithId || Number(flag.feature_key),
135140
featureName: flag.name,
136141
reason: flag.reason
137142
});

0 commit comments

Comments
 (0)