js: Convert _.filter(a, …) to a.filter(…).

And convert the corresponding function expressions to arrow style
while we’re here.

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
This commit is contained in:
Anders Kaseorg
2020-02-07 18:33:46 -08:00
committed by Tim Abbott
parent ac7b09d57e
commit 4948240619
22 changed files with 57 additions and 92 deletions

View File

@@ -56,9 +56,7 @@ exports.typeahead_source = function (pill_widget) {
exports.filter_taken_users = function (items, pill_widget) {
const taken_user_ids = exports.get_user_ids(pill_widget);
items = _.filter(items, function (item) {
return !taken_user_ids.includes(item.user_id);
});
items = items.filter(item => !taken_user_ids.includes(item.user_id));
return items;
};
```

View File

@@ -746,9 +746,7 @@ run_test('updates', () => {
const all_people = get_all_persons();
assert.equal(all_people.length, 2);
person = _.filter(all_people, function (p) {
return p.email === new_email;
})[0];
person = all_people.filter(p => p.email === new_email)[0];
assert.equal(person.full_name, 'Foo Barson');
// Test shim where we can still retrieve user info using the

View File

@@ -465,9 +465,7 @@ run_test('add_and_remove_reaction', () => {
const result = reactions.get_message_reactions(message);
assert.equal(blueslip.get_test_logs('warn').length, 2);
blueslip.clear_test_data();
const realm_emoji_data = _.filter(result, function (v) {
return v.emoji_name === 'realm_emoji';
})[0];
const realm_emoji_data = result.filter(v => v.emoji_name === 'realm_emoji')[0];
assert.equal(realm_emoji_data.count, 2);
assert.equal(realm_emoji_data.is_realm_emoji, true);

View File

@@ -34,7 +34,7 @@ run_test('get_emoji_matcher', () => {
function assert_matches(query, expected) {
const matcher = typeahead.get_emoji_matcher(query);
assert.deepEqual(
_.filter(emojis, matcher),
emojis.filter(matcher),
expected
);
}

View File

@@ -288,7 +288,7 @@ function maybe_shrink_list(user_ids, filter_text) {
return user_ids;
}
user_ids = _.filter(user_ids, user_is_recently_active);
user_ids = user_ids.filter(user_is_recently_active);
return user_ids;
}
@@ -307,7 +307,7 @@ exports.get_filtered_and_sorted_user_ids = function (filter_text) {
user_ids = presence.get_user_ids();
}
user_ids = _.filter(user_ids, function (user_id) {
user_ids = user_ids.filter(user_id => {
const person = people.get_by_user_id(user_id);
if (!person) {

View File

@@ -427,7 +427,7 @@ exports.get_person_suggestions = function (query, opts) {
if (opts.want_broadcast) {
persons = persons.concat(exports.broadcast_mentions());
}
return _.filter(persons, person_matcher);
return persons.filter(person_matcher);
}
let groups;
@@ -438,7 +438,7 @@ exports.get_person_suggestions = function (query, opts) {
groups = [];
}
const filtered_groups = _.filter(groups, group_matcher);
const filtered_groups = groups.filter(group_matcher);
/*
Let's say you're on a big realm and type
@@ -536,9 +536,7 @@ exports.get_sorted_filtered_items = function (query) {
exports.filter_and_sort_candidates = function (completing, candidates, token) {
const matcher = exports.compose_content_matcher(completing, token);
const small_results = _.filter(candidates, function (item) {
return matcher(item);
});
const small_results = candidates.filter(item => matcher(item));
const sorted_results = exports.sort_results(completing, small_results, token);

View File

@@ -305,7 +305,7 @@ exports.launch = function () {
return draft_b.updatedAt - draft_a.updatedAt;
});
const sorted_formatted_drafts = _.filter(sorted_raw_drafts.map(exports.format_draft));
const sorted_formatted_drafts = sorted_raw_drafts.map(exports.format_draft).filter(Boolean);
return sorted_formatted_drafts;
}

View File

@@ -342,12 +342,15 @@ Filter.prototype = {
},
public_operators: function () {
const safe_to_return = _.filter(this._operators, function (value) {
const safe_to_return = this._operators.filter(
// Filter out the embedded narrow (if any).
return !(page_params.narrow_stream !== undefined &&
value =>
!(
page_params.narrow_stream !== undefined &&
value.operator === "stream" &&
value.operand.toLowerCase() === page_params.narrow_stream.toLowerCase());
});
value.operand.toLowerCase() === page_params.narrow_stream.toLowerCase()
)
);
return safe_to_return;
},

View File

@@ -16,9 +16,7 @@ exports.send_read = (function () {
let start;
function server_request() {
// Wait for server IDs before sending flags
const real_msgs = _.filter(queue, function (msg) {
return !msg.locally_echoed;
});
const real_msgs = queue.filter(msg => !msg.locally_echoed);
const real_msg_ids = real_msgs.map(msg => msg.id);
if (real_msg_ids.length === 0) {
@@ -48,9 +46,7 @@ exports.send_read = (function () {
return;
}
queue = _.filter(queue, function (message) {
return !data.messages.includes(message.id);
});
queue = queue.filter(message => !data.messages.includes(message.id));
if (queue.length > 0) {
start();

View File

@@ -156,14 +156,12 @@ MessageListData.prototype = {
valid_non_duplicated_messages: function (messages) {
const predicate = this._get_predicate();
const self = this;
return _.filter(messages, function (msg) {
return self.get(msg.id) === undefined && predicate(msg);
});
return messages.filter(msg => self.get(msg.id) === undefined && predicate(msg));
},
filter_incoming: function (messages) {
const predicate = this._get_predicate();
return _.filter(messages, predicate);
return messages.filter(predicate);
},
unmuted_messages: function (messages) {
@@ -345,13 +343,11 @@ MessageListData.prototype = {
msg_ids_to_remove[message.id] = true;
}
this._items = _.filter(this._items, function (message) {
return !msg_ids_to_remove.hasOwnProperty(message.id);
});
this._items = this._items.filter(message => !msg_ids_to_remove.hasOwnProperty(message.id));
if (this.muting_enabled) {
this._all_items = _.filter(this._all_items, function (message) {
return !msg_ids_to_remove.hasOwnProperty(message.id);
});
this._all_items = this._all_items.filter(
message => !msg_ids_to_remove.hasOwnProperty(message.id)
);
}
},

View File

@@ -143,7 +143,7 @@ exports.huddle_string = function (message) {
!exports.is_my_user_id(user_id);
}
user_ids = _.filter(user_ids, is_huddle_recip);
user_ids = user_ids.filter(is_huddle_recip);
if (user_ids.length <= 1) {
return;
@@ -273,7 +273,7 @@ exports.safe_full_names = function (user_ids) {
return person && person.full_name;
});
names = _.filter(names);
names = names.filter(Boolean);
return names.join(', ');
};
@@ -334,9 +334,7 @@ function sorted_other_user_ids(user_ids) {
// This excludes your own user id unless you're the only user
// (i.e. you sent a message to yourself).
const other_user_ids = _.filter(user_ids, function (user_id) {
return !exports.is_my_user_id(user_id);
});
const other_user_ids = user_ids.filter(user_id => !exports.is_my_user_id(user_id));
if (other_user_ids.length >= 1) {
user_ids = other_user_ids;
@@ -771,7 +769,7 @@ exports.get_people_for_search_bar = function (query) {
const message_people = exports.get_message_people();
const small_results = _.filter(message_people, pred);
const small_results = message_people.filter(pred);
if (small_results.length >= 5) {
return small_results;
@@ -1034,9 +1032,7 @@ exports.filter_for_user_settings_search = function (persons, query) {
See #13554 for more context.
*/
return _.filter(persons, (person) => {
return exports.matches_user_settings_search(person, query);
});
return persons.filter(person => exports.matches_user_settings_search(person, query));
};
exports.email_for_user_settings = function (person) {

View File

@@ -44,9 +44,9 @@ exports.schedule_message = function (request) {
const command_line = raw_message[0];
const message = raw_message.slice(1).join('\n');
const deferred_message_type = _.filter(deferred_message_types, function (props) {
return command_line.match(props.test) !== null;
})[0];
const deferred_message_type = deferred_message_types.filter(
props => command_line.match(props.test) !== null
)[0];
const command = command_line.match(deferred_message_type.test)[0];
const deliver_at = command_line.slice(command.length + 1);

View File

@@ -25,7 +25,7 @@ exports.check_record = function (var_name, val, fields) {
return f(field_name, val[field_name]);
});
const msg = _.filter(field_results).sort().join(', ');
const msg = field_results.filter(Boolean).sort().join(', ');
if (msg) {
return 'in ' + var_name + ' ' + msg;

View File

@@ -88,9 +88,7 @@ function get_stream_suggestions(last, operators) {
const query = last.operand;
let streams = stream_data.subscribed_streams();
streams = _.filter(streams, function (stream) {
return stream_matches_query(stream, query);
});
streams = streams.filter(stream => stream_matches_query(stream, query));
streams = typeahead_helper.sorter(query, streams);
@@ -348,9 +346,7 @@ function get_topic_suggestions(last, operators) {
topics = topics.slice(0, 300);
if (guess !== '') {
topics = _.filter(topics, function (topic) {
return common.phrase_match(guess, topic);
});
topics = topics.filter(topic => common.phrase_match(guess, topic));
}
topics = topics.slice(0, 10);
@@ -400,7 +396,7 @@ function get_special_filter_suggestions(last, operators, suggestions) {
}
const last_string = Filter.unparse([last]).toLowerCase();
suggestions = _.filter(suggestions, function (s) {
suggestions = suggestions.filter(s => {
if (match_criteria(operators, s.invalid)) {
return false;
}
@@ -575,9 +571,7 @@ function get_operator_suggestions(last) {
}
let choices = ['stream', 'topic', 'pm-with', 'sender', 'near', 'from', 'group-pm-with'];
choices = _.filter(choices, function (choice) {
return common.phrase_match(last_operand, choice);
});
choices = choices.filter(choice => common.phrase_match(last_operand, choice));
return choices.map(choice => {
const op = [{operator: choice, operand: '', negated: negated}];

View File

@@ -349,7 +349,7 @@ exports.get_invite_stream_data = function () {
// Since, union doesn't work on array of objects we are using filter
const is_included = {};
const streams = _.filter(default_stream_data.concat(invite_stream_data), function (sub) {
const streams = default_stream_data.concat(invite_stream_data).filter(sub => {
if (is_included[sub.name]) {
return false;
}
@@ -459,9 +459,7 @@ exports.all_subscribed_streams_are_in_home_view = function () {
};
exports.home_view_stream_names = function () {
const home_view_subs = _.filter(exports.subscribed_subs(), function (sub) {
return !sub.is_muted;
});
const home_view_subs = exports.subscribed_subs().filter(sub => !sub.is_muted);
return home_view_subs.map(sub => sub.name);
};

View File

@@ -17,16 +17,14 @@ function filter_streams_by_search(streams, search_term) {
let search_terms = search_term.toLowerCase().split(",");
search_terms = search_terms.map(s => s.trim());
const filtered_streams = _.filter(streams, function (stream) {
return _.any(search_terms, function (search_term) {
const filtered_streams = streams.filter(stream => _.any(search_terms, function (search_term) {
const lower_stream_name = stream.toLowerCase();
const cands = lower_stream_name.split(" ");
cands.push(lower_stream_name);
return _.any(cands, function (name) {
return name.startsWith(search_term);
});
});
});
}));
return filtered_streams;
}

View File

@@ -193,7 +193,7 @@ exports.next_topic = function (streams, get_topics, has_unread_messages, curr_st
exports.get_next_topic = function (curr_stream, curr_topic) {
let my_streams = stream_sort.get_streams();
my_streams = _.filter(my_streams, function (stream_name) {
my_streams = my_streams.filter(stream_name => {
if (!stream_data.is_stream_muted_by_name(stream_name)) {
return true;
}

View File

@@ -6,9 +6,7 @@ const IntDict = require('./int_dict').IntDict;
// For example, "a,,b, " => ["a", "b"]
exports.get_cleaned_pm_recipients = function (query_string) {
let recipients = util.extract_pm_recipients(query_string);
recipients = _.filter(recipients, function (elem) {
return elem.match(/\S/);
});
recipients = recipients.filter(elem => elem.match(/\S/));
return recipients;
};

View File

@@ -392,13 +392,11 @@ exports.message_unread = function (message) {
};
exports.get_unread_message_ids = function (message_ids) {
return _.filter(message_ids, message_id => unread_messages.has(message_id));
return message_ids.filter(message_id => unread_messages.has(message_id));
};
exports.get_unread_messages = function (messages) {
return _.filter(messages, function (message) {
return unread_messages.has(message.id);
});
return messages.filter(message => unread_messages.has(message.id));
};
exports.update_unread_topics = function (msg, event) {

View File

@@ -67,7 +67,7 @@ exports.append_person = function (opts) {
exports.get_user_ids = function (pill_widget) {
const items = pill_widget.items();
let user_ids = _.pluck(items, 'user_id');
user_ids = _.filter(user_ids); // be defensive about undefined users
user_ids = user_ids.filter(Boolean); // be defensive about undefined users
return user_ids;
};
@@ -94,9 +94,7 @@ exports.typeahead_source = function (pill_widget) {
exports.filter_taken_users = function (items, pill_widget) {
const taken_user_ids = exports.get_user_ids(pill_widget);
items = _.filter(items, function (item) {
return !taken_user_ids.includes(item.user_id);
});
items = items.filter(item => !taken_user_ids.includes(item.user_id));
return items;
};

View File

@@ -71,9 +71,7 @@ exports.is_pm_recipient = function (email, message) {
};
exports.extract_pm_recipients = function (recipients) {
return _.filter(recipients.split(/\s*[,;]\s*/), function (recipient) {
return recipient.trim() !== "";
});
return recipients.split(/\s*[,;]\s*/).filter(recipient => recipient.trim() !== "");
};
exports.same_recipient = function util_same_recipient(a, b) {
@@ -109,7 +107,7 @@ exports.normalize_recipients = function (recipients) {
// with exactly one comma and no spaces between each.
recipients = recipients.split(',').map(s => s.trim());
recipients = recipients.map(s => s.toLowerCase());
recipients = _.filter(recipients, function (s) { return s.length > 0; });
recipients = recipients.filter(s => s.length > 0);
recipients.sort();
return recipients.join(',');
};

View File

@@ -163,7 +163,7 @@ exports.sort_emojis = function (objs, query) {
decent_match(obj.emoji_name);
}
const popular_emoji_matches = _.filter(objs, is_popular);
const popular_emoji_matches = objs.filter(is_popular);
const others = _.reject(objs, is_popular);
const triage_results = exports.triage(