Remove lodash extend (re: #6087)

This commit is contained in:
Bryan Housel
2019-03-23 00:38:39 -04:00
parent 7e6f68a1b2
commit 7a6c63fcc5
22 changed files with 53 additions and 83 deletions
+3 -2
View File
@@ -1,4 +1,3 @@
import _extend from 'lodash-es/extend';
import _groupBy from 'lodash-es/groupBy';
import _intersection from 'lodash-es/intersection';
@@ -19,7 +18,9 @@ export function actionJoin(ids) {
function groupEntitiesByGeometry(graph) {
var entities = ids.map(function(id) { return graph.entity(id); });
return _extend({line: []}, _groupBy(entities, function(entity) { return entity.geometry(graph); }));
return Object.assign({ line: [] },
_groupBy(entities, function(entity) { return entity.geometry(graph); })
);
}
+1 -2
View File
@@ -1,4 +1,3 @@
import _extend from 'lodash-es/extend';
import _groupBy from 'lodash-es/groupBy';
import _uniq from 'lodash-es/uniq';
@@ -7,7 +6,7 @@ export function actionMerge(ids) {
function groupEntitiesByGeometry(graph) {
var entities = ids.map(function(id) { return graph.entity(id); });
return _extend({point: [], area: [], line: [], relation: []},
return Object.assign({point: [], area: [], line: [], relation: []},
_groupBy(entities, function(entity) { return entity.geometry(graph); }));
}
+1 -2
View File
@@ -1,4 +1,3 @@
import _extend from 'lodash-es/extend';
import _groupBy from 'lodash-es/groupBy';
import _map from 'lodash-es/map';
import _omit from 'lodash-es/omit';
@@ -11,7 +10,7 @@ export function actionMergePolygon(ids, newRelationId) {
function groupEntities(graph) {
var entities = ids.map(function (id) { return graph.entity(id); });
return _extend({
return Object.assign({
closedWay: [],
multipolygon: [],
other: []
+1 -2
View File
@@ -1,4 +1,3 @@
import _extend from 'lodash-es/extend';
import _indexOf from 'lodash-es/indexOf';
import _intersection from 'lodash-es/intersection';
@@ -190,7 +189,7 @@ export function actionSplit(nodeId, newWayIds) {
if (!isOuter && isArea) {
var multipolygon = osmRelation({
tags: _extend({}, wayA.tags, {type: 'multipolygon'}),
tags: Object.assign({}, wayA.tags, { type: 'multipolygon' }),
members: [
{id: wayA.id, role: 'outer', type: 'way'},
{id: wayB.id, role: 'outer', type: 'way'}
+1 -2
View File
@@ -1,4 +1,3 @@
import _extend from 'lodash-es/extend';
import _groupBy from 'lodash-es/groupBy';
import _map from 'lodash-es/map';
@@ -10,7 +9,7 @@ export function behaviorCopy(context) {
function groupEntities(ids, graph) {
var entities = ids.map(function (id) { return graph.entity(id); });
return _extend({relation: [], way: [], node: []},
return Object.assign({relation: [], way: [], node: []},
_groupBy(entities, function(entity) { return entity.type; }));
}
+2 -7
View File
@@ -1,9 +1,4 @@
import _extend from 'lodash-es/extend';
import {
geoMetersToLat,
geoMetersToLon
} from './index';
import { geoMetersToLat, geoMetersToLon } from './index';
export function geoExtent(min, max) {
@@ -22,7 +17,7 @@ export function geoExtent(min, max) {
geoExtent.prototype = new Array(2);
_extend(geoExtent.prototype, {
Object.assign(geoExtent.prototype, {
equals: function (obj) {
return this[0][0] === obj[0][0] &&
+5 -6
View File
@@ -1,4 +1,3 @@
import _extend from 'lodash-es/extend';
import _groupBy from 'lodash-es/groupBy';
import { t } from '../util/locale';
@@ -7,11 +6,11 @@ import { behaviorOperation } from '../behavior';
export function operationContinue(selectedIDs, context) {
var graph = context.graph(),
entities = selectedIDs.map(function(id) { return graph.entity(id); }),
geometries = _extend({ line: [], vertex: [] },
_groupBy(entities, function(entity) { return entity.geometry(graph); })),
vertex = geometries.vertex[0];
var graph = context.graph();
var entities = selectedIDs.map(function(id) { return graph.entity(id); });
var geometries = Object.assign({ line: [], vertex: [] },
_groupBy(entities, function(entity) { return entity.geometry(graph); }));
var vertex = geometries.vertex[0];
function candidateWays() {
+2 -3
View File
@@ -1,4 +1,3 @@
import _extend from 'lodash-es/extend';
import _filter from 'lodash-es/filter';
import _map from 'lodash-es/map';
@@ -19,7 +18,7 @@ osmEntity.changeset = osmChangeset;
osmChangeset.prototype = Object.create(osmEntity.prototype);
_extend(osmChangeset.prototype, {
Object.assign(osmChangeset.prototype, {
type: 'changeset',
@@ -127,7 +126,7 @@ _extend(osmChangeset.prototype, {
'@generator': 'iD',
'create': sort(nest(changes.created.map(rep), ['node', 'way', 'relation'])),
'modify': nest(changes.modified.map(rep), ['node', 'way', 'relation']),
'delete': _extend(nest(changes.deleted.map(rep), ['relation', 'way', 'node']), { '@if-unused': true })
'delete': Object.assign(nest(changes.deleted.map(rep), ['relation', 'way', 'node']), { '@if-unused': true })
}
};
},
+1 -2
View File
@@ -1,5 +1,4 @@
import _difference from 'lodash-es/difference';
import _extend from 'lodash-es/extend';
import _uniq from 'lodash-es/uniq';
import { actionDeleteRelation, actionReverse, actionSplit } from '../actions';
@@ -12,7 +11,7 @@ export function osmTurn(turn) {
if (!(this instanceof osmTurn)) {
return new osmTurn(turn);
}
_extend(this, turn);
Object.assign(this, turn);
}
+1 -2
View File
@@ -1,4 +1,3 @@
import _extend from 'lodash-es/extend';
import _map from 'lodash-es/map';
import _uniq from 'lodash-es/uniq';
@@ -18,7 +17,7 @@ osmEntity.node = osmNode;
osmNode.prototype = Object.create(osmEntity.prototype);
_extend(osmNode.prototype, {
Object.assign(osmNode.prototype, {
type: 'node',
+1 -3
View File
@@ -1,5 +1,3 @@
import _extend from 'lodash-es/extend';
import { geoExtent } from '../geo';
@@ -20,7 +18,7 @@ osmNote.id = function() {
osmNote.id.next = -1;
_extend(osmNote.prototype, {
Object.assign(osmNote.prototype, {
type: 'note',
+3 -3
View File
@@ -1,6 +1,6 @@
import _extend from 'lodash-es/extend';
import { services } from '../../data/qa_errors.json';
export function qaError() {
if (!(this instanceof qaError)) {
return (new qaError()).initialize(arguments);
@@ -16,7 +16,7 @@ qaError.id = function() {
qaError.id.next = -1;
_extend(qaError.prototype, {
Object.assign(qaError.prototype, {
type: 'qaError',
// All errors need a position
@@ -65,4 +65,4 @@ _extend(qaError.prototype, {
update: function(attrs) {
return qaError(this, attrs); // {v: 1 + (this.v || 0)}
}
});
});
+9 -10
View File
@@ -1,4 +1,3 @@
import _extend from 'lodash-es/extend';
import _map from 'lodash-es/map';
import _reject from 'lodash-es/reject';
@@ -36,7 +35,7 @@ osmRelation.creationOrder = function(a, b) {
};
_extend(osmRelation.prototype, {
Object.assign(osmRelation.prototype, {
type: 'relation',
members: [],
@@ -47,7 +46,7 @@ _extend(osmRelation.prototype, {
var copy = osmEntity.prototype.copy.call(this, resolver, copies);
var members = this.members.map(function(member) {
return _extend({}, member, { id: resolver.entity(member.id).copy(resolver, copies).id });
return Object.assign({}, member, { id: resolver.entity(member.id).copy(resolver, copies).id });
});
copy = copy.update({members: members});
@@ -92,7 +91,7 @@ _extend(osmRelation.prototype, {
indexedMembers: function() {
var result = new Array(this.members.length);
for (var i = 0; i < this.members.length; i++) {
result[i] = _extend({}, this.members[i], {index: i});
result[i] = Object.assign({}, this.members[i], {index: i});
}
return result;
},
@@ -103,7 +102,7 @@ _extend(osmRelation.prototype, {
memberByRole: function(role) {
for (var i = 0; i < this.members.length; i++) {
if (this.members[i].role === role) {
return _extend({}, this.members[i], {index: i});
return Object.assign({}, this.members[i], {index: i});
}
}
},
@@ -113,7 +112,7 @@ _extend(osmRelation.prototype, {
var result = [];
for (var i = 0; i < this.members.length; i++) {
if (this.members[i].role === role) {
result.push(_extend({}, this.members[i], {index: i}));
result.push(Object.assign({}, this.members[i], {index: i}));
}
}
return result;
@@ -124,7 +123,7 @@ _extend(osmRelation.prototype, {
memberById: function(id) {
for (var i = 0; i < this.members.length; i++) {
if (this.members[i].id === id) {
return _extend({}, this.members[i], {index: i});
return Object.assign({}, this.members[i], {index: i});
}
}
},
@@ -135,7 +134,7 @@ _extend(osmRelation.prototype, {
memberByIdAndRole: function(id, role) {
for (var i = 0; i < this.members.length; i++) {
if (this.members[i].id === id && this.members[i].role === role) {
return _extend({}, this.members[i], {index: i});
return Object.assign({}, this.members[i], {index: i});
}
}
},
@@ -150,7 +149,7 @@ _extend(osmRelation.prototype, {
updateMember: function(member, index) {
var members = this.members.slice();
members.splice(index, 1, _extend({}, members[index], member));
members.splice(index, 1, Object.assign({}, members[index], member));
return this.update({members: members});
},
@@ -233,7 +232,7 @@ _extend(osmRelation.prototype, {
type: 'FeatureCollection',
properties: this.tags,
features: this.members.map(function (member) {
return _extend({role: member.role}, resolver.entity(member.id).asGeoJSON(resolver));
return Object.assign({role: member.role}, resolver.entity(member.id).asGeoJSON(resolver));
})
};
}
+1 -2
View File
@@ -1,4 +1,3 @@
import _extend from 'lodash-es/extend';
import _map from 'lodash-es/map';
import _uniq from 'lodash-es/uniq';
@@ -25,7 +24,7 @@ osmEntity.way = osmWay;
osmWay.prototype = Object.create(osmEntity.prototype);
_extend(osmWay.prototype, {
Object.assign(osmWay.prototype, {
type: 'way',
nodes: [],
+2 -3
View File
@@ -1,4 +1,3 @@
import _extend from 'lodash-es/extend';
import _forEach from 'lodash-es/forEach';
import rbush from 'rbush';
@@ -169,7 +168,7 @@ export default {
if (_erCache.loadedTile[tile.id] || _erCache.inflightTile[tile.id]) return;
var rect = tile.extent.rectangle();
var params = _extend({}, options, { east: rect[0], south: rect[3], west: rect[2], north: rect[1] });
var params = Object.assign({}, options, { east: rect[0], south: rect[3], west: rect[2], north: rect[1] });
// 3 separate requests to store for each tile
var requests = {};
@@ -177,7 +176,7 @@ export default {
_forEach(_impOsmUrls, function(v, k) {
// We exclude WATER from missing geometry as it doesn't seem useful
// We use most confident one-way and turn restrictions only, still have false positives
var kParams = _extend({}, params, (k === 'mr') ? { type: 'PARKING,ROAD,BOTH,PATH' } : { confidenceLevel: 'C1' });
var kParams = Object.assign({}, params, (k === 'mr') ? { type: 'PARKING,ROAD,BOTH,PATH' } : { confidenceLevel: 'C1' });
var url = v + '/search?' + utilQsString(kParams);
requests[k] = d3_json(url,
+1 -2
View File
@@ -1,4 +1,3 @@
import _extend from 'lodash-es/extend';
import _forEach from 'lodash-es/forEach';
import rbush from 'rbush';
@@ -307,7 +306,7 @@ export default {
if (_krCache.loadedTile[tile.id] || _krCache.inflightTile[tile.id]) return;
var rect = tile.extent.rectangle();
var params = _extend({}, options, { left: rect[0], bottom: rect[3], right: rect[2], top: rect[1] });
var params = Object.assign({}, options, { left: rect[0], bottom: rect[3], right: rect[2], top: rect[1] });
var url = _krUrlRoot + 'export.php?' + utilQsString(params) + '&ch=' + rules;
_krCache.inflightTile[tile.id] = d3_json(url,
+9 -10
View File
@@ -1,6 +1,5 @@
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 _groupBy from 'lodash-es/groupBy';
import _isEmpty from 'lodash-es/isEmpty';
@@ -294,7 +293,7 @@ var parsers = {
function parseXML(xml, callback, options) {
options = _extend({ skipSeen: true }, options);
options = Object.assign({ skipSeen: true }, options);
if (!xml || !xml.childNodes) {
return callback({ message: 'No XML', status: -1 });
}
@@ -439,7 +438,7 @@ export default {
// Generic method to load data from the OSM API
// Can handle either auth or unauth calls.
loadFromAPI: function(path, callback, options) {
options = _extend({ skipSeen: true }, options);
options = Object.assign({ skipSeen: true }, options);
var that = this;
var cid = _connectionID;
@@ -820,7 +819,7 @@ export default {
_tileCache.loaded[tile.id] = true;
}
if (callback) {
callback(err, _extend({ data: parsed }, tile));
callback(err, Object.assign({ data: parsed }, tile));
}
if (_isEmpty(_tileCache.inflight)) {
dispatch.call('loaded'); // stop the spinner
@@ -835,7 +834,7 @@ export default {
// Load notes from the API in tiles
// GET /api/0.6/notes?bbox=
loadNotes: function(projection, noteOptions) {
noteOptions = _extend({ limit: 10000, closed: 7 }, noteOptions);
noteOptions = Object.assign({ limit: 10000, closed: 7 }, noteOptions);
if (_off) return;
var that = this;
@@ -977,7 +976,7 @@ export default {
switch: function(options) {
urlroot = options.urlroot;
oauth.options(_extend({
oauth.options(Object.assign({
url: urlroot,
loading: authLoading,
done: authDone
@@ -990,8 +989,8 @@ export default {
},
toggle: function(_) {
_off = !_;
toggle: function(val) {
_off = !val;
return this;
},
@@ -1083,9 +1082,9 @@ export default {
},
tileZoom: function(_) {
tileZoom: function(val) {
if (!arguments.length) return _tileZoom;
_tileZoom = _;
_tileZoom = val;
return this;
},
+1 -2
View File
@@ -1,4 +1,3 @@
import _extend from 'lodash-es/extend';
import _forEach from 'lodash-es/forEach';
import _union from 'lodash-es/union';
@@ -806,7 +805,7 @@ export default {
that.selectImage(d)
.then(function(r) {
if (r.status === 'ok') {
_sceneOptions = _extend(_sceneOptions, viewstate);
_sceneOptions = Object.assign(_sceneOptions, viewstate);
that.showViewer();
}
});
+4 -5
View File
@@ -1,5 +1,4 @@
import _debounce from 'lodash-es/debounce';
import _extend from 'lodash-es/extend';
import _forEach from 'lodash-es/forEach';
import _omit from 'lodash-es/omit';
@@ -218,7 +217,7 @@ export default {
keys: function(params, callback) {
var doRequest = params.debounce ? debouncedRequest : request;
params = clean(setSort(params));
params = _extend({
params = Object.assign({
rp: 10,
sortname: 'count_all',
sortorder: 'desc',
@@ -243,7 +242,7 @@ export default {
multikeys: function(params, callback) {
var doRequest = params.debounce ? debouncedRequest : request;
params = clean(setSort(params));
params = _extend({
params = Object.assign({
rp: 25,
sortname: 'count_all',
sortorder: 'desc',
@@ -276,7 +275,7 @@ export default {
var doRequest = params.debounce ? debouncedRequest : request;
params = clean(setSort(setFilter(params)));
params = _extend({
params = Object.assign({
rp: 25,
sortname: 'count_all',
sortorder: 'desc',
@@ -309,7 +308,7 @@ export default {
var doRequest = params.debounce ? debouncedRequest : request;
var geometry = params.geometry;
params = clean(setSortMembers(params));
params = _extend({
params = Object.assign({
rp: 25,
sortname: 'count_all_members',
sortorder: 'desc',
+2 -8
View File
@@ -1,16 +1,10 @@
import _extend from 'lodash-es/extend';
import {
geoIdentity as d3_geoIdentity,
geoPath as d3_geoPath,
geoStream as d3_geoStream
} from 'd3-geo';
import {
geoVecAdd,
geoVecAngle,
geoVecLength
} from '../geo';
import { geoVecAdd, geoVecAngle, geoVecLength } from '../geo';
// Touch targets control which other vertices we can drag a vertex onto.
@@ -206,7 +200,7 @@ export function svgRelationMemberTags(graph) {
graph.parentRelations(entity).forEach(function(relation) {
var type = relation.tags.type;
if ((type === 'multipolygon' && shouldCopyMultipolygonTags) || type === 'boundary') {
tags = _extend({}, relation.tags, tags);
tags = Object.assign({}, relation.tags, tags);
}
});
return tags;
+1 -3
View File
@@ -1,5 +1,3 @@
import _extend from 'lodash-es/extend';
import { dispatch as d3_dispatch } from 'd3-dispatch';
import {
@@ -17,7 +15,7 @@ import { utilRebind } from '../util';
export function uiField(context, presetField, entity, options) {
options = _extend({
options = Object.assign({
show: true,
wrap: true,
remove: true,
+1 -2
View File
@@ -1,4 +1,3 @@
import _extend from 'lodash-es/extend';
import _filter from 'lodash-es/filter';
import _groupBy from 'lodash-es/groupBy';
@@ -54,7 +53,7 @@ export function uiRawMembershipEditor(context) {
if (oldRole !== newRole) {
_inChange = true;
context.perform(
actionChangeMember(d.relation.id, _extend({}, d.member, { role: newRole }), d.index),
actionChangeMember(d.relation.id, Object.assign({}, d.member, { role: newRole }), d.index),
t('operations.change_role.annotation')
);
}