Switch from underscore to lodash

v1.18.x
Peter Jaszkowiak 8 years ago
parent 033c31719a
commit 3c2d4fe649

@ -45,6 +45,7 @@
"jquery": "^3.1.0", "jquery": "^3.1.0",
"json-2-csv": "^2.0.22", "json-2-csv": "^2.0.22",
"less": "^2.0.0", "less": "^2.0.0",
"lodash": "^4.17.4",
"lodash.padstart": "^4.6.1", "lodash.padstart": "^4.6.1",
"logrotate-stream": "^0.2.3", "logrotate-stream": "^0.2.3",
"lru-cache": "4.0.2", "lru-cache": "4.0.2",
@ -93,8 +94,6 @@
"templates.js": "0.3.10", "templates.js": "0.3.10",
"toobusy-js": "^0.5.1", "toobusy-js": "^0.5.1",
"uglify-js": "^3.0.11", "uglify-js": "^3.0.11",
"underscore": "^1.8.3",
"underscore.deep": "^0.5.1",
"validator": "7.0.0", "validator": "7.0.0",
"winston": "^2.1.0", "winston": "^2.1.0",
"xml": "^1.0.1", "xml": "^1.0.1",

@ -2,7 +2,7 @@
'use strict'; 'use strict';
var async = require('async'); var async = require('async');
var _ = require('underscore'); var _ = require('lodash');
var db = require('../database'); var db = require('../database');
var posts = require('../posts'); var posts = require('../posts');

@ -5,7 +5,7 @@ var winston = require('winston');
var passport = require('passport'); var passport = require('passport');
var nconf = require('nconf'); var nconf = require('nconf');
var validator = require('validator'); var validator = require('validator');
var _ = require('underscore'); var _ = require('lodash');
var db = require('../database'); var db = require('../database');
var meta = require('../meta'); var meta = require('../meta');

@ -6,12 +6,10 @@ var winston = require('winston');
var async = require('async'); var async = require('async');
var nconf = require('nconf'); var nconf = require('nconf');
var session = require('express-session'); var session = require('express-session');
var _ = require('underscore'); var _ = require('lodash');
var semver = require('semver'); var semver = require('semver');
var db; var db;
_.mixin(require('underscore.deep'));
var mongoModule = module.exports; var mongoModule = module.exports;
mongoModule.questions = [ mongoModule.questions = [
@ -87,7 +85,7 @@ mongoModule.init = function (callback) {
autoReconnect: true, autoReconnect: true,
}; };
connOptions = _.deepExtend(connOptions, nconf.get('mongo:options') || {}); connOptions = _.merge(connOptions, nconf.get('mongo:options') || {});
mongoClient.connect(connString, connOptions, function (err, _db) { mongoClient.connect(connString, connOptions, function (err, _db) {
if (err) { if (err) {

@ -1,6 +1,6 @@
'use strict'; 'use strict';
var _ = require('underscore'); var _ = require('lodash');
var async = require('async'); var async = require('async');
var winston = require('winston'); var winston = require('winston');
var nconf = require('nconf'); var nconf = require('nconf');
@ -9,8 +9,6 @@ var session = require('express-session');
var redis = require('redis'); var redis = require('redis');
var redisClient; var redisClient;
_.mixin(require('underscore.deep'));
var redisModule = module.exports; var redisModule = module.exports;
redisModule.questions = [ redisModule.questions = [
@ -78,7 +76,7 @@ redisModule.connect = function (options) {
options.auth_pass = nconf.get('redis:password'); options.auth_pass = nconf.get('redis:password');
} }
options = _.deepExtend(options, nconf.get('redis:options') || {}); options = _.merge(options, nconf.get('redis:options') || {});
if (redis_socket_or_host && redis_socket_or_host.indexOf('/') >= 0) { if (redis_socket_or_host && redis_socket_or_host.indexOf('/') >= 0) {
/* If redis.host contains a path name character, use the unix dom sock connection. ie, /tmp/redis.sock */ /* If redis.host contains a path name character, use the unix dom sock connection. ie, /tmp/redis.sock */

@ -1,6 +1,9 @@
'use strict'; 'use strict';
var async = require('async'); var async = require('async');
var _ = require('lodash');
var S = require('string');
var db = require('./database'); var db = require('./database');
var user = require('./user'); var user = require('./user');
var groups = require('./groups'); var groups = require('./groups');
@ -12,8 +15,6 @@ var posts = require('./posts');
var privileges = require('./privileges'); var privileges = require('./privileges');
var plugins = require('./plugins'); var plugins = require('./plugins');
var utils = require('../public/src/utils'); var utils = require('../public/src/utils');
var _ = require('underscore');
var S = require('string');
var Flags = module.exports; var Flags = module.exports;

@ -2,7 +2,7 @@
var async = require('async'); var async = require('async');
var winston = require('winston'); var winston = require('winston');
var _ = require('underscore'); var _ = require('lodash');
var user = require('../user'); var user = require('../user');
var utils = require('../utils'); var utils = require('../utils');
@ -456,7 +456,7 @@ module.exports = function (Groups) {
}, },
function (_members, next) { function (_members, next) {
members = _members; members = _members;
uniqueGroups = _.unique(_.flatten(members)); uniqueGroups = _.uniq(_.flatten(members));
uniqueGroups = Groups.removeEphemeralGroups(uniqueGroups); uniqueGroups = Groups.removeEphemeralGroups(uniqueGroups);
Groups.isMemberOfGroups(uid, uniqueGroups, next); Groups.isMemberOfGroups(uid, uniqueGroups, next);

@ -6,7 +6,7 @@ var async = require('async');
var fs = require('fs'); var fs = require('fs');
var mkdirp = require('mkdirp'); var mkdirp = require('mkdirp');
var rimraf = require('rimraf'); var rimraf = require('rimraf');
var _ = require('underscore'); var _ = require('lodash');
var file = require('../file'); var file = require('../file');
var Plugins = require('../plugins'); var Plugins = require('../plugins');

@ -5,7 +5,7 @@ var winston = require('winston');
var cron = require('cron').CronJob; var cron = require('cron').CronJob;
var nconf = require('nconf'); var nconf = require('nconf');
var S = require('string'); var S = require('string');
var _ = require('underscore'); var _ = require('lodash');
var db = require('./database'); var db = require('./database');
var User = require('./user'); var User = require('./user');
@ -247,7 +247,7 @@ Notifications.pushGroups = function (notification, groupNames, callback) {
groups.getMembersOfGroups(groupNames, next); groups.getMembersOfGroups(groupNames, next);
}, },
function (groupMembers, next) { function (groupMembers, next) {
var members = _.unique(_.flatten(groupMembers)); var members = _.uniq(_.flatten(groupMembers));
Notifications.push(notification, members, next); Notifications.push(notification, members, next);
}, },
], callback); ], callback);

@ -1,7 +1,7 @@
'use strict'; 'use strict';
var qs = require('querystring'); var qs = require('querystring');
var _ = require('underscore'); var _ = require('lodash');
var pagination = {}; var pagination = {};

@ -5,7 +5,7 @@ var semver = require('semver');
var async = require('async'); var async = require('async');
var winston = require('winston'); var winston = require('winston');
var nconf = require('nconf'); var nconf = require('nconf');
var _ = require('underscore'); var _ = require('lodash');
var meta = require('../meta'); var meta = require('../meta');

@ -1,7 +1,7 @@
'use strict'; 'use strict';
var async = require('async'); var async = require('async');
var _ = require('underscore'); var _ = require('lodash');
var db = require('./database'); var db = require('./database');
var utils = require('./utils'); var utils = require('./utils');

@ -2,7 +2,7 @@
'use strict'; 'use strict';
var async = require('async'); var async = require('async');
var _ = require('underscore'); var _ = require('lodash');
var db = require('../database'); var db = require('../database');
var topics = require('../topics'); var topics = require('../topics');

@ -1,7 +1,7 @@
'use strict'; 'use strict';
var async = require('async'); var async = require('async');
var _ = require('underscore'); var _ = require('lodash');
var meta = require('../meta'); var meta = require('../meta');
var db = require('../database'); var db = require('../database');

@ -1,7 +1,7 @@
'use strict'; 'use strict';
var async = require('async'); var async = require('async');
var _ = require('underscore'); var _ = require('lodash');
var db = require('../database'); var db = require('../database');
var topics = require('../topics'); var topics = require('../topics');

@ -2,7 +2,7 @@
var async = require('async'); var async = require('async');
var validator = require('validator'); var validator = require('validator');
var _ = require('underscore'); var _ = require('lodash');
var db = require('../database'); var db = require('../database');
var topics = require('../topics'); var topics = require('../topics');

@ -2,7 +2,7 @@
'use strict'; 'use strict';
var async = require('async'); var async = require('async');
var _ = require('underscore'); var _ = require('lodash');
var categories = require('../categories'); var categories = require('../categories');
var user = require('../user'); var user = require('../user');
@ -58,7 +58,7 @@ module.exports = function (privileges) {
}); });
}); });
var members = _.unique(_.flatten(memberSets)); var members = _.uniq(_.flatten(memberSets));
user.getUsersFields(members, ['picture', 'username'], next); user.getUsersFields(members, ['picture', 'username'], next);
}, },
@ -93,7 +93,7 @@ module.exports = function (privileges) {
}, },
function (results, next) { function (results, next) {
var memberSets = results.memberSets; var memberSets = results.memberSets;
var uniqueGroups = _.unique(_.flatten(memberSets)); var uniqueGroups = _.uniq(_.flatten(memberSets));
var groupNames = results.groupNames.filter(function (groupName) { var groupNames = results.groupNames.filter(function (groupName) {
return groupName.indexOf(':privileges:') === -1 && uniqueGroups.indexOf(groupName) !== -1; return groupName.indexOf(':privileges:') === -1 && uniqueGroups.indexOf(groupName) !== -1;
@ -171,7 +171,9 @@ module.exports = function (privileges) {
}, next); }, next);
}, },
function (results, next) { function (results, next) {
var privData = _.object(privs, results.privileges); var privData = _.fromPairs(privs.map(function (priv, i) {
return [priv, results.privileges[i]];
}));
var isAdminOrMod = results.isAdministrator || results.isModerator; var isAdminOrMod = results.isAdministrator || results.isModerator;
plugins.fireHook('filter:privileges.categories.get', { plugins.fireHook('filter:privileges.categories.get', {

@ -2,7 +2,7 @@
'use strict'; 'use strict';
var async = require('async'); var async = require('async');
var _ = require('underscore'); var _ = require('lodash');
var meta = require('../meta'); var meta = require('../meta');
var topics = require('../topics'); var topics = require('../topics');
@ -29,7 +29,9 @@ module.exports = function (privileges) {
}, next); }, next);
}, },
function (results, next) { function (results, next) {
var privData = _.object(privs, results.privileges); var privData = _.fromPairs(privs.map(function (priv, i) {
return [priv, results.privileges[i]];
}));
var disabled = parseInt(results.disabled, 10) === 1; var disabled = parseInt(results.disabled, 10) === 1;
var locked = parseInt(topic.locked, 10) === 1; var locked = parseInt(topic.locked, 10) === 1;
var deleted = parseInt(topic.deleted, 10) === 1; var deleted = parseInt(topic.deleted, 10) === 1;

@ -2,7 +2,7 @@
var async = require('async'); var async = require('async');
var validator = require('validator'); var validator = require('validator');
var _ = require('underscore'); var _ = require('lodash');
var S = require('string'); var S = require('string');
var posts = require('../../posts'); var posts = require('../../posts');
@ -69,7 +69,7 @@ module.exports = function (SocketPosts) {
], next); ], next);
}, },
function (results, next) { function (results, next) {
var uids = _.unique(_.flatten(results).concat(socket.uid.toString())); var uids = _.uniq(_.flatten(results).concat(socket.uid.toString()));
uids.forEach(function (uid) { uids.forEach(function (uid) {
websockets.in('uid_' + uid).emit('event:post_edited', editResult); websockets.in('uid_' + uid).emit('event:post_edited', editResult);
}); });

@ -1,7 +1,7 @@
'use strict'; 'use strict';
var async = require('async'); var async = require('async');
var _ = require('underscore'); var _ = require('lodash');
var db = require('./database'); var db = require('./database');
var posts = require('./posts'); var posts = require('./posts');
@ -135,8 +135,12 @@ Topics.getTopicsByTids = function (tids, uid, callback) {
}, next); }, next);
}, },
function (results, next) { function (results, next) {
var users = _.object(uids, results.users); var users = _.fromPairs(results.users.map(function (user) {
var categories = _.object(cids, results.categories); return [user.uid, user];
}));
var categories = _.fromPairs(results.categories.map(function (category) {
return [category.cid, category];
}));
for (var i = 0; i < topics.length; i += 1) { for (var i = 0; i < topics.length; i += 1) {
if (topics[i]) { if (topics[i]) {

@ -2,7 +2,7 @@
'use strict'; 'use strict';
var async = require('async'); var async = require('async');
var _ = require('underscore'); var _ = require('lodash');
var validator = require('validator'); var validator = require('validator');
var S = require('string'); var S = require('string');
var db = require('../database'); var db = require('../database');

@ -2,7 +2,7 @@
'use strict'; 'use strict';
var async = require('async'); var async = require('async');
var _ = require('underscore'); var _ = require('lodash');
var validator = require('validator'); var validator = require('validator');
var db = require('../database'); var db = require('../database');

@ -2,7 +2,7 @@
'use strict'; 'use strict';
var async = require('async'); var async = require('async');
var _ = require('underscore'); var _ = require('lodash');
var categories = require('../categories'); var categories = require('../categories');
var search = require('../search'); var search = require('../search');
@ -51,7 +51,7 @@ module.exports = function (Topics) {
}, next); }, next);
}, },
function (data, next) { function (data, next) {
next(null, _.unique(_.flatten(data))); next(null, _.uniq(_.flatten(data)));
}, },
], callback); ], callback);
} }

@ -5,7 +5,7 @@ var async = require('async');
var db = require('../database'); var db = require('../database');
var meta = require('../meta'); var meta = require('../meta');
var _ = require('underscore'); var _ = require('lodash');
var plugins = require('../plugins'); var plugins = require('../plugins');
var utils = require('../utils'); var utils = require('../utils');
@ -247,7 +247,9 @@ module.exports = function (Topics) {
tag.score = results.counts[index] ? results.counts[index] : 0; tag.score = results.counts[index] ? results.counts[index] : 0;
}); });
var tagData = _.object(uniqueTopicTags, results.tagData); var tagData = _.fromPairs(results.tagData.map(function (tag) {
return [tag.value, tag];
}));
topicTags.forEach(function (tags, index) { topicTags.forEach(function (tags, index) {
if (Array.isArray(tags)) { if (Array.isArray(tags)) {
@ -444,7 +446,7 @@ module.exports = function (Topics) {
}, next); }, next);
}, },
function (tids, next) { function (tids, next) {
tids = _.shuffle(_.unique(_.flatten(tids))).slice(0, maximumTopics); tids = _.shuffle(_.uniq(_.flatten(tids))).slice(0, maximumTopics);
Topics.getTopics(tids, uid, next); Topics.getTopics(tids, uid, next);
}, },
function (topics, next) { function (topics, next) {

@ -1,7 +1,7 @@
'use strict'; 'use strict';
var async = require('async'); var async = require('async');
var _ = require('underscore'); var _ = require('lodash');
var db = require('../database'); var db = require('../database');
var categories = require('../categories'); var categories = require('../categories');
@ -210,7 +210,7 @@ module.exports = function (Topics) {
Topics.getTopicsFields(tids, ['cid'], next); Topics.getTopicsFields(tids, ['cid'], next);
}, },
function (topicData, next) { function (topicData, next) {
var uniqueCids = _.unique(topicData.map(function (topicData) { var uniqueCids = _.uniq(topicData.map(function (topicData) {
return topicData && parseInt(topicData.cid, 10); return topicData && parseInt(topicData.cid, 10);
})); }));

@ -1,7 +1,7 @@
'use strict'; 'use strict';
var async = require('async'); var async = require('async');
var _ = require('underscore'); var _ = require('lodash');
var groups = require('./groups'); var groups = require('./groups');
var plugins = require('./plugins'); var plugins = require('./plugins');

@ -154,7 +154,7 @@ module.exports = function (User) {
}; };
User.auth.deleteAllSessions = function (callback) { User.auth.deleteAllSessions = function (callback) {
var _ = require('underscore'); var _ = require('lodash');
batch.processSortedSet('users:joindate', function (uids, next) { batch.processSortedSet('users:joindate', function (uids, next) {
var sessionKeys = uids.map(function (uid) { var sessionKeys = uids.map(function (uid) {
return 'uid:' + uid + ':sessions'; return 'uid:' + uid + ':sessions';

@ -1,7 +1,7 @@
'use strict'; 'use strict';
var async = require('async'); var async = require('async');
var _ = require('underscore'); var _ = require('lodash');
var validator = require('validator'); var validator = require('validator');
var db = require('../database'); var db = require('../database');

@ -2,7 +2,7 @@
'use strict'; 'use strict';
var async = require('async'); var async = require('async');
var _ = require('underscore'); var _ = require('lodash');
var meta = require('../meta'); var meta = require('../meta');
var db = require('../database'); var db = require('../database');

Loading…
Cancel
Save