@launchdarkly/js-client-sdk-common - v1.35.2
    Preparing search index...

    Interface LDClient

    The basic interface for the LaunchDarkly client. Platform-specific SDKs may add some methods of their own.

    interface LDClient {
        logger: LDLogger;
        addHook(hook: Hook): void;
        allFlags(): LDFlagSet;
        boolVariation(key: string, defaultValue: boolean): boolean;
        boolVariationDetail(
            key: string,
            defaultValue: boolean,
        ): LDEvaluationDetailTyped<boolean>;
        close(): Promise<void>;
        flush(): Promise<{ error?: Error; result: boolean }>;
        getContext(): platform.LDContext | undefined;
        identify(
            context: LDContext,
            identifyOptions?: LDIdentifyOptions,
        ): Promise<void>;
        jsonVariation(key: string, defaultValue: unknown): unknown;
        jsonVariationDetail(
            key: string,
            defaultValue: unknown,
        ): LDEvaluationDetailTyped<unknown>;
        numberVariation(key: string, defaultValue: number): number;
        numberVariationDetail(
            key: string,
            defaultValue: number,
        ): LDEvaluationDetailTyped<number>;
        off(key: string, callback: (...args: any[]) => void): void;
        on(key: string, callback: (...args: any[]) => void): void;
        stringVariation(key: string, defaultValue: string): string;
        stringVariationDetail(
            key: string,
            defaultValue: string,
        ): LDEvaluationDetailTyped<string>;
        track(key: string, data?: any, metricValue?: number): void;
        variation(key: string, defaultValue?: any): any;
        variationDetail(key: string, defaultValue?: any): LDEvaluationDetail;
        waitForInitialization(
            options?: LDWaitForInitializationOptions,
        ): Promise<LDWaitForInitializationResult>;
    }

    Implemented by

    Index
    logger: LDLogger

    The logger configured as part of LDOptions during construction.

    For more information, read LDOptions.logger and LDLogger.

    The configured LDLogger.

    • Add a hook to the client. In order to register a hook before the client starts, please use the hooks property of LDOptions.

      Hooks provide entrypoints which allow for observation of SDK functions.

      Parameters

      • hook: Hook

        The hook to add.

      Returns void

    • Returns a map of all available flags to the current context's values.

      Returns LDFlagSet

      An object in which each key is a feature flag key and each value is the flag value. Note that there is no way to specify a default value for each flag as there is with variation, so any flag that cannot be evaluated will be undefined.

    • Determines the boolean variation of a feature flag.

      If the flag variation does not have a boolean value, defaultValue is returned.

      Parameters

      • key: string

        The unique key of the feature flag.

      • defaultValue: boolean

        The default value of the flag, to be used if the value is not available from LaunchDarkly.

      Returns boolean

      The boolean value.

    • Determines the boolean variation of a feature flag, along with information about how it was calculated.

      The reason property of the result will also be included in analytics events, if you are capturing detailed event data for this flag.

      If the flag variation does not have a boolean value, defaultValue is returned. The reason will indicate an error of the type WRONG_KIND in this case.

      For more information, see the SDK reference guide.

      Parameters

      • key: string

        The unique key of the feature flag.

      • defaultValue: boolean

        The default value of the flag, to be used if the value is not available from LaunchDarkly.

      Returns LDEvaluationDetailTyped<boolean>

      The result (as an ).

    • Flushes all pending analytics events.

      Normally, batches of events are delivered in the background at intervals determined by the flushInterval property of LDOptions. Calling flush() triggers an immediate delivery.

      Returns Promise<{ error?: Error; result: boolean }>

      A Promise which resolves once flushing is finished. You can inspect the result of the flush for errors.

    • Identifies a context to LaunchDarkly.

      Unlike the server-side SDKs, the client-side JavaScript SDKs maintain a current context state, which is set when you call identify().

      Changing the current context also causes all feature flag values to be reloaded. Until that has finished, calls to variation will still return flag values for the previous context. You can await the Promise to determine when the new flag values are available.

      If used with the sheddable option set to true, then the identify operation will be sheddable. This means that if multiple identify operations are done, without waiting for the previous one to complete, then intermediate operations may be discarded.

      Parameters

      Returns Promise<void>

      A Promise which resolves when the flag values for the specified context are available. It rejects when:

      1. The context is unspecified or has no key.

      2. The identify timeout is exceeded. In client SDKs this defaults to 5s. You can customize this timeout with identifyOptions.

      3. A network error is encountered during initialization.

    • Determines the json variation of a feature flag.

      This version may be favored in TypeScript versus variation because it returns an unknown type instead of any. unknown will require a cast before usage.

      Parameters

      • key: string

        The unique key of the feature flag.

      • defaultValue: unknown

        The default value of the flag, to be used if the value is not available from LaunchDarkly.

      Returns unknown

      The json value.

    • Determines the json variation of a feature flag, along with information about how it was calculated.

      The reason property of the result will also be included in analytics events, if you are capturing detailed event data for this flag.

      This version may be favored in TypeScript versus variation because it returns an unknown type instead of any. unknown will require a cast before usage.

      For more information, see the SDK reference guide.

      Parameters

      • key: string

        The unique key of the feature flag.

      • defaultValue: unknown

        The default value of the flag, to be used if the value is not available from LaunchDarkly.

      Returns LDEvaluationDetailTyped<unknown>

      The result (as an ).

    • Determines the numeric variation of a feature flag.

      If the flag variation does not have a numeric value, defaultValue is returned.

      Parameters

      • key: string

        The unique key of the feature flag.

      • defaultValue: number

        The default value of the flag, to be used if the value is not available from LaunchDarkly.

      Returns number

      The numeric value.

    • Determines the numeric variation of a feature flag for a context, along with information about how it was calculated.

      Parameters

      • key: string

        The unique key of the feature flag.

      • defaultValue: number

        The default value of the flag, to be used if the value is not available from LaunchDarkly.

      Returns LDEvaluationDetailTyped<number>

      The result (as an ).

      The reason property of the result will also be included in analytics events, if you are capturing detailed event data for this flag.

      If the flag variation does not have a numeric value, defaultValue is returned. The reason will indicate an error of the type WRONG_KIND in this case.

      For more information, see the SDK reference guide.

    • Removes an event listener. See on for the available event types.

      Parameters

      • key: string

        The name of the event for which to stop listening.

      • callback: (...args: any[]) => void

        The function to deregister.

      Returns void

    • Registers an event listener.

      Parameters

      • key: string

        The name of the event for which to listen.

      • callback: (...args: any[]) => void

        The function to execute when the event fires. The callback may or may not receive parameters, depending on the type of event.

      Returns void

      You can subscribe to one of the supported EventName:

      • "change": The client has received new feature flag data. This can happen either because you have switched contexts with identify, or because the client has a stream connection and has received a live change to a flag value (see below). The callback parameters are the context and an array of flag keys that have changed.

      • "error": General event for any kind of error condition during client operation. The callback parameters are the context and an Error object. Errors are also output by the logger at the error level.

      • "dataSourceStatus": Event indicating that there has been a change in the status of the data source. This will include the state of the data source as well any error information.

    • Determines the string variation of a feature flag.

      If the flag variation does not have a string value, defaultValue is returned.

      Parameters

      • key: string

        The unique key of the feature flag.

      • defaultValue: string

        The default value of the flag, to be used if the value is not available from LaunchDarkly.

      Returns string

      The string value.

    • Determines the string variation of a feature flag for a context, along with information about how it was calculated.

      Parameters

      • key: string

        The unique key of the feature flag.

      • defaultValue: string

        The default value of the flag, to be used if the value is not available from LaunchDarkly.

      Returns LDEvaluationDetailTyped<string>

      The result (as an ).

      The reason property of the result will also be included in analytics events, if you are capturing detailed event data for this flag.

      If the flag variation does not have a string value, defaultValue is returned. The reason will indicate an error of the type WRONG_KIND in this case.

      For more information, see the SDK reference guide.

    • Track events for experiments.

      Parameters

      • key: string

        The name of the event, which may correspond to a goal in an experiment.

      • Optionaldata: any

        Additional information to associate with the event.

      • OptionalmetricValue: number

        An optional numeric value that can be used by the LaunchDarkly experimentation feature in numeric custom metrics. Can be omitted if this event is used by only non-numeric metrics. This field will also be returned as part of the custom event for Data Export.

      Returns void

    • We recommend using strongly typed variation methods which perform type checks and handle type errors.

      Parameters

      • key: string

        The unique key of the feature flag.

      • OptionaldefaultValue: any

        The default value of the flag, to be used if the value is not available from LaunchDarkly.

      Returns any

      The flag's value.

      Determines the variation of a feature flag.

      In the client-side JavaScript SDKs, this is always a fast synchronous operation because all of the feature flag values for the current context have already been loaded into memory.

    • We recommend using strongly typed variation detail methods which perform type checks and handle type errors.

      Parameters

      • key: string

        The unique key of the feature flag.

      • OptionaldefaultValue: any

        The default value of the flag, to be used if the value is not available from LaunchDarkly.

      Returns LDEvaluationDetail

      An LDEvaluationDetail object containing the value and explanation.

      Determines the variation of a feature flag for a context, along with information about how it was calculated.

      Note that this will only work if you have set withReasons to true in LDOptions.

      The reason property of the result will also be included in analytics events, if you are capturing detailed event data for this flag.

      For more information, see the SDK reference guide.