From ff4f8f005f053b23d4a4360b8985f37cf98010b6 Mon Sep 17 00:00:00 2001 From: Bryan Housel Date: Fri, 22 Mar 2019 17:29:26 -0400 Subject: [PATCH] Remove lodash find and findIndex (re: #6087) --- modules/core/context.js | 3 +-- modules/modes/drag_node.js | 3 +-- modules/osm/changeset.js | 11 +++++------ modules/presets/collection.js | 6 ++---- modules/renderer/background.js | 8 +++----- modules/services/improveOSM.js | 7 ++----- modules/services/keepRight.js | 5 +---- modules/services/mapillary.js | 4 +--- modules/services/openstreetcam.js | 12 ++---------- modules/services/osm.js | 3 +-- modules/services/streetside.js | 4 +--- modules/services/vector_tile.js | 4 +--- modules/svg/layers.js | 4 +--- modules/ui/fields/address.js | 3 +-- modules/ui/fields/combo.js | 7 ++++--- modules/ui/fields/localized.js | 8 +++----- modules/ui/fields/wikipedia.js | 9 ++++----- 17 files changed, 34 insertions(+), 67 deletions(-) diff --git a/modules/core/context.js b/modules/core/context.js index 7514bf849..dffe15a9d 100644 --- a/modules/core/context.js +++ b/modules/core/context.js @@ -1,7 +1,6 @@ import _cloneDeep from 'lodash-es/cloneDeep'; import _debounce from 'lodash-es/debounce'; import _each from 'lodash-es/each'; -import _find from 'lodash-es/find'; import _forOwn from 'lodash-es/forOwn'; import _isObject from 'lodash-es/isObject'; import _isString from 'lodash-es/isString'; @@ -145,7 +144,7 @@ export function coreContext() { if (zoomTo !== false) { this.loadEntity(entityID, function(err, result) { if (err) return; - var entity = _find(result.data, function(e) { return e.id === entityID; }); + var entity = result.data.find(function(e) { return e.id === entityID; }); if (entity) { map.zoomTo(entity); } diff --git a/modules/modes/drag_node.js b/modules/modes/drag_node.js index 440421a9d..3d482313d 100644 --- a/modules/modes/drag_node.js +++ b/modules/modes/drag_node.js @@ -1,4 +1,3 @@ -import _find from 'lodash-es/find'; import _intersection from 'lodash-es/intersection'; import { @@ -311,7 +310,7 @@ export function modeDragNode(context) { // find active ring and test it for self intersections for (k = 0; k < rings.length; k++) { nodes = rings[k].nodes; - if (_find(nodes, function(n) { return n.id === entity.id; })) { + if (nodes.find(function(n) { return n.id === entity.id; })) { activeIndex = k; if (geoHasSelfIntersections(nodes, entity.id)) { return true; diff --git a/modules/osm/changeset.js b/modules/osm/changeset.js index e8e3e33a4..9aeb8d604 100644 --- a/modules/osm/changeset.js +++ b/modules/osm/changeset.js @@ -1,6 +1,5 @@ import _extend from 'lodash-es/extend'; import _filter from 'lodash-es/filter'; -import _find from 'lodash-es/find'; import _map from 'lodash-es/map'; import { osmEntity } from './entity'; @@ -75,7 +74,7 @@ _extend(osmChangeset.prototype, { // find a referenced relation in the current changeset function resolve(item) { - return _find(relations, function(relation) { + return relations.find(function(relation) { return item.keyAttributes.type === 'relation' && item.keyAttributes.ref === relation['@id']; }); @@ -83,14 +82,14 @@ _extend(osmChangeset.prototype, { // a new item is an item that has not been already processed function isNew(item) { - return !sorted[ item['@id'] ] && !_find(processing, function(proc) { + return !sorted[ item['@id'] ] && !processing.find(function(proc) { return proc['@id'] === item['@id']; }); } - var processing = [], - sorted = {}, - relations = changes.relation; + var processing = []; + var sorted = {}; + var relations = changes.relation; if (!relations) return changes; diff --git a/modules/presets/collection.js b/modules/presets/collection.js index 6876e645c..8697453ca 100644 --- a/modules/presets/collection.js +++ b/modules/presets/collection.js @@ -1,5 +1,3 @@ -import _find from 'lodash-es/find'; -import _findIndex from 'lodash-es/findIndex'; import _some from 'lodash-es/some'; import _uniq from 'lodash-es/uniq'; import _without from 'lodash-es/without'; @@ -16,13 +14,13 @@ export function presetCollection(collection) { item: function(id) { - return _find(this.collection, function(d) { + return this.collection.find(function(d) { return d.id === id; }); }, index: function(id) { - return _findIndex(this.collection, function(d) { + return this.collection.findIndex(function(d) { return d.id === id; }); }, diff --git a/modules/renderer/background.js b/modules/renderer/background.js index 74ce6635d..fe66af5ee 100644 --- a/modules/renderer/background.js +++ b/modules/renderer/background.js @@ -1,5 +1,3 @@ -import _find from 'lodash-es/find'; - import { dispatch as d3_dispatch } from 'd3-dispatch'; import { interpolateNumber as d3_interpolateNumber } from 'd3-interpolate'; import { select as d3_select } from 'd3-selection'; @@ -277,7 +275,7 @@ export function rendererBackground(context) { background.findSource = function(id) { - return _find(_backgroundSources, function(d) { + return _backgroundSources.find(function(d) { return d.id && d.id === id; }); }; @@ -441,7 +439,7 @@ export function rendererBackground(context) { // Decide which background layer to display if (!requested && extent) { - best = _find(this.sources(extent), function(s) { return s.best(); }); + best = this.sources(extent).find(function(s) { return s.best(); }); } if (requested && requested.indexOf('custom:') === 0) { template = requested.replace(/^custom:/, ''); @@ -458,7 +456,7 @@ export function rendererBackground(context) { ); } - var locator = _find(_backgroundSources, function(d) { + var locator = _backgroundSources.find(function(d) { return d.overlay && d.default; }); diff --git a/modules/services/improveOSM.js b/modules/services/improveOSM.js index c754b28a8..9f69d736a 100644 --- a/modules/services/improveOSM.js +++ b/modules/services/improveOSM.js @@ -1,5 +1,4 @@ import _extend from 'lodash-es/extend'; -import _find from 'lodash-es/find'; import _forEach from 'lodash-es/forEach'; import rbush from 'rbush'; @@ -37,9 +36,7 @@ function abortRequest(i) { function abortUnwantedRequests(cache, tiles) { _forEach(cache.inflightTile, function(v, k) { - var wanted = _find(tiles, function(tile) { - return k === tile.id; - }); + var wanted = tiles.find(function(tile) { return k === tile.id; }); if (!wanted) { abortRequest(v); delete cache.inflightTile[k]; @@ -481,4 +478,4 @@ export default { getClosedIDs: function() { return Object.keys(_erCache.closed).sort(); } -}; \ No newline at end of file +}; diff --git a/modules/services/keepRight.js b/modules/services/keepRight.js index 68e34587a..8f6e4dc8e 100644 --- a/modules/services/keepRight.js +++ b/modules/services/keepRight.js @@ -1,5 +1,4 @@ import _extend from 'lodash-es/extend'; -import _find from 'lodash-es/find'; import _forEach from 'lodash-es/forEach'; import rbush from 'rbush'; @@ -42,9 +41,7 @@ function abortRequest(i) { function abortUnwantedRequests(cache, tiles) { _forEach(cache.inflightTile, function(v, k) { - var wanted = _find(tiles, function(tile) { - return k === tile.id; - }); + var wanted = tiles.find(function(tile) { return k === tile.id; }); if (!wanted) { abortRequest(v); delete cache.inflightTile[k]; diff --git a/modules/services/mapillary.js b/modules/services/mapillary.js index 4cfb73f51..f4d41fb30 100644 --- a/modules/services/mapillary.js +++ b/modules/services/mapillary.js @@ -1,5 +1,4 @@ /* global Mapillary:false */ -import _find from 'lodash-es/find'; import _forEach from 'lodash-es/forEach'; import _some from 'lodash-es/some'; import _union from 'lodash-es/union'; @@ -55,8 +54,7 @@ function loadTiles(which, url, projection) { // abort inflight requests that are no longer needed var cache = _mlyCache[which]; _forEach(cache.inflight, function(v, k) { - var wanted = _find(tiles, function(tile) { return k.indexOf(tile.id + ',') === 0; }); - + var wanted = tiles.find(function(tile) { return k.indexOf(tile.id + ',') === 0; }); if (!wanted) { abortRequest(v); delete cache.inflight[k]; diff --git a/modules/services/openstreetcam.js b/modules/services/openstreetcam.js index 63c5f4e72..fe73507ae 100644 --- a/modules/services/openstreetcam.js +++ b/modules/services/openstreetcam.js @@ -1,4 +1,3 @@ -import _find from 'lodash-es/find'; import _forEach from 'lodash-es/forEach'; import _union from 'lodash-es/union'; @@ -20,13 +19,7 @@ import rbush from 'rbush'; import { geoExtent, geoScaleToZoom } from '../geo'; import { utilDetect } from '../util/detect'; - -import { - utilQsString, - utilRebind, - utilSetTransform, - utilTiler -} from '../util'; +import { utilQsString, utilRebind, utilSetTransform, utilTiler } from '../util'; var apibase = 'https://openstreetcam.org'; @@ -65,8 +58,7 @@ function loadTiles(which, url, projection) { // abort inflight requests that are no longer needed var cache = _oscCache[which]; _forEach(cache.inflight, function(v, k) { - var wanted = _find(tiles, function(tile) { return k.indexOf(tile.id + ',') === 0; }); - + var wanted = tiles.find(function(tile) { return k.indexOf(tile.id + ',') === 0; }); if (!wanted) { abortRequest(v); delete cache.inflight[k]; diff --git a/modules/services/osm.js b/modules/services/osm.js index 9b5166859..dad62a64a 100644 --- a/modules/services/osm.js +++ b/modules/services/osm.js @@ -2,7 +2,6 @@ import _chunk from 'lodash-es/chunk'; import _cloneDeep from 'lodash-es/cloneDeep'; import _extend from 'lodash-es/extend'; import _forEach from 'lodash-es/forEach'; -import _find from 'lodash-es/find'; import _groupBy from 'lodash-es/groupBy'; import _isEmpty from 'lodash-es/isEmpty'; import _map from 'lodash-es/map'; @@ -79,7 +78,7 @@ function abortRequest(i) { function abortUnwantedRequests(cache, tiles) { _forEach(cache.inflight, function(v, k) { - var wanted = _find(tiles, function(tile) { return k === tile.id; }); + var wanted = tiles.find(function(tile) { return k === tile.id; }); if (!wanted) { abortRequest(v); delete cache.inflight[k]; diff --git a/modules/services/streetside.js b/modules/services/streetside.js index da7181172..e273e9bf7 100644 --- a/modules/services/streetside.js +++ b/modules/services/streetside.js @@ -1,5 +1,4 @@ import _extend from 'lodash-es/extend'; -import _find from 'lodash-es/find'; import _forEach from 'lodash-es/forEach'; import _union from 'lodash-es/union'; @@ -84,8 +83,7 @@ function loadTiles(which, url, projection, margin) { // abort inflight requests that are no longer needed var cache = _ssCache[which]; _forEach(cache.inflight, function(v, k) { - var wanted = _find(tiles, function(tile) { return k.indexOf(tile.id + ',') === 0; }); - + var wanted = tiles.find(function(tile) { return k.indexOf(tile.id + ',') === 0; }); if (!wanted) { abortRequest(v); delete cache.inflight[k]; diff --git a/modules/services/vector_tile.js b/modules/services/vector_tile.js index d34a5181a..81ec0f1b4 100644 --- a/modules/services/vector_tile.js +++ b/modules/services/vector_tile.js @@ -1,5 +1,4 @@ import _clone from 'lodash-es/clone'; -import _find from 'lodash-es/find'; import _isEqual from 'lodash-es/isEqual'; import _forEach from 'lodash-es/forEach'; @@ -194,8 +193,7 @@ export default { // abort inflight requests that are no longer needed _forEach(source.inflight, function(v, k) { - var wanted = _find(tiles, function(tile) { return k === tile.id; }); - + var wanted = tiles.find(function(tile) { return k === tile.id; }); if (!wanted) { abortRequest(v); delete source.inflight[k]; diff --git a/modules/svg/layers.js b/modules/svg/layers.js index 9ece25a64..452bcc912 100644 --- a/modules/svg/layers.js +++ b/modules/svg/layers.js @@ -1,6 +1,4 @@ - import _difference from 'lodash-es/difference'; -import _find from 'lodash-es/find'; import _map from 'lodash-es/map'; import _reject from 'lodash-es/reject'; @@ -78,7 +76,7 @@ export function svgLayers(projection, context) { drawLayers.layer = function(id) { - var obj = _find(layers, function(o) {return o.id === id;}); + var obj = layers.find(function(o) {return o.id === id;}); return obj && obj.layer; }; diff --git a/modules/ui/fields/address.js b/modules/ui/fields/address.js index 64e30cf24..f0ee18c34 100644 --- a/modules/ui/fields/address.js +++ b/modules/ui/fields/address.js @@ -1,4 +1,3 @@ -import _find from 'lodash-es/find'; import _includes from 'lodash-es/includes'; import _reduce from 'lodash-es/reduce'; import _uniqBy from 'lodash-es/uniqBy'; @@ -115,7 +114,7 @@ export function uiFieldAddress(field, context) { function countryCallback(err, countryCode) { if (err) return; - var addressFormat = _find(dataAddressFormats, function (a) { + var addressFormat = dataAddressFormats.find(function (a) { return a && a.countryCodes && _includes(a.countryCodes, countryCode.toLowerCase()); }) || dataAddressFormats[0]; diff --git a/modules/ui/fields/combo.js b/modules/ui/fields/combo.js index 6a6e95d63..266ddba96 100644 --- a/modules/ui/fields/combo.js +++ b/modules/ui/fields/combo.js @@ -1,5 +1,4 @@ import _filter from 'lodash-es/filter'; -import _find from 'lodash-es/find'; import _map from 'lodash-es/map'; import _reject from 'lodash-es/reject'; import _remove from 'lodash-es/remove'; @@ -75,7 +74,7 @@ export function uiFieldCombo(field, context) { dval = clean(dval || ''); if (optstrings) { - var found = _find(_comboData, function(o) { + var found = _comboData.find(function(o) { return o.key && clean(o.value) === dval; }); if (found) { @@ -97,7 +96,9 @@ export function uiFieldCombo(field, context) { tval = tval || ''; if (optstrings) { - var found = _find(_comboData, function(o) { return o.key === tval && o.value; }); + var found = _comboData.find(function(o) { + return o.key === tval && o.value; + }); if (found) { return found.value; } diff --git a/modules/ui/fields/localized.js b/modules/ui/fields/localized.js index a54513764..14b2868ea 100644 --- a/modules/ui/fields/localized.js +++ b/modules/ui/fields/localized.js @@ -1,5 +1,3 @@ -import _find from 'lodash-es/find'; - import { dispatch as d3_dispatch } from 'd3-dispatch'; import { @@ -302,7 +300,7 @@ export function uiFieldLocalized(field, context) { if (_isLocked) return; var defaultLang = utilDetect().locale.toLowerCase().split('-')[0]; - var langExists = _find(_multilingual, function(datum) { return datum.lang === defaultLang;}); + var langExists = _multilingual.find(function(datum) { return datum.lang === defaultLang; }); var isLangEn = defaultLang.indexOf('en') > -1; if (isLangEn || langExists) { defaultLang = ''; @@ -336,7 +334,7 @@ export function uiFieldLocalized(field, context) { function changeLang(d) { var lang = utilGetSetValue(d3_select(this)); var t = {}; - var language = _find(dataWikipedia, function(d) { + var language = dataWikipedia.find(function(d) { return d[0].toLowerCase() === lang.toLowerCase() || d[1].toLowerCase() === lang.toLowerCase(); }); @@ -467,7 +465,7 @@ export function uiFieldLocalized(field, context) { var entry = selection.selectAll('.entry'); utilGetSetValue(entry.select('.localized-lang'), function(d) { - var lang = _find(dataWikipedia, function(lang) { return lang[2] === d.lang; }); + var lang = dataWikipedia.find(function(lang) { return lang[2] === d.lang; }); return lang ? lang[1] : d.lang; }); diff --git a/modules/ui/fields/wikipedia.js b/modules/ui/fields/wikipedia.js index 81ffd7398..445433216 100644 --- a/modules/ui/fields/wikipedia.js +++ b/modules/ui/fields/wikipedia.js @@ -1,5 +1,4 @@ import _clone from 'lodash-es/clone'; -import _find from 'lodash-es/find'; import { dispatch as d3_dispatch } from 'd3-dispatch'; @@ -140,7 +139,7 @@ export function uiFieldWikipedia(field, context) { var value = utilGetSetValue(lang).toLowerCase(); var locale = utilDetect().locale.toLowerCase(); var localeLanguage; - return _find(dataWikipedia, function(d) { + return dataWikipedia.find(function(d) { if (d[2] === locale) localeLanguage = d; return d[0].toLowerCase() === value || d[1].toLowerCase() === value || @@ -163,7 +162,7 @@ export function uiFieldWikipedia(field, context) { function change(skipWikidata) { var value = utilGetSetValue(title); var m = value.match(/https?:\/\/([-a-z]+)\.wikipedia\.org\/(?:wiki|\1-[-a-z]+)\/([^#]+)(?:#(.+))?/); - var l = m && _find(dataWikipedia, function(d) { return m[1] === d[2]; }); + var l = m && dataWikipedia.find(function(d) { return m[1] === d[2]; }); var syncTags = {}; if (l) { @@ -209,7 +208,7 @@ export function uiFieldWikipedia(field, context) { if (!data || !Object.keys(data).length) return; var qids = Object.keys(data); - var value = qids && _find(qids, function(id) { return id.match(/^Q\d+$/); }); + var value = qids && qids.find(function(id) { return id.match(/^Q\d+$/); }); var currTags = _clone(context.entity(initEntityID).tags); currTags.wikidata = value; @@ -229,7 +228,7 @@ export function uiFieldWikipedia(field, context) { wiki.tags = function(tags) { var value = tags[field.key] || ''; var m = value.match(/([^:]+):([^#]+)(?:#(.+))?/); - var l = m && _find(dataWikipedia, function(d) { return m[1] === d[2]; }); + var l = m && dataWikipedia.find(function(d) { return m[1] === d[2]; }); var anchor = m && m[3]; // value in correct format