RIFT-15726 - optimize download size -> lodash usage in UI
- Isolate specific lodash utilities to be included
- covert usage of underscore library to lodash
- did not make changes to backend api
Change-Id: Ic2fb75c0f25e35dee179c3603ab8f714e51e32af
Signed-off-by: Bob Gallagher <bob.gallagher@riftio.com>
diff --git a/skyquake/framework/utils/rw.js b/skyquake/framework/utils/rw.js
index 1cca8f2..0c280c1 100644
--- a/skyquake/framework/utils/rw.js
+++ b/skyquake/framework/utils/rw.js
@@ -30,6 +30,11 @@
* ['c', 'd']
*/
+import _isNumber from 'lodash/isNumber';
+import _each from 'lodash/each';
+import _flatten from 'lodash/flatten';
+import _union from 'lodash/union';
+
var rw = rw || {
// Angular specific for now but can be modified in one location if need ever be
BaseController: function() {
@@ -304,7 +309,7 @@
},
sum : function(total, i, key, value) {
- if (_.isNumber(value)) {
+ if (_isNumber(value)) {
total[key] = (i === 0 ? value : (total[key] + value));
}
},
@@ -312,7 +317,7 @@
sum2 : function(key) {
return function(prev, cur, i) {
var value = cur[key];
- if (_.isNumber(value)) {
+ if (_isNumber(value)) {
if (typeof(prev) === 'undefined') {
return value;
} else {
@@ -326,7 +331,7 @@
max : function(key) {
return function(prev, cur, i) {
var value = cur[key];
- if (_.isNumber(value)) {
+ if (_isNumber(value)) {
if (typeof(prev) === 'undefined') {
return value;
} else if (prev < value) {
@@ -370,7 +375,7 @@
operation(total, i, key, value);
};
for (i = 0; i < rows.length; i++) {
- _.each(rows[i], f);
+ _each(rows[i], f);
}
}
};
@@ -702,10 +707,10 @@
rw.vnf = {
ports: function(service) {
- return _.flatten(jsonPath.eval(service, '$.connector[*].interface[*].port'));
+ return _flatten(jsonPath.eval(service, '$.connector[*].interface[*].port'));
},
fabricPorts: function(service) {
- return _.flatten(jsonPath.eval(service, '$.vm[*].fabric.port'));
+ return _flatten(jsonPath.eval(service, '$.vm[*].fabric.port'));
}
};
@@ -749,7 +754,7 @@
}
var i = 0;
var self = this;
- _.each(children, function(child) {
+ _each(children, function(child) {
self.visit.call(self, child, parent, i, listType);
i += 1;
});
@@ -759,7 +764,7 @@
rw.vcs = {
allVms : function() {
- return _.flatten([this.jpath('$.collection[*].vm'), this.jpath('$.collection[*].collection[*].vm')], true);
+ return _flatten([this.jpath('$.collection[*].vm'), this.jpath('$.collection[*].collection[*].vm')], true);
},
vms: function(n) {
@@ -826,7 +831,7 @@
getChildren: function(n) {
switch (rw.vcs.nodeType(n)) {
case 'rwcolony':
- return 'vm' in n ? _.union(n.collection, n.vm) : n.collection;
+ return 'vm' in n ? _union(n.collection, n.vm) : n.collection;
case 'rwcluster':
return n.vm;
case 'RWVM':
@@ -838,7 +843,7 @@
},
jpath : function(jpath, n) {
- return _.flatten(jsonPath.eval(n || this, jpath), true);
+ return _flatten(jsonPath.eval(n || this, jpath), true);
}
};
diff --git a/skyquake/framework/utils/utils.js b/skyquake/framework/utils/utils.js
index e8e9ad1..fc6b592 100644
--- a/skyquake/framework/utils/utils.js
+++ b/skyquake/framework/utils/utils.js
@@ -18,9 +18,9 @@
//Login needs to be refactored. Too many cross dependencies
var AuthActions = require('../widgets/login/loginAuthActions.js');
var $ = require('jquery');
-var rw = require('utils/rw.js');
+import rw from './rw.js';
var API_SERVER = rw.getSearchParams(window.location).api_server;
-let NODE_PORT = require('utils/rw.js').getSearchParams(window.location).api_port || ((window.location.protocol == 'https:') ? 8443 : 8000);
+let NODE_PORT = rw.getSearchParams(window.location).api_port || ((window.location.protocol == 'https:') ? 8443 : 8000);
var SockJS = require('sockjs-client');
var Utils = {};