Merge pull request #689 from thelounge/astorije/es5-es6-love

Replace lodash's each/map with ES5 native forEach/map
This commit is contained in:
Jérémie Astori 2016-10-15 16:32:56 -04:00 committed by GitHub
commit 5598da73d9
11 changed files with 28 additions and 54 deletions

View File

@ -54,9 +54,7 @@ var inputs = [
].reduce(function(plugins, name) { ].reduce(function(plugins, name) {
var path = "./plugins/inputs/" + name; var path = "./plugins/inputs/" + name;
var plugin = require(path); var plugin = require(path);
plugin.commands.forEach(function(command) { plugin.commands.forEach(command => plugins[command] = plugin);
plugins[command] = plugin;
});
return plugins; return plugins;
}, {}); }, {});
@ -83,7 +81,7 @@ function Client(manager, name, config) {
} }
var delay = 0; var delay = 0;
(client.config.networks || []).forEach(function(n) { (client.config.networks || []).forEach(n => {
setTimeout(function() { setTimeout(function() {
client.connect(n); client.connect(n);
}, delay); }, delay);
@ -150,7 +148,7 @@ Client.prototype.connect = function(args) {
if (args.channels) { if (args.channels) {
var badName = false; var badName = false;
args.channels.forEach(function(chan) { args.channels.forEach(chan => {
if (!chan.name) { if (!chan.name) {
badName = true; badName = true;
return; return;
@ -248,7 +246,7 @@ Client.prototype.connect = function(args) {
"znc.in/self-message", "znc.in/self-message",
]); ]);
events.forEach(function(plugin) { events.forEach(plugin => {
var path = "./plugins/irc-events/" + plugin; var path = "./plugins/irc-events/" + plugin;
require(path).apply(client, [ require(path).apply(client, [
network.irc, network.irc,
@ -311,7 +309,7 @@ Client.prototype.setPassword = function(hash, callback) {
Client.prototype.input = function(data) { Client.prototype.input = function(data) {
var client = this; var client = this;
data.text.split("\n").forEach(function(line) { data.text.split("\n").forEach(line => {
data.text = line; data.text = line;
client.inputLine(data); client.inputLine(data);
}); });
@ -387,7 +385,7 @@ Client.prototype.sort = function(data) {
switch (type) { switch (type) {
case "networks": case "networks":
_.each(order, function(i) { order.forEach(i => {
var find = _.find(self.networks, {id: i}); var find = _.find(self.networks, {id: i});
if (find) { if (find) {
sorted.push(find); sorted.push(find);
@ -402,7 +400,7 @@ Client.prototype.sort = function(data) {
if (!network) { if (!network) {
return; return;
} }
_.each(order, function(i) { order.forEach(i => {
var find = _.find(network.channels, {id: i}); var find = _.find(network.channels, {id: i});
if (find) { if (find) {
sorted.push(find); sorted.push(find);
@ -437,7 +435,7 @@ Client.prototype.quit = function() {
socket.disconnect(); socket.disconnect();
} }
} }
this.networks.forEach(function(network) { this.networks.forEach(network => {
if (network.irc) { if (network.irc) {
network.irc.quit("Page closed"); network.irc.quit("Page closed");
} }
@ -460,14 +458,7 @@ Client.prototype.save = function(force) {
return; return;
} }
var networks = _.map(
this.networks,
function(n) {
return n.export();
}
);
var json = {}; var json = {};
json.networks = networks; json.networks = this.networks.map(n => n.export());
client.manager.updateUser(client.name, json); client.manager.updateUser(client.name, json);
}; };

View File

@ -54,7 +54,7 @@ ClientManager.prototype.getUsers = function() {
var users = []; var users = [];
try { try {
var files = fs.readdirSync(Helper.USERS_PATH); var files = fs.readdirSync(Helper.USERS_PATH);
files.forEach(function(file) { files.forEach(file => {
if (file.indexOf(".json") !== -1) { if (file.indexOf(".json") !== -1) {
users.push(file.replace(".json", "")); users.push(file.replace(".json", ""));
} }
@ -143,16 +143,12 @@ ClientManager.prototype.removeUser = function(name) {
ClientManager.prototype.autoload = function(/* sockets */) { ClientManager.prototype.autoload = function(/* sockets */) {
var self = this; var self = this;
setInterval(function() { setInterval(function() {
var loaded = _.map( var loaded = self.clients.map(c => c.name);
self.clients,
"name"
);
var added = _.difference(self.getUsers(), loaded); var added = _.difference(self.getUsers(), loaded);
_.each(added, function(name) { added.forEach(name => self.loadUser(name));
self.loadUser(name);
});
var removed = _.difference(loaded, self.getUsers()); var removed = _.difference(loaded, self.getUsers());
_.each(removed, function(name) { removed.forEach(name => {
var client = _.find( var client = _.find(
self.clients, { self.clients, {
name: name name: name

View File

@ -59,7 +59,7 @@ Chan.prototype.pushMessage = function(client, msg) {
Chan.prototype.sortUsers = function(irc) { Chan.prototype.sortUsers = function(irc) {
var userModeSortPriority = {}; var userModeSortPriority = {};
irc.network.options.PREFIX.forEach(function(prefix, index) { irc.network.options.PREFIX.forEach((prefix, index) => {
userModeSortPriority[prefix.symbol] = index; userModeSortPriority[prefix.symbol] = index;
}); });

View File

@ -1,6 +1,5 @@
"use strict"; "use strict";
var _ = require("lodash");
var identd = require("../../identd"); var identd = require("../../identd");
var Msg = require("../../models/msg"); var Msg = require("../../models/msg");
var Chan = require("../../models/chan"); var Chan = require("../../models/chan");
@ -24,7 +23,7 @@ module.exports = function(irc, network) {
var delay = 1000; var delay = 1000;
var commands = network.commands; var commands = network.commands;
if (Array.isArray(commands)) { if (Array.isArray(commands)) {
commands.forEach(function(cmd) { commands.forEach(cmd => {
setTimeout(function() { setTimeout(function() {
client.input({ client.input({
target: network.channels[0].id, target: network.channels[0].id,
@ -35,7 +34,7 @@ module.exports = function(irc, network) {
}); });
} }
network.channels.forEach(function(chan) { network.channels.forEach(chan => {
if (chan.type !== Chan.Type.CHANNEL) { if (chan.type !== Chan.Type.CHANNEL) {
return; return;
} }
@ -114,7 +113,7 @@ module.exports = function(irc, network) {
network.prefixLookup = {}; network.prefixLookup = {};
_.each(data.options.PREFIX, function(mode) { data.options.PREFIX.forEach(mode => {
network.prefixLookup[mode.mode] = mode.symbol; network.prefixLookup[mode.mode] = mode.symbol;
}); });

View File

@ -1,6 +1,5 @@
"use strict"; "use strict";
var _ = require("lodash");
var cheerio = require("cheerio"); var cheerio = require("cheerio");
var Msg = require("../../models/msg"); var Msg = require("../../models/msg");
var request = require("request"); var request = require("request");
@ -16,13 +15,10 @@ module.exports = function(irc, network) {
return; return;
} }
var links = []; const links = data.message
var split = data.message.replace(/\x02|\x1D|\x1F|\x16|\x0F|\x03(?:[0-9]{1,2}(?:,[0-9]{1,2})?)?/g, "").split(" "); .replace(/\x02|\x1D|\x1F|\x16|\x0F|\x03(?:[0-9]{1,2}(?:,[0-9]{1,2})?)?/g, "")
_.each(split, function(w) { .split(" ")
if (/^https?:\/\//.test(w)) { .filter(w => /^https?:\/\//.test(w));
links.push(w);
}
});
if (links.length === 0) { if (links.length === 0) {
return; return;

View File

@ -22,7 +22,7 @@ module.exports = function(irc, network) {
var supportsMultiPrefix = network.irc.network.cap.isEnabled("multi-prefix"); var supportsMultiPrefix = network.irc.network.cap.isEnabled("multi-prefix");
var userModeSortPriority = {}; var userModeSortPriority = {};
irc.network.options.PREFIX.forEach(function(prefix, index) { irc.network.options.PREFIX.forEach((prefix, index) => {
userModeSortPriority[prefix.symbol] = index; userModeSortPriority[prefix.symbol] = index;
}); });

View File

@ -8,7 +8,7 @@ module.exports = function(irc, network) {
var lobby = network.channels[0]; var lobby = network.channels[0];
if (data.motd) { if (data.motd) {
data.motd.split("\n").forEach(function(text) { data.motd.split("\n").forEach(text => {
var msg = new Msg({ var msg = new Msg({
type: Msg.Type.MOTD, type: Msg.Type.MOTD,
text: text text: text

View File

@ -1,6 +1,5 @@
"use strict"; "use strict";
var _ = require("lodash");
var User = require("../../models/user"); var User = require("../../models/user");
module.exports = function(irc, network) { module.exports = function(irc, network) {
@ -11,13 +10,7 @@ module.exports = function(irc, network) {
return; return;
} }
chan.users = []; chan.users = data.users.map(u => new User(u, network.prefixLookup));
_.each(data.users, function(u) {
var user = new User(u, network.prefixLookup);
chan.users.push(user);
});
chan.sortUsers(irc); chan.sortUsers(irc);

View File

@ -24,7 +24,7 @@ module.exports = function(irc, network) {
}); });
} }
network.channels.forEach(function(chan) { network.channels.forEach(chan => {
var user = _.find(chan.users, {name: data.nick}); var user = _.find(chan.users, {name: data.nick});
if (typeof user === "undefined") { if (typeof user === "undefined") {
return; return;

View File

@ -6,7 +6,7 @@ var Msg = require("../../models/msg");
module.exports = function(irc, network) { module.exports = function(irc, network) {
var client = this; var client = this;
irc.on("quit", function(data) { irc.on("quit", function(data) {
network.channels.forEach(function(chan) { network.channels.forEach(chan => {
var from = data.nick; var from = data.nick;
var user = _.find(chan.users, {name: from}); var user = _.find(chan.users, {name: from});
if (typeof user === "undefined") { if (typeof user === "undefined") {

View File

@ -1,6 +1,5 @@
"use strict"; "use strict";
var _ = require("lodash");
var expect = require("chai").expect; var expect = require("chai").expect;
var Chan = require("../../src/models/chan"); var Chan = require("../../src/models/chan");
@ -24,7 +23,7 @@ describe("Chan", function() {
var prefixLookup = {}; var prefixLookup = {};
_.each(network.network.options.PREFIX, function(mode) { network.network.options.PREFIX.forEach(mode => {
prefixLookup[mode.mode] = mode.symbol; prefixLookup[mode.mode] = mode.symbol;
}); });