DevCycle to OpenFeature Node.js - Variable Transform CodeMod
This Codemod changes DevCycle variable calls to openfeature flags:
- Replace
variableValue()andvariable()calls withget<Type>Value()andget<Type>Details()respectively, where<Type>isBoolean,String,Number, orObject. - move the first parameter (user/context) to the third parameter for each variable call being coverted.
- all Openfeature calls should be awaited.
Before
tsconst booleanValue = client.variableValue(user, "boolean-key", false); const booleanValue2 = client2.variableValue(user2, "boolean-key-2", false); const booleanVariable = client.variable(user, "boolean-key", false); const stringValue = client.variableValue(user, "string-key", "default"); const stringVariable = client.variable(user, "string-key", "default"); const numberValue = client.variableValue(user, "number-key", 0.0); const numberVariable = client.variable(user, "number-key", 0.0); const objectValue = client.variableValue(user, "object-key", { default: true, }); const objectVariable = client.variable(user, "object-key", { default: true, }); const booleanValue3 = client.variableValue( { targetingKey: "1234" }, "boolean-key", false );
After
tsconst booleanValue = await client.getBooleanValue("boolean-key", false, user); const booleanValue2 = await client2.getBooleanValue( "boolean-key-2", false, user2 ); const booleanVariable = await client.getBooleanDetails( "boolean-key", false, user ); const stringValue = await client.getStringValue("string-key", "default", user); const stringVariable = await client.getStringDetails( "string-key", "default", user ); const numberValue = await client.getNumberValue("number-key", 0.0, user); const numberVariable = await client.getNumberDetails("number-key", 0.0, user); const objectValue = await client.getObjectValue( "object-key", { default: true, }, user ); const objectVariable = await client.getObjectDetails( "object-key", { default: true, }, user ); const booleanValue3 = await client.getBooleanValue("boolean-key", false, { targetingKey: "1234", });