Registry
J

devcycle-to-openfeature-nodejs-initialization-transform

No description available

jonathannorris46 executions

  • Legacy
  • devcycle
  • openfeature
  • nodejs
Connect a repo
npx codemod devcycle-to-openfeature-nodejs-initialization-transform

DevCycle to OpenFeature Node.js - Initialization Transform CodeMod

This Codemod will transform the initialization of the DevCycle Node.js Server SDK to use OpenFeature Node.js SDK.

  • Calls to initializeDevCycle() should be replaced with new DevCycleProvider() where the same parameters used.
  • The variable named from the initializeDevCycle() call should be renamed to replace client with provider. For example: devcycleClient renamed to devcycleProvider.
  • The new provider should be passed into await OpenFeature.setProviderAndWait(devcycleProvider);
  • C new openFeatureClient should be created from OpenFeature.getClient()
  • Usages of the variabled named from the initializeDevCycle() call should be updated to use the openFeatureClient instead.

Before

ts
let devcycleClient: DevCycleClient;

async function initializeDevCycleClient() {
  devcycleClient = await initializeDevCycle(DEVCYCLE_SERVER_SDK_KEY, {
    logLevel: "info",
    eventFlushIntervalMS: 1000,
  }).onClientInitialized();
  return devcycleClient;
}

function getDevCycleClient() {
  return devcycleClient;
}

export { initializeDevCycleClient, getDevCycleClient };

After

ts
let openFeatureClient: Client;

async function initializeDevCycleClient() {
  const Devcycleprovider = new DevCycleProvider(DEVCYCLE_SERVER_SDK_KEY, {
    logLevel: "info",
    eventFlushIntervalMS: 1000,
  });

  await OpenFeature.setProviderAndWait(Devcycleprovider);
  const openFeatureClient = OpenFeature.getClient();
  return openFeatureClient;
}

function getDevCycleClient() {
  return openFeatureClient;
}

export { initializeDevCycleClient, getDevCycleClient };

Ready to evolve your codebase?

Build tailored, compiler-aware skills to assess, plan, and automate complex codebase changes.