Home > widget-integration > FilterAPI > mergeAdditionalParams

FilterAPI.mergeAdditionalParams() method

Merges additional parameters provided by caller into the parameter object.

Combines any extra parameters passed to fetchAPI() with the base parameters built from filter state. Additional params take precedence over base params. Override to validate, transform, or filter additional parameters.

Signature:

protected mergeAdditionalParams(params: FilterAPIParams, additionParams: Record<string, unknown>): FilterAPIParams;

Parameters

Parameter

Type

Description

params

FilterAPIParams

Current filter parameters being built

additionParams

Record<string, unknown>

Additional parameters to merge (from fetchAPI call)

Returns:

FilterAPIParams

Combined parameters with additional params merged in

Remarks

Merge Behavior: - Additional params override base params if keys conflict - Empty object is handled gracefully (no-op) - Type safety maintained through FilterAPIParams interface

Example

Override to validate additional parameters:

window.boostWidgetIntegration.extend('FilterAPI', (FilterAPI) => {
  return class CustomFilterAPI extends FilterAPI {
    protected mergeAdditionalParams(params, additionParams) {
      // Filter out unauthorized parameters
      const allowedParams = this.filterAllowedParams(additionParams);
      return super.mergeAdditionalParams(params, allowedParams);
    }

    filterAllowedParams(params) {
      const allowed = ['page', 'limit', 'sort'];
      return Object.keys(params)
        .filter(key => allowed.includes(key))
        .reduce((obj, key) => ({ ...obj, [key]: params[key] }), {});
    }
  };
});