Contentful Personalization & Analytics
    Preparing search index...

    Variable OptimizedEntryResolverConst

    OptimizedEntryResolver: {
        resolve: {
            <
                S extends EntrySkeletonType = EntrySkeletonType,
                L extends string = string,
            >(
                entry: Entry<S, undefined, L>,
                selectedOptimizations?: {
                    experienceId: string;
                    sticky?: boolean;
                    variantIndex: number;
                    variants: Record<string, string>;
                }[],
            ): ResolvedData<S, undefined, L>;
            <
                S extends EntrySkeletonType,
                M extends ChainModifiers = ChainModifiers,
                L extends string = string,
            >(
                entry: Entry<S, M, L>,
                selectedOptimizations?: {
                    experienceId: string;
                    sticky?: boolean;
                    variantIndex: number;
                    variants: Record<string, string>;
                }[],
            ): ResolvedData<S, M, L>;
        };
        resolveWithContext: {
            <
                S extends EntrySkeletonType = EntrySkeletonType,
                L extends string = string,
            >(
                entry: Entry<S, undefined, L>,
                selectedOptimizations?: {
                    experienceId: string;
                    sticky?: boolean;
                    variantIndex: number;
                    variants: Record<string, string>;
                }[],
            ): ResolvedDataWithOptimizationContext<S, undefined, L>;
            <
                S extends EntrySkeletonType,
                M extends ChainModifiers = ChainModifiers,
                L extends string = string,
            >(
                entry: Entry<S, M, L>,
                selectedOptimizations?: {
                    experienceId: string;
                    sticky?: boolean;
                    variantIndex: number;
                    variants: Record<string, string>;
                }[],
            ): ResolvedDataWithOptimizationContext<S, M, L>;
        };
        getOptimizationEntry(
            params: {
                optimizedEntry: OptimizedEntry;
                selectedOptimizations: {
                    experienceId: string;
                    sticky?: boolean;
                    variantIndex: number;
                    variants: Record<string, string>;
                }[];
            },
        ): OptimizationEntry
        | undefined;
        getSelectedOptimization(
            params: {
                optimizationEntry: OptimizationEntry;
                selectedOptimizations: {
                    experienceId: string;
                    sticky?: boolean;
                    variantIndex: number;
                    variants: Record<string, string>;
                }[];
            },
        ): | {
            experienceId: string;
            sticky?: boolean;
            variantIndex: number;
            variants: Record<string, string>;
        }
        | undefined;
        getSelectedVariant(
            params: {
                optimizationEntry: OptimizationEntry;
                optimizedEntry: OptimizedEntry;
                selectedVariantIndex: number;
            },
        ): { hidden?: boolean; id: string }
        | undefined;
        getSelectedVariantEntry<
            S extends EntrySkeletonType,
            M extends ChainModifiers = ChainModifiers,
            L extends string = string,
        >(
            params: {
                optimizationEntry: OptimizationEntry;
                optimizedEntry: Entry<S, M, L>;
                selectedVariant: { hidden?: boolean; id: string };
            },
        ): Entry<S, M, L>
        | undefined;
    } = ...

    Resolve an optimized Contentful entry to the correct variant for the current selections.

    Type Declaration

    • resolve: {
          <
              S extends EntrySkeletonType = EntrySkeletonType,
              L extends string = string,
          >(
              entry: Entry<S, undefined, L>,
              selectedOptimizations?: {
                  experienceId: string;
                  sticky?: boolean;
                  variantIndex: number;
                  variants: Record<string, string>;
              }[],
          ): ResolvedData<S, undefined, L>;
          <
              S extends EntrySkeletonType,
              M extends ChainModifiers = ChainModifiers,
              L extends string = string,
          >(
              entry: Entry<S, M, L>,
              selectedOptimizations?: {
                  experienceId: string;
                  sticky?: boolean;
                  variantIndex: number;
                  variants: Record<string, string>;
              }[],
          ): ResolvedData<S, M, L>;
      }
    • resolveWithContext: {
          <
              S extends EntrySkeletonType = EntrySkeletonType,
              L extends string = string,
          >(
              entry: Entry<S, undefined, L>,
              selectedOptimizations?: {
                  experienceId: string;
                  sticky?: boolean;
                  variantIndex: number;
                  variants: Record<string, string>;
              }[],
          ): ResolvedDataWithOptimizationContext<S, undefined, L>;
          <
              S extends EntrySkeletonType,
              M extends ChainModifiers = ChainModifiers,
              L extends string = string,
          >(
              entry: Entry<S, M, L>,
              selectedOptimizations?: {
                  experienceId: string;
                  sticky?: boolean;
                  variantIndex: number;
                  variants: Record<string, string>;
              }[],
          ): ResolvedDataWithOptimizationContext<S, M, L>;
      }
    • getOptimizationEntry: function
      • Find the optimization entry corresponding to one of the selected experiences.

        Parameters

        • params: {
              optimizedEntry: OptimizedEntry;
              selectedOptimizations: {
                  experienceId: string;
                  sticky?: boolean;
                  variantIndex: number;
                  variants: Record<string, string>;
              }[];
          }

          Object containing the baseline optimized entry and the selections.

        Returns OptimizationEntry | undefined

        The matching OptimizationEntry, or undefined if not found/invalid.

        An optimization entry is an optimization configuration object supplied in an OptimizedEntry.nt_experiences array. An optimized entry can relate to multiple optimizations.

        const optimizationEntry = OptimizedEntryResolver.getOptimizationEntry({
        optimizedEntry: entry,
        selectedOptimizations
        })
    • getSelectedOptimization: function
      • Look up the selection metadata for a specific optimization entry.

        Parameters

        • params: {
              optimizationEntry: OptimizationEntry;
              selectedOptimizations: {
                  experienceId: string;
                  sticky?: boolean;
                  variantIndex: number;
                  variants: Record<string, string>;
              }[];
          }

          Object with the target optimization entry and selections.

        Returns
            | {
                experienceId: string;
                sticky?: boolean;
                variantIndex: number;
                variants: Record<string, string>;
            }
            | undefined

        The matching SelectedOptimization, if present.

        • {
              experienceId: string;
              sticky?: boolean;
              variantIndex: number;
              variants: Record<string, string>;
          }
          • experienceId: string

            Identifier of the personalization or experiment experience.

          • Optionalsticky?: boolean

            Indicates whether this optimization selection is sticky for the user.

            false
            

            Reuse sticky selections on subsequent requests for the same user rather than re-allocating a new variant.

          • variantIndex: number

            Index of the selected variant within the experience configuration.

            Typically corresponds to the index of the selected OptimizationConfig entry.

          • variants: Record<string, string>

            Mapping of baseline entry IDs to their selected variant entry IDs.

            The keys are component identifiers and the values are the identifiers of the selected variant for that component.

        • undefined

        Selected optimizations are supplied by the Experience API in the experiences response data property.

        const selectedOptimization = OptimizedEntryResolver.getSelectedOptimization({
        optimizationEntry,
        selectedOptimizations
        })
    • getSelectedVariant: function
      • Get the replacement variant config for the given selection index.

        Parameters

        • params: {
              optimizationEntry: OptimizationEntry;
              optimizedEntry: OptimizedEntry;
              selectedVariantIndex: number;
          }

          Baseline entry, optimization entry, and 1‑based variant index.

        Returns { hidden?: boolean; id: string } | undefined

        The EntryReplacementVariant for the component, if any.

        • { hidden?: boolean; id: string }
          • Optionalhidden?: boolean

            On a baseline: true excludes the whole component from allocation.

            On a variant: can be true (author chose "Use empty variant") or false (unfilled placeholder). Both states share id: "". Do not use this field to detect an empty variant — use id === "" instead. The Experience API strips this field before runtime; it is only present in Contentful CDA nt_config.

          • id: string

            Unique identifier for the variant. Empty string ("") for an empty variant — both the deliberate "Use empty variant" choice and an unfilled placeholder slot.

        • undefined

        Entry replacement variants are variant configurations specified in a optimization configuration component's variants array supplied by the optimized entry via its nt_config field.

        const selectedVariant = OptimizedEntryResolver.getSelectedVariant({
        optimizedEntry: entry,
        optimizationEntry,
        selectedVariantIndex: 2 // second variant (1‑based)
        })
    • getSelectedVariantEntry: function
      • Resolve the concrete Contentful entry that corresponds to a selected variant.

        Type Parameters

        Parameters

        • params: {
              optimizationEntry: OptimizationEntry;
              optimizedEntry: Entry<S, M, L>;
              selectedVariant: { hidden?: boolean; id: string };
          }

          Optimization entry and selected variant.

        Returns Entry<S, M, L> | undefined

        The resolved entry typed as Entry or undefined.

        An optimized entry will resolve either to the baseline (the entry supplied as optimizedEntry) or the selected variant.

        const selectedVariantEntry = OptimizedEntryResolver.getSelectedVariantEntry<{ fields: unknown }>({
        optimizationEntry,
        selectedVariant
        })

    Given a baseline OptimizedEntry and a set of selected optimizations (variants per experience), this resolver finds the matching replacement variant for the component configured against the baseline entry.

    Variant indexing: variantIndex in SelectedOptimization is treated as 1‑based (index 1 = first variant). A value of 0 indicates baseline.