Skip to content

Commit

Permalink
refactoring: remove obsolete polyfills (#6417)
Browse files Browse the repository at this point in the history
* refactoring: remove findIndex polyfill

* refactoring: remove object spread polyfill

* refactoring: remove find and findIndex polyfill

---------

Co-authored-by: Haroen Viaene <[email protected]>
  • Loading branch information
dhayab and Haroenv committed Dec 5, 2024
1 parent 348d946 commit f6cee6c
Show file tree
Hide file tree
Showing 19 changed files with 159 additions and 288 deletions.
8 changes: 5 additions & 3 deletions packages/algoliasearch-helper/src/SearchParameters/index.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
'use strict';

var defaultsPure = require('../functions/defaultsPure');
var find = require('../functions/find');
var intersection = require('../functions/intersection');
var merge = require('../functions/merge');
var objectHasKeys = require('../functions/objectHasKeys');
Expand Down Expand Up @@ -42,7 +41,10 @@ function isEqualNumericRefinement(a, b) {
* @return {any} the searched value or undefined
*/
function findArray(array, searchedValue) {
return find(array, function (currentValue) {
if (!Array.isArray(array)) {
return undefined;
}
return array.find(function (currentValue) {
return isEqualNumericRefinement(currentValue, searchedValue);
});
}
Expand Down Expand Up @@ -1628,7 +1630,7 @@ SearchParameters.prototype = {
* @return {object} a hierarchicalFacet
*/
getHierarchicalFacetByName: function (hierarchicalFacetName) {
return find(this.hierarchicalFacets, function (f) {
return this.hierarchicalFacets.find(function (f) {
return f.name === hierarchicalFacetName;
});
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
module.exports = generateTrees;

var fv = require('../functions/escapeFacetValue');
var find = require('../functions/find');
var prepareHierarchicalFacetSortBy = require('../functions/formatSort');
var orderBy = require('../functions/orderBy');
var escapeFacetValue = fv.escapeFacetValue;
Expand Down Expand Up @@ -82,7 +81,7 @@ function generateHierarchicalTree(
* @type {object[]]} hierarchical data
*/
var data = parent && Array.isArray(parent.data) ? parent.data : [];
parent = find(data, function (subtree) {
parent = data.find(function (subtree) {
return subtree.isRefined;
});
level++;
Expand Down
41 changes: 18 additions & 23 deletions packages/algoliasearch-helper/src/SearchResults/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
var compact = require('../functions/compact');
var defaultsPure = require('../functions/defaultsPure');
var fv = require('../functions/escapeFacetValue');
var find = require('../functions/find');
var findIndex = require('../functions/findIndex');
var formatSort = require('../functions/formatSort');
var orderBy = require('../functions/orderBy');
var escapeFacetValue = fv.escapeFacetValue;
Expand Down Expand Up @@ -89,13 +87,12 @@ function findMatchingHierarchicalFacetFromAttributeName(
hierarchicalFacets,
hierarchicalAttributeName
) {
return find(
hierarchicalFacets,
function facetKeyMatchesAttribute(hierarchicalFacet) {
var facetNames = hierarchicalFacet.attributes || [];
return facetNames.indexOf(hierarchicalAttributeName) > -1;
}
);
return hierarchicalFacets.find(function facetKeyMatchesAttribute(
hierarchicalFacet
) {
var facetNames = hierarchicalFacet.attributes || [];
return facetNames.indexOf(hierarchicalAttributeName) > -1;
});
}

/**
Expand Down Expand Up @@ -439,7 +436,7 @@ function SearchResults(state, results, options) {
// Place the hierarchicalFacet data at the correct index depending on
// the attributes order that was defined at the helper initialization
var facetIndex = hierarchicalFacet.attributes.indexOf(facetKey);
var idxAttributeName = findIndex(state.hierarchicalFacets, function (f) {
var idxAttributeName = state.hierarchicalFacets.findIndex(function (f) {
return f.name === hierarchicalFacet.name;
});
self.hierarchicalFacets[idxAttributeName][facetIndex] = {
Expand Down Expand Up @@ -497,11 +494,10 @@ function SearchResults(state, results, options) {
var position;

if (hierarchicalFacet) {
position = findIndex(state.hierarchicalFacets, function (f) {
position = state.hierarchicalFacets.findIndex(function (f) {
return f.name === hierarchicalFacet.name;
});
var attributeIndex = findIndex(
self.hierarchicalFacets[position],
var attributeIndex = self.hierarchicalFacets[position].findIndex(
function (f) {
return f.attribute === dfacet;
}
Expand Down Expand Up @@ -579,11 +575,10 @@ function SearchResults(state, results, options) {

Object.keys(facets).forEach(function (dfacet) {
var facetResults = facets[dfacet];
var position = findIndex(state.hierarchicalFacets, function (f) {
var position = state.hierarchicalFacets.findIndex(function (f) {
return f.name === hierarchicalFacet.name;
});
var attributeIndex = findIndex(
self.hierarchicalFacets[position],
var attributeIndex = self.hierarchicalFacets[position].findIndex(
function (f) {
return f.attribute === dfacet;
}
Expand Down Expand Up @@ -674,7 +669,7 @@ function extractNormalizedFacetValues(results, attribute) {
}

if (results._state.isConjunctiveFacet(attribute)) {
var facet = find(results.facets, predicate);
var facet = results.facets.find(predicate);
if (!facet) return [];

return Object.keys(facet.data).map(function (name) {
Expand All @@ -688,7 +683,7 @@ function extractNormalizedFacetValues(results, attribute) {
};
});
} else if (results._state.isDisjunctiveFacet(attribute)) {
var disjunctiveFacet = find(results.disjunctiveFacets, predicate);
var disjunctiveFacet = results.disjunctiveFacets.find(predicate);
if (!disjunctiveFacet) return [];

return Object.keys(disjunctiveFacet.data).map(function (name) {
Expand All @@ -701,7 +696,7 @@ function extractNormalizedFacetValues(results, attribute) {
};
});
} else if (results._state.isHierarchicalFacet(attribute)) {
var hierarchicalFacetValues = find(results.hierarchicalFacets, predicate);
var hierarchicalFacetValues = results.hierarchicalFacets.find(predicate);
if (!hierarchicalFacetValues) return hierarchicalFacetValues;

var hierarchicalFacet =
Expand Down Expand Up @@ -979,7 +974,7 @@ SearchResults.prototype.getFacetStats = function (attribute) {
* @return {object|undefined} The stats of the facet
*/
function getFacetStatsIfAvailable(facetList, facetName) {
var data = find(facetList, function (facet) {
var data = facetList.find(function (facet) {
return facet.name === facetName;
});
return data && data.stats;
Expand Down Expand Up @@ -1088,7 +1083,7 @@ SearchResults.prototype.getRefinements = function () {
* @return {Refinement} the refinement
*/
function getRefinement(state, type, attributeName, name, resultsFacets) {
var facet = find(resultsFacets, function (f) {
var facet = resultsFacets.find(function (f) {
return f.name === attributeName;
});
var count = facet && facet.data && facet.data[name] ? facet.data[name] : 0;
Expand All @@ -1114,14 +1109,14 @@ function getHierarchicalRefinement(state, attributeName, name, resultsFacets) {
var facetDeclaration = state.getHierarchicalFacetByName(attributeName);
var separator = state._getHierarchicalFacetSeparator(facetDeclaration);
var split = name.split(separator);
var rootFacet = find(resultsFacets, function (facet) {
var rootFacet = resultsFacets.find(function (facet) {
return facet.name === attributeName;
});

var facet = split.reduce(function (intermediateFacet, part) {
var newFacet =
intermediateFacet &&
find(intermediateFacet.data, function (f) {
intermediateFacet.data.find(function (f) {
return f.name === part;
});
return newFacet !== undefined ? newFacet : intermediateFacet;
Expand Down
16 changes: 0 additions & 16 deletions packages/algoliasearch-helper/src/functions/find.js

This file was deleted.

15 changes: 0 additions & 15 deletions packages/algoliasearch-helper/src/functions/findIndex.js

This file was deleted.

13 changes: 5 additions & 8 deletions packages/algoliasearch-helper/src/functions/formatSort.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
'use strict';

var find = require('./find');

/**
* Transform sort format from user friendly notation to lodash format
* @param {string[]} sortBy array of predicate of the form "attribute:order"
Expand All @@ -17,12 +15,11 @@ module.exports = function formatSort(sortBy, defaults) {
function preparePredicate(out, sort) {
var sortInstruction = sort.split(':');

var matchingDefault = find(
defaultInstructions,
function (defaultInstruction) {
return defaultInstruction[0] === sortInstruction[0];
}
);
var matchingDefault = defaultInstructions.find(function (
defaultInstruction
) {
return defaultInstruction[0] === sortInstruction[0];
});

if (sortInstruction.length > 1 || !matchingDefault) {
out[0].push(sortInstruction[0]);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
'use strict';

var find = require('../functions/find');
var flat = require('../functions/flat');

function getAverageIndices(indexTracker, nrOfObjs) {
Expand Down Expand Up @@ -43,7 +42,7 @@ function sortAndMergeRecommendations(results) {
orderedHits,
avgIndexRef
) {
var result = find(flat(results), function (hit) {
var result = flat(results).find(function (hit) {
return hit.objectID === avgIndexRef.objectID;
});
return result ? orderedHits.concat(result) : orderedHits;
Expand Down
39 changes: 0 additions & 39 deletions packages/algoliasearch-helper/test/spec/functions/find.js

This file was deleted.

39 changes: 0 additions & 39 deletions packages/algoliasearch-helper/test/spec/functions/findIndex.js

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ const mergeDisjunctiveFacets: Merger = (left, right) =>
const mergeHierarchicalFacets: Merger = (left, right) =>
left.setQueryParameters({
hierarchicalFacets: right.hierarchicalFacets.reduce((facets, facet) => {
const index = facets.findIndex((_) => _.name === facet.name);
const index = facets.findIndex(({ name }) => name === facet.name);

if (index === -1) {
return facets.concat(facet);
Expand Down
11 changes: 4 additions & 7 deletions packages/vue-instantsearch/src/components/DynamicWidgets.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import { connectDynamicWidgets } from 'instantsearch-core';

import { createSuitMixin } from '../mixins/suit';
import { createWidgetMixin } from '../mixins/widget';
import { _objectSpread } from '../util/polyfills';
import { isVue3, renderCompat, getDefaultSlot } from '../util/vue-compat';

function getWidgetAttribute(vnode) {
Expand Down Expand Up @@ -87,12 +86,10 @@ export default {

return h(
'div',
_objectSpread(
{
class: [this.suit()],
},
{ attrs: { hidden: true } }
),
{
class: [this.suit()],
attrs: { hidden: true },
},
allComponents
);
}
Expand Down
9 changes: 7 additions & 2 deletions packages/vue-instantsearch/src/components/StateResults.vue
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
<script>
import { createSuitMixin } from '../mixins/suit';
import { createWidgetMixin } from '../mixins/widget';
import { _objectSpread } from '../util/polyfills';
import { isVue3 } from '../util/vue-compat';
export default {
Expand Down Expand Up @@ -78,7 +77,13 @@ export default {
computed: {
stateResults() {
const { results, state, status, error } = this.state;
return _objectSpread({}, results, { results, state, status, error });
return {
...results,
results,
state,
status,
error,
};
},
},
};
Expand Down
Loading

0 comments on commit f6cee6c

Please sign in to comment.