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

View file

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

View file

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

View file

@ -1,6 +1,5 @@
"use strict";
var _ = require("lodash");
var identd = require("../../identd");
var Msg = require("../../models/msg");
var Chan = require("../../models/chan");
@ -24,7 +23,7 @@ module.exports = function(irc, network) {
var delay = 1000;
var commands = network.commands;
if (Array.isArray(commands)) {
commands.forEach(function(cmd) {
commands.forEach(cmd => {
setTimeout(function() {
client.input({
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) {
return;
}
@ -114,7 +113,7 @@ module.exports = function(irc, network) {
network.prefixLookup = {};
_.each(data.options.PREFIX, function(mode) {
data.options.PREFIX.forEach(mode => {
network.prefixLookup[mode.mode] = mode.symbol;
});

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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