Skip to content

Feature values always have type string when using local evaluation mode #146

Description

@AceFire6

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

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

import Flagsmith from 'flagsmith-nodejs';

async function main(): Promise<void> {
    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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions