Flagsmith / Flagsmith/flagsmith-nodejs-client

Feature values always have type string when using local evaluation mode

Aperta
#146 0 commenti 2 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
TypeScript
Stelle
30
Fork
26
Merge medio
11m
PR unite (30g)
5

Descrizione

We've started seeing an issue where number values like this one are being returned as type `string` when `enableLocalEvaluation` is set to `true`.
![Screenshot 2024-03-01 at 11 38 49](https://github.com/Flagsmith/flagsmith-nodejs-client/assets/4126778/7d156b87-acee-4ace-8c5f-0bc5e265ec94)

Using this test script I've validated that the local evaluation causes the change in behaviour (thanks Matt for the help 🙌 )

This has been tested on `flagsmith-nodejs` versions `2.5.1` and `3.2.0`

```ts
import Flagsmith from 'flagsmith-nodejs';

async function main(): Promise {
const flagClient = new Flagsmith({
environmentKey: 'ser.key',
enableLocalEvaluation: true,
enableAnalytics: false,
});

const environmentFlags = await flagClient.getEnvironmentFlags();
const flag = environmentFlags.getFlag('daisy.settlements.timeout');
console.log(`flagClient.apiUrl=${flagClient.apiUrl}`);
console.log(`flagClient.enableLocalEvaluation=${flagClient.enableLocalEvaluation}`);
console.log(JSON.stringify(flag));
console.log(`typeof flag.value=${typeof flag.value}`);

await flagClient.close();
}

void main();
```

`enableLocalEvaluation=true`
```
flagClient.apiUrl=https://edge.api.flagsmith.com/api/v1/
flagClient.enableLocalEvaluation=true
{"value":"60000","enabled":true,"isDefault":false,"featureId":62178,"featureName":"daisy.settlements.timeout"}
typeof flag.value=string
```

`enableLocalEvaluation=false`
```
flagClient.apiUrl=https://edge.api.flagsmith.com/api/v1/
flagClient.enableLocalEvaluation=false
{"value":60000,"enabled":true,"isDefault":false,"featureId":62178,"featureName":"daisy.settlements.timeout"}
typeof flag.value=number
```

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.