export function stripDefaultValues()

in src/utils/urls.js [35:63]


export function stripDefaultValues(params, defaults) {
  return Object.keys(params)
    .filter((k) => {
      // If it's empty or undefined, remove it.
      if (!params[k]) return false;
      if (Object.keys(defaults).includes(k)) {
        // If this param has a default value defined.
        if (defaults[k].isMulti) {
          // If it has multiple values, use JSON.stringify for an easy
          // equality check since these are arrays.
          return (
            JSON.stringify(params[k]) !==
            JSON.stringify(defaults[k].defaultValue)
          );
        }
        // It's not `isMulti`, so just compare value to value.
        return params[k] !== defaults[k].defaultValue;
      }
      // If no default defined, return true to include it in the URL.
      return true;
    })
    .reduce(
      (obj, k) => ({
        ...obj,
        [k]: params[k],
      }),
      {}
    );
}