Skip to content

Commit fc7a72a

Browse files
benmccannetimberg
authored andcommitted
Remove helpers.where and unnecessary calls to helpers.each (#6860)
* Remove unnecessary calls to helpers.each * Remove where
1 parent 2bef1e9 commit fc7a72a

File tree

10 files changed

+21
-33
lines changed

10 files changed

+21
-33
lines changed

docs/getting-started/v3-migration.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ Chart.js 3.0 introduces a number of breaking changes. Chart.js 2.0 was released
6666
* `helpers.removeEvent`
6767
* `helpers.roundedRect`
6868
* `helpers.scaleMerge`
69+
* `helpers.where`
6970
* `Chart.Controller`
7071
* `Chart.chart.chart`
7172
* `Chart.types`

src/controllers/controller.polarArea.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ module.exports = DatasetController.extend({
221221
var meta = this._cachedMeta;
222222
var count = 0;
223223

224-
helpers.each(meta.data, function(element, index) {
224+
meta.data.forEach(function(element, index) {
225225
if (!isNaN(dataset.data[index]) && !element.hidden) {
226226
count++;
227227
}

src/core/core.datasetController.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ function listenArrayEvents(array, listener) {
3636
var args = Array.prototype.slice.call(arguments);
3737
var res = base.apply(this, args);
3838

39-
helpers.each(array._chartjs.listeners, function(object) {
39+
array._chartjs.listeners.forEach(function(object) {
4040
if (typeof object[method] === 'function') {
4141
object[method].apply(object, args);
4242
}

src/core/core.layouts.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ var extend = helpers.extend;
88
const STATIC_POSITIONS = ['left', 'top', 'right', 'bottom'];
99

1010
function filterByPosition(array, position) {
11-
return helpers.where(array, v => v.pos === position);
11+
return array.filter(v => v.pos === position);
1212
}
1313

1414
function filterDynamicPositionByAxis(array, axis) {
15-
return helpers.where(array, v => STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);
15+
return array.filter(v => STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);
1616
}
1717

1818
function sortByWeight(array, reverse) {

src/helpers/index.js

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -48,20 +48,6 @@ export default {
4848
math,
4949
rtl,
5050

51-
where: function(collection, filterCallback) {
52-
if (coreHelpers.isArray(collection) && Array.prototype.filter) {
53-
return collection.filter(filterCallback);
54-
}
55-
var filtered = [];
56-
57-
coreHelpers.each(collection, function(item) {
58-
if (filterCallback(item)) {
59-
filtered.push(item);
60-
}
61-
});
62-
63-
return filtered;
64-
},
6551
findIndex: Array.prototype.findIndex ?
6652
function(array, callback, scope) {
6753
return array.findIndex(callback, scope);

src/index.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@ Chart.Ticks = require('./core/core.ticks');
2222
Chart.Tooltip = require('./core/core.tooltip');
2323

2424
// Register built-in scales
25-
var scales = require('./scales');
26-
Chart.helpers.each(scales, function(scale, type) {
25+
const scales = require('./scales');
26+
Object.keys(scales).forEach(function(type) {
27+
const scale = scales[type];
2728
Chart.scaleService.registerScaleType(type, scale, scale._defaults);
2829
});
2930

src/platforms/platform.dom.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ function watchForRender(node, handler) {
216216
}
217217
};
218218

219-
helpers.each(ANIMATION_START_EVENTS, function(type) {
219+
ANIMATION_START_EVENTS.forEach(function(type) {
220220
addListener(node, type, proxy);
221221
});
222222

@@ -235,7 +235,7 @@ function unwatchForRender(node) {
235235
var proxy = expando.renderProxy;
236236

237237
if (proxy) {
238-
helpers.each(ANIMATION_START_EVENTS, function(type) {
238+
ANIMATION_START_EVENTS.forEach(function(type) {
239239
removeListener(node, type, proxy);
240240
});
241241

@@ -382,23 +382,24 @@ module.exports = {
382382
},
383383

384384
releaseContext: function(context) {
385-
var canvas = context.canvas;
385+
const canvas = context.canvas;
386386
if (!canvas[EXPANDO_KEY]) {
387387
return;
388388
}
389389

390-
var initial = canvas[EXPANDO_KEY].initial;
390+
const initial = canvas[EXPANDO_KEY].initial;
391391
['height', 'width'].forEach(function(prop) {
392-
var value = initial[prop];
392+
const value = initial[prop];
393393
if (helpers.isNullOrUndef(value)) {
394394
canvas.removeAttribute(prop);
395395
} else {
396396
canvas.setAttribute(prop, value);
397397
}
398398
});
399399

400-
helpers.each(initial.style || {}, function(value, key) {
401-
canvas.style[key] = value;
400+
const style = initial.style || {};
401+
Object.keys(style).forEach(function(key) {
402+
canvas.style[key] = style[key];
402403
});
403404

404405
// The canvas render size might have been changed (and thus the state stack discarded),

src/plugins/plugin.legend.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ class Legend extends Element {
274274
ctx.textAlign = 'left';
275275
ctx.textBaseline = 'middle';
276276

277-
helpers.each(me.legendItems, function(legendItem, i) {
277+
me.legendItems.forEach(function(legendItem, i) {
278278
var boxWidth = getBoxWidth(labelOpts, fontSize);
279279
var width = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;
280280

@@ -304,7 +304,7 @@ class Legend extends Element {
304304
var currentColWidth = 0;
305305
var currentColHeight = 0;
306306

307-
helpers.each(me.legendItems, function(legendItem, i) {
307+
me.legendItems.forEach(function(legendItem, i) {
308308
var boxWidth = getBoxWidth(labelOpts, fontSize);
309309
var itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;
310310

@@ -471,7 +471,7 @@ class Legend extends Element {
471471
helpers.rtl.overrideTextDirection(me.ctx, opts.textDirection);
472472

473473
var itemHeight = fontSize + labelOpts.padding;
474-
helpers.each(me.legendItems, function(legendItem, i) {
474+
me.legendItems.forEach(function(legendItem, i) {
475475
var textWidth = ctx.measureText(legendItem.text).width;
476476
var width = boxWidth + (fontSize / 2) + textWidth;
477477
var x = cursor.x;

src/scales/scale.radialLinear.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,7 @@ class RadialLinearScale extends LinearScaleBase {
448448
}
449449

450450
if (gridLineOpts.display) {
451-
helpers.each(me.ticks, function(tick, index) {
451+
me.ticks.forEach(function(tick, index) {
452452
if (index !== 0) {
453453
offset = me.getDistanceFromCenterForValue(me._tickValues[index]);
454454
drawRadiusLine(me, gridLineOpts, offset, index);
@@ -503,7 +503,7 @@ class RadialLinearScale extends LinearScaleBase {
503503
ctx.textAlign = 'center';
504504
ctx.textBaseline = 'middle';
505505

506-
helpers.each(me.ticks, function(tick, index) {
506+
me.ticks.forEach(function(tick, index) {
507507
if (index === 0 && !opts.reverse) {
508508
return;
509509
}

test/specs/core.helpers.tests.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ describe('Core helper tests', function() {
1111
var callback = function(item) {
1212
return item > 2;
1313
};
14-
expect(helpers.where(data, callback)).toEqual([6, 7]);
1514
expect(helpers.findNextWhere(data, callback)).toEqual(6);
1615
expect(helpers.findNextWhere(data, callback, 2)).toBe(7);
1716
expect(helpers.findNextWhere(data, callback, 4)).toBe(undefined);

0 commit comments

Comments
 (0)