# FeatureFlagSetSnapshot

A class tracking and memoizing the latest version of the LaunchDarkly feature flags.

The LaunchDarkly SDK client returns a new object containing feature flags every time they're accessed. This class tracks flag updates and keeps an in-memory, memoized snapshot of the flags, returning the same object reference until a flag value changes.

# Reference

const snapshot = new FeatureFlagSetSnapshot(launchDarklyClient)

# Parameters

  • launchDarklyClient: A LaunchDarkly SDK client instance that is ready.

# Usage

# Create an instance

import { FeatureFlagSetSnapshot } from "@squide/firefly";

const snapshot = new FeatureFlagSetSnapshot(launchDarklyClient);

# Retrieve the feature flags

import { FeatureFlagSetSnapshot } from "@squide/firefly";

const snapshot = new FeatureFlagSetSnapshot(launchDarklyClient);
const flags = snapshot.value;

# Register a change listener

import { FeatureFlagSetSnapshot } from "@squide/firefly";

const snapshot = new FeatureFlagSetSnapshot(launchDarklyClient);

snapshot.addSnapshotChangedListener((snapshot, changes) => {
    console.log(snapshot, changes);
});

# Remove a change listener

import { FeatureFlagSetSnapshot } from "@squide/firefly";

const snapshot = new FeatureFlagSetSnapshot(launchDarklyClient);

const listener = (snapshot, changes) => {
    console.log(snapshot, changes);
};

snapshot.addSnapshotChangedListener(listener);
snapshot.removeSnapshotChangedListener(listener);