Skip to content

Commit 61975cf

Browse files
authored
Add types in models.ts. (#180)
1 parent b156a2e commit 61975cf

File tree

1 file changed

+9
-12
lines changed

1 file changed

+9
-12
lines changed

sdk/models.ts

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,22 @@
11
import { FeatureStateModel } from '../flagsmith-engine/features/models.js';
22
import { AnalyticsProcessor } from './analytics.js';
33

4+
type FlagValue = string | number | boolean | undefined;
5+
46
export class BaseFlag {
57
enabled: boolean;
6-
value: string | number | boolean | undefined;
8+
value: FlagValue;
79
isDefault: boolean;
810

9-
constructor(
10-
value: string | number | boolean | undefined,
11-
enabled: boolean,
12-
isDefault: boolean
13-
) {
11+
constructor(value: FlagValue, enabled: boolean, isDefault: boolean) {
1412
this.value = value;
1513
this.enabled = enabled;
1614
this.isDefault = isDefault;
1715
}
1816
}
1917

2018
export class DefaultFlag extends BaseFlag {
21-
constructor(value: string | number | boolean | undefined, enabled: boolean) {
19+
constructor(value: FlagValue, enabled: boolean) {
2220
super(value, enabled, true);
2321
}
2422
}
@@ -28,7 +26,7 @@ export class Flag extends BaseFlag {
2826
featureName: string;
2927

3028
constructor(params: {
31-
value: string | number | boolean | undefined;
29+
value: FlagValue;
3230
enabled: boolean;
3331
isDefault?: boolean;
3432
featureId: number;
@@ -82,7 +80,7 @@ export class Flags {
8280
defaultFlagHandler?: (f: string) => DefaultFlag;
8381
identityID?: string | number;
8482
}): Flags {
85-
const flags: { [key: string]: any } = {};
83+
const flags: { [key: string]: Flag } = {};
8684
for (const fs of data.featureStates) {
8785
flags[fs.feature.name] = Flag.fromFeatureStateModel(fs, data.identityID);
8886
}
@@ -98,7 +96,7 @@ export class Flags {
9896
analyticsProcessor?: AnalyticsProcessor;
9997
defaultFlagHandler?: (v: string) => DefaultFlag;
10098
}): Flags {
101-
const flags: { [key: string]: any } = {};
99+
const flags: { [key: string]: Flag } = {};
102100

103101
for (const flagData of data.apiFlags) {
104102
flags[flagData['feature']['name']] = Flag.fromAPIFlag(flagData);
@@ -124,7 +122,6 @@ export class Flags {
124122
}
125123

126124
return { enabled: false, isDefault: true, value: undefined };
127-
128125
}
129126

130127
if (this.analyticsProcessor && flag.featureId) {
@@ -134,7 +131,7 @@ export class Flags {
134131
return flag;
135132
}
136133

137-
getFeatureValue(featureName: string): any {
134+
getFeatureValue(featureName: string): FlagValue {
138135
return this.getFlag(featureName).value;
139136
}
140137

0 commit comments

Comments
 (0)