UNPKG

@flopflip/launchdarkly-adapter

Version:

A adapter around the LaunchDarkly client for flipflop

1 lines 28 kB
{"version":3,"sources":["/home/runner/work/flopflip/flopflip/packages/launchdarkly-adapter/dist/index.cjs","../src/adapter.ts","../src/index.ts"],"names":["updatedFlags","flags"],"mappings":"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","file":"/home/runner/work/flopflip/flopflip/packages/launchdarkly-adapter/dist/index.cjs","sourcesContent":[null,"import {\n denormalizeFlagName,\n exposeGlobally,\n normalizeFlag,\n normalizeFlags,\n} from '@flopflip/adapter-utilities';\nimport { getCache } from '@flopflip/cache';\nimport {\n AdapterConfigurationStatus,\n AdapterInitializationStatus,\n AdapterSubscriptionStatus,\n adapterIdentifiers,\n cacheModes,\n type TAdapterEventHandlers,\n type TAdapterStatus,\n type TAdapterStatusChange,\n type TCacheIdentifiers,\n type TCacheModes,\n type TFlagName,\n type TFlags,\n type TFlagsChange,\n type TFlagVariation,\n type TLaunchDarklyAdapterArgs,\n type TLaunchDarklyAdapterInterface,\n type TUpdateFlagsOptions,\n} from '@flopflip/types';\nimport debounce from 'debounce-fn';\nimport {\n initialize as initializeLaunchDarklyClient,\n type LDClient,\n type LDContext,\n} from 'launchdarkly-js-client-sdk';\nimport isEqual from 'lodash/isEqual.js';\nimport mitt, { type Emitter } from 'mitt';\nimport warning from 'tiny-warning';\nimport { merge } from 'ts-deepmerge';\n\ntype TEmitterEvents = {\n flagsStateChange: TFlags;\n statusStateChange: Partial<TAdapterStatus>;\n};\n\ntype TLaunchDarklyAdapterState = {\n context?: LDContext;\n client?: LDClient;\n flags: TFlags;\n emitter: Emitter<TEmitterEvents>;\n lockedFlags: Set<TFlagName>;\n unsubscribedFlags: Set<TFlagName>;\n};\n\nclass LaunchDarklyAdapter implements TLaunchDarklyAdapterInterface {\n id: typeof adapterIdentifiers.launchdarkly;\n\n readonly #adapterState: TAdapterStatus & TLaunchDarklyAdapterState;\n\n constructor() {\n this.#adapterState = {\n subscriptionStatus: AdapterSubscriptionStatus.Subscribed,\n configurationStatus: AdapterConfigurationStatus.Unconfigured,\n context: undefined,\n client: undefined,\n flags: {},\n // Typings are incorrect and state that mitt is not callable.\n // Value of type 'MittStatic' is not callable. Did you mean to include 'new'\n emitter: mitt(),\n lockedFlags: new Set<TFlagName>(),\n unsubscribedFlags: new Set<TFlagName>(),\n };\n this.id = adapterIdentifiers.launchdarkly;\n }\n\n readonly #updateFlagsInAdapterState = (\n flags: TFlags,\n options?: TUpdateFlagsOptions\n ): void => {\n const updatedFlags = Object.entries(flags).reduce(\n (updatedFlags, [flagName, flagValue]) => {\n if (this.#getIsFlagLocked(flagName)) {\n return updatedFlags;\n }\n\n if (options?.lockFlags) {\n this.#adapterState.lockedFlags.add(flagName);\n }\n\n if (options?.unsubscribeFlags) {\n this.#adapterState.unsubscribedFlags.add(flagName);\n }\n\n const updated = {\n ...updatedFlags,\n [flagName]: flagValue,\n };\n\n return updated;\n },\n {}\n );\n\n this.#adapterState.flags = {\n ...this.#adapterState.flags,\n ...updatedFlags,\n };\n };\n\n readonly #getIsAdapterUnsubscribed = () =>\n this.#adapterState.subscriptionStatus ===\n AdapterSubscriptionStatus.Unsubscribed;\n\n readonly #getIsFlagUnsubcribed = (flagName: TFlagName) =>\n this.#adapterState.unsubscribedFlags.has(flagName);\n\n readonly #getIsFlagLocked = (flagName: TFlagName) =>\n this.#adapterState.lockedFlags.has(flagName);\n\n readonly #withoutUnsubscribedOrLockedFlags = (flags: TFlags) =>\n Object.fromEntries(\n Object.entries(flags).filter(\n ([flagName]) =>\n !this.#getIsFlagUnsubcribed(flagName) &&\n !this.#getIsFlagLocked(flagName)\n )\n );\n\n readonly #getIsAnonymousContext = (context: LDContext) => !context?.key;\n\n readonly #ensureContext = (context: LDContext) => {\n const isAnonymousContext = this.#getIsAnonymousContext(context);\n\n // NOTE: When marked `anonymous` the SDK will generate a unique key and cache it in local storage\n return merge(context, {\n key: isAnonymousContext ? undefined : context.key,\n anonymous: isAnonymousContext,\n });\n };\n\n readonly #initializeClient = (\n clientSideId: TLaunchDarklyAdapterArgs['sdk']['clientSideId'],\n context: LDContext,\n options: TLaunchDarklyAdapterArgs['sdk']['clientOptions']\n ) => initializeLaunchDarklyClient(clientSideId, context, options);\n\n readonly #changeClientContext = async (nextContext: LDContext) =>\n this.#adapterState.client?.identify\n ? this.#adapterState.client.identify(nextContext)\n : Promise.reject(\n new Error('Can not change user context: client not yet initialized.')\n );\n\n readonly #maybeUpdateFlagsInCache = async (\n flagsToCache: TFlags,\n cacheIdentifier?: TCacheIdentifiers\n ) => {\n if (cacheIdentifier) {\n const cache = await getCache(\n cacheIdentifier,\n adapterIdentifiers.launchdarkly,\n // NOTE: LDContextCommon is part of the type which we never use.\n this.#adapterState.context\n );\n\n const cachedFlags: TFlags = cache.get();\n\n cache.set({ ...cachedFlags, ...flagsToCache });\n }\n };\n\n readonly #getInitialFlags = async ({\n flags,\n throwOnInitializationFailure,\n cacheIdentifier,\n cacheMode,\n initializationTimeout,\n }: Pick<\n TLaunchDarklyAdapterArgs,\n | 'flags'\n | 'throwOnInitializationFailure'\n | 'cacheIdentifier'\n | 'cacheMode'\n | 'initializationTimeout'\n >): Promise<{\n flagsFromSdk?: TFlags;\n initializationStatus: AdapterInitializationStatus;\n }> => {\n if (this.#adapterState.client) {\n return this.#adapterState.client\n .waitForInitialization(initializationTimeout)\n .then(async () => {\n let flagsFromSdk: TFlags | undefined;\n\n if (this.#adapterState.client && !flags) {\n flagsFromSdk = this.#adapterState.client.allFlags();\n } else if (this.#adapterState.client && flags) {\n flagsFromSdk = {};\n\n for (const [requestedFlagName, defaultFlagValue] of Object.entries(\n flags\n )) {\n const denormalizedRequestedFlagName =\n denormalizeFlagName(requestedFlagName);\n flagsFromSdk[denormalizedRequestedFlagName] =\n this.#adapterState.client.variation(\n denormalizedRequestedFlagName,\n defaultFlagValue\n );\n }\n }\n\n if (flagsFromSdk) {\n const normalizedFlags = normalizeFlags(flagsFromSdk);\n\n await this.#maybeUpdateFlagsInCache(\n normalizedFlags,\n cacheIdentifier\n );\n\n const flags =\n this.#withoutUnsubscribedOrLockedFlags(normalizedFlags);\n\n this.#updateFlagsInAdapterState(flags);\n\n if (cacheMode !== cacheModes.lazy) {\n this.#adapterState.emitter.emit(\n 'flagsStateChange',\n this.#adapterState.flags\n );\n }\n }\n\n this.setConfigurationStatus(AdapterConfigurationStatus.Configured);\n\n return Promise.resolve({\n flagsFromSdk,\n initializationStatus: AdapterInitializationStatus.Succeeded,\n });\n })\n .catch(async () => {\n if (throwOnInitializationFailure) {\n return Promise.reject(\n new Error(\n '@flopflip/launchdarkly-adapter: adapter failed to initialize.'\n )\n );\n }\n\n console.warn(\n '@flopflip/launchdarkly-adapter: adapter failed to initialize.'\n );\n\n return Promise.resolve({\n flagsFromSdk: undefined,\n initializationStatus: AdapterInitializationStatus.Failed,\n });\n });\n }\n\n return Promise.reject(\n new Error(\n '@flopflip/launchdarkly-adapter: can not subscribe with non initialized client.'\n )\n );\n };\n\n readonly #didFlagChange = (\n flagName: TFlagName,\n nextFlagValue: TFlagVariation\n ) => {\n const previousFlagValue = this.getFlag(flagName);\n\n if (previousFlagValue === undefined) {\n return true;\n }\n\n return previousFlagValue !== nextFlagValue;\n };\n\n readonly #setupFlagSubcription = ({\n flagsFromSdk,\n flagsUpdateDelayMs,\n cacheIdentifier,\n cacheMode,\n }: {\n flagsFromSdk: TFlags;\n flagsUpdateDelayMs?: number;\n cacheIdentifier?: TCacheIdentifiers;\n cacheMode?: TCacheModes;\n }) => {\n for (const flagName in flagsFromSdk) {\n // Dispatch whenever a configured flag value changes\n if (Object.hasOwn(flagsFromSdk, flagName) && this.#adapterState.client) {\n this.#adapterState.client.on(\n `change:${flagName}`,\n async (flagValue) => {\n const [normalizedFlagName, normalizedFlagValue] = normalizeFlag(\n flagName,\n flagValue as TFlagVariation\n );\n\n await this.#maybeUpdateFlagsInCache(\n {\n [normalizedFlagName]: normalizedFlagValue,\n },\n cacheIdentifier\n );\n\n if (this.#getIsFlagUnsubcribed(normalizedFlagName)) {\n return;\n }\n\n // Sometimes the SDK flushes flag changes without a value having changed.\n if (!this.#didFlagChange(normalizedFlagName, normalizedFlagValue)) {\n return;\n }\n\n const updatedFlags: TFlags = {\n [normalizedFlagName]: normalizedFlagValue,\n };\n // NOTE: Adapter state needs to be updated outside of debounced-fn\n // so that no flag updates are lost.\n this.#updateFlagsInAdapterState(updatedFlags);\n\n const flushFlagsUpdate = () => {\n if (cacheMode === cacheModes.lazy) {\n return;\n }\n\n this.#adapterState.emitter.emit(\n 'flagsStateChange',\n this.#adapterState.flags\n );\n };\n\n const scheduleImmediately = { before: true, after: false };\n const scheduleTrailingEdge = { before: false, after: true };\n\n debounce(flushFlagsUpdate, {\n wait: flagsUpdateDelayMs,\n ...(flagsUpdateDelayMs\n ? scheduleTrailingEdge\n : scheduleImmediately),\n })();\n }\n );\n }\n }\n };\n\n // External. Flags are autolocked when updated.\n updateFlags = (flags: TFlags, options?: TUpdateFlagsOptions) => {\n this.#updateFlagsInAdapterState(flags, options);\n\n // ...and flush initial state of flags\n this.#adapterState.emitter.emit(\n 'flagsStateChange',\n this.#adapterState.flags\n );\n };\n\n async configure(\n adapterArgs: TLaunchDarklyAdapterArgs,\n adapterEventHandlers: TAdapterEventHandlers\n ) {\n const handleFlagsChange = (nextFlags: TFlagsChange['flags']) => {\n if (this.#getIsAdapterUnsubscribed()) {\n return;\n }\n\n adapterEventHandlers.onFlagsStateChange({\n flags: nextFlags,\n id: this.id,\n });\n };\n\n const handleStatusChange = (nextStatus: TAdapterStatusChange['status']) => {\n if (this.#getIsAdapterUnsubscribed()) {\n return;\n }\n\n adapterEventHandlers.onStatusStateChange({\n status: nextStatus,\n id: this.id,\n });\n };\n\n this.#adapterState.configurationStatus =\n AdapterConfigurationStatus.Configuring;\n\n this.#adapterState.emitter.on('flagsStateChange', handleFlagsChange);\n this.#adapterState.emitter.on('statusStateChange', handleStatusChange);\n\n this.#adapterState.emitter.emit('statusStateChange', {\n configurationStatus: this.#adapterState.configurationStatus,\n });\n\n const {\n sdk,\n context,\n flags,\n throwOnInitializationFailure = false,\n initializationTimeout = 2, // 2 seconds\n flagsUpdateDelayMs,\n } = adapterArgs;\n let cachedFlags: TFlags;\n\n this.#adapterState.context = this.#ensureContext(context);\n\n if (adapterArgs.cacheIdentifier) {\n const cache = await getCache(\n adapterArgs.cacheIdentifier,\n adapterIdentifiers.launchdarkly,\n this.#adapterState.context\n );\n\n cachedFlags = cache.get();\n\n if (cachedFlags) {\n this.#updateFlagsInAdapterState(cachedFlags);\n this.#adapterState.flags = cachedFlags;\n this.#adapterState.emitter.emit('flagsStateChange', cachedFlags);\n }\n }\n\n this.#adapterState.client = this.#initializeClient(\n sdk.clientSideId,\n this.#adapterState.context,\n sdk.clientOptions ?? {}\n );\n\n return this.#getInitialFlags({\n flags,\n throwOnInitializationFailure,\n cacheIdentifier: adapterArgs.cacheIdentifier,\n cacheMode: adapterArgs.cacheMode,\n initializationTimeout,\n }).then(({ flagsFromSdk, initializationStatus }) => {\n if (flagsFromSdk) {\n this.#setupFlagSubcription({\n flagsFromSdk,\n flagsUpdateDelayMs,\n cacheIdentifier: adapterArgs.cacheIdentifier,\n cacheMode: adapterArgs.cacheMode,\n });\n }\n\n return { initializationStatus };\n });\n }\n\n async reconfigure(\n adapterArgs: TLaunchDarklyAdapterArgs,\n _adapterEventHandlers: TAdapterEventHandlers\n ) {\n if (!this.getIsConfigurationStatus(AdapterConfigurationStatus.Configured)) {\n return Promise.reject(\n new Error(\n '@flopflip/launchdarkly-adapter: please configure adapter before reconfiguring.'\n )\n );\n }\n\n const nextContext = this.#ensureContext(adapterArgs.context);\n\n if (!isEqual(this.#adapterState.context, nextContext)) {\n if (adapterArgs.cacheIdentifier) {\n const cache = await getCache(\n adapterArgs.cacheIdentifier,\n adapterIdentifiers.launchdarkly,\n this.#adapterState.context\n );\n\n cache.unset();\n }\n\n this.#adapterState.context = nextContext;\n\n await this.#changeClientContext(this.#adapterState.context);\n }\n\n return Promise.resolve({\n initializationStatus: AdapterInitializationStatus.Succeeded,\n });\n }\n\n getIsConfigurationStatus(configurationStatus: AdapterConfigurationStatus) {\n return this.#adapterState.configurationStatus === configurationStatus;\n }\n\n setConfigurationStatus(nextConfigurationStatus: AdapterConfigurationStatus) {\n this.#adapterState.configurationStatus = nextConfigurationStatus;\n\n this.#adapterState.emitter.emit('statusStateChange', {\n configurationStatus: this.#adapterState.configurationStatus,\n });\n }\n\n getClient() {\n return this.#adapterState.client;\n }\n\n getFlag(flagName: TFlagName): TFlagVariation {\n return this.#adapterState.flags[flagName];\n }\n\n async updateClientContext(\n updatedContextProps: TLaunchDarklyAdapterArgs['context']\n ) {\n const isAdapterConfigured = this.getIsConfigurationStatus(\n AdapterConfigurationStatus.Configured\n );\n\n warning(\n isAdapterConfigured,\n '@flopflip/launchdarkly-adapter: adapter not configured. Client context can not be updated before.'\n );\n\n if (!isAdapterConfigured) {\n return Promise.reject(\n new Error('Can not update client context: adapter not yet configured.')\n );\n }\n\n return this.#changeClientContext({\n ...this.#adapterState.context,\n ...updatedContextProps,\n });\n }\n\n unsubscribe = () => {\n this.#adapterState.subscriptionStatus =\n AdapterSubscriptionStatus.Unsubscribed;\n };\n\n subscribe = () => {\n this.#adapterState.subscriptionStatus =\n AdapterSubscriptionStatus.Subscribed;\n };\n}\n\nconst adapter = new LaunchDarklyAdapter();\n\nexposeGlobally(adapter);\n\nexport { adapter };\n","const version = '__@FLOPFLIP/VERSION_OF_RELEASE__';\n\nexport { version };\nexport { adapter } from './adapter';\n"]}