Enable eslint eqeqeq rule (#1579)

The [eqeqeq rule][1] allows us to ban potentially confusing usage of the
type-coercing `==` equality operator. I've set it to allow `== null`, and
to disallow any other use of `==`.

Alongside activating the rule, I've fixed 16 violations. Inspired by
[review of #1560][2].

Test plan: `yarn test` passes.

[1]: https://eslint.org/docs/rules/eqeqeq
[2]: https://github.com/sourcecred/sourcecred/pull/1560#discussion_r368331081
This commit is contained in:
Dandelion Mané 2020-01-19 20:20:15 -08:00 committed by GitHub
parent 90c76a5023
commit f5a44a5a4f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 17 additions and 16 deletions

View File

@ -22,6 +22,7 @@ module.exports = {
],
rules: {
camelcase: ["error", {properties: "never", allow: ["^_unused_.*"]}],
eqeqeq: ["error", "always", {null: "ignore"}],
"no-unused-vars": [
"warn",
{

View File

@ -63,7 +63,7 @@ export function distributionToCred(
);
const intervalNormalizer =
intervalTotalScore == 0 ? 0 : intervalWeight / intervalTotalScore;
intervalTotalScore === 0 ? 0 : intervalWeight / intervalTotalScore;
const cred = distribution.map((x) => x * intervalNormalizer);
return {interval, cred};
});

View File

@ -61,7 +61,7 @@ const command: Command = async (args, std) => {
return 0;
}
case "--weights": {
if (weightsPath != undefined)
if (weightsPath != null)
return die(std, "'--weights' given multiple times");
if (++i >= args.length)
return die(std, "'--weights' given without value");

View File

@ -97,7 +97,7 @@ export const genProject: Command = async (args, std) => {
break;
}
case "--discourse-url": {
if (discourseUrl != undefined)
if (discourseUrl != null)
return die(std, "'--discourse-url' given multiple times");
if (++i >= args.length)
return die(std, "'--discourse-url' given without value");

View File

@ -84,7 +84,7 @@ const loadCommand: Command = async (args, std) => {
return 0;
}
case "--weights": {
if (weightsPath != undefined)
if (weightsPath != null)
return die(std, "'--weights' given multiple times");
if (++i >= args.length)
return die(std, "'--weights' given without value");

View File

@ -298,7 +298,7 @@ export class Fetcher implements Discourse {
const {topic_list: topicList} = await response.json();
// Having the same amount of results as expected by pagination, assume there's another page.
morePages = topicList.per_page == topicList.topics.length;
morePages = topicList.per_page === topicList.topics.length;
for (const jsonTopic of topicList.topics) {
const topic = parseLatestTopic(jsonTopic);

View File

@ -229,7 +229,7 @@ class MockFetcher implements Discourse {
this._topicToPostIds.set(topicId, []);
// Add to category.
if (categoryId != undefined) {
if (categoryId != null) {
this._topicToCategory.set(topicId, categoryId);
}
@ -330,7 +330,7 @@ class MockFetcher implements Discourse {
}
this._topicToPostIds.set(
oldPost.topicId,
postList.filter((pid) => pid != postId)
postList.filter((pid) => pid !== postId)
);
this._posts.delete(postId);
}
@ -886,7 +886,7 @@ describe("plugins/discourse/mirror", () => {
targetUsername: string,
offset: number
) => {
if (targetUsername == "credbot") return null;
if (targetUsername === "credbot") return null;
return await _likesByUser(targetUsername, offset);
};
await mirror.update(reporter);

View File

@ -20,7 +20,7 @@ export function fromRelationalViews(
for (const view of views) {
for (const [url, addr] of view.urlReferenceMap().entries()) {
const existing = map.get(url);
if (existing && existing != addr) {
if (existing && existing !== addr) {
throw new Error(dedent`\
An entry for ${url} already existed, but with a different NodeAddressT.
This is probably a bug with SourceCred. Please report it on GitHub.

View File

@ -528,7 +528,7 @@ export class RelationalView {
const addr = N.toRaw(e.address());
const url = e.url();
const existing = refToAddress.get(url);
if (existing && existing != addr) {
if (existing && existing !== addr) {
throw new Error(dedent`\
An entry for ${url} already existed, but with a different NodeAddressT.
This is probably a bug with SourceCred. Please report it on GitHub.

View File

@ -26,13 +26,13 @@ export function validateToken(token: string): GithubToken {
if (matches != null) {
const [_, version, hexCode] = matches;
if (version != "v1") {
if (version !== "v1") {
console.warn(
`Warning: GitHub installation access token has an unexpected version "${version}".`
);
}
if (hexCode.length != 40) {
if (hexCode.length !== 40) {
console.warn(
`Warning: GitHub installation access token has an unexpected hexadecimal component ` +
`length of ${hexCode.length}.`

View File

@ -131,7 +131,7 @@ class MockDiscourseQueries implements DiscourseQueries {
}
postsInTopic(topicId: TopicId, numberOfPosts: number): $ReadOnlyArray<Post> {
if (numberOfPosts != 1) {
if (numberOfPosts !== 1) {
throw new Error(
"MockDiscourseQueries doesn't support anything but 1 for numberOfPosts"
);

View File

@ -114,11 +114,11 @@ export function formatTimeElapsed(elapsed: MsSinceEpoch): string {
}
const seconds = Math.round(elapsed / 1000);
const minutes = Math.floor(seconds / 60);
if (minutes == 0) return `${seconds}s`;
if (minutes === 0) return `${seconds}s`;
const hours = Math.floor(minutes / 60);
if (hours == 0) return `${minutes}m ${seconds % 60}s`;
if (hours === 0) return `${minutes}m ${seconds % 60}s`;
const days = Math.floor(hours / 24);
if (days == 0) return `${hours}h ${minutes % 60}m`;
if (days === 0) return `${hours}h ${minutes % 60}m`;
return `${days}d ${hours % 24}h`;
}