From 306df5be5a2d665ddf6500b65987c3712929de9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Wed, 13 Sep 2017 19:16:08 +0200 Subject: [PATCH] Replace underscore's function by ES6 equivalents --- lib/cartodb/models/dataview/aggregation.js | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/lib/cartodb/models/dataview/aggregation.js b/lib/cartodb/models/dataview/aggregation.js index 8ba8621f..5cddac18 100644 --- a/lib/cartodb/models/dataview/aggregation.js +++ b/lib/cartodb/models/dataview/aggregation.js @@ -1,4 +1,3 @@ -var _ = require('underscore'); var BaseWidget = require('./base'); var debug = require('debug')('windshaft:widget:aggregation'); @@ -153,11 +152,13 @@ const TYPE = 'aggregation'; } */ function Aggregation(query, options, queries) { - if (!_.isString(options.column)) { + options = options || {}; + + if (typeof options.column !== 'string') { throw new Error('Aggregation expects `column` in widget options'); } - if (!_.isString(options.aggregation)) { + if (typeof options.aggregation !== 'string') { throw new Error('Aggregation expects `aggregation` operation in widget options'); } @@ -166,7 +167,8 @@ function Aggregation(query, options, queries) { } var requiredOptions = VALID_OPERATIONS[options.aggregation]; - var missingOptions = _.difference(requiredOptions, Object.keys(options)); + var missingOptions = requiredOptions.filter(requiredOption => !options.hasOwnProperty(requiredOption)); + if (missingOptions.length > 0) { throw new Error( "Aggregation '" + options.aggregation + "' is missing some options: " + missingOptions.join(',') @@ -315,11 +317,7 @@ Aggregation.prototype.format = function(result) { minValue = firstRow.min_val; maxValue = firstRow.max_val; categoriesCount = firstRow.categories_count; - - result.rows.forEach(function(row) { - categories.push(_.omit(row, 'count', 'nulls_count', 'min_val', - 'max_val', 'categories_count', 'nans_count', 'infinities_count')); - }); + categories = result.rows.map(({ category, value, agg }) => ({ category, value, agg })); } return {