From 36f4478a4f10cb1e8f7b33ebb5d097dd028b9399 Mon Sep 17 00:00:00 2001 From: Vendicated Date: Thu, 20 Oct 2022 11:58:20 +0200 Subject: [PATCH] more eslint --- .eslintrc.json | 22 ++++++++++++++++++- scripts/patcher/common.js | 12 +++++----- .../components/SettingBooleanComponent.tsx | 2 +- .../components/SettingNumericComponent.tsx | 2 +- .../components/SettingSelectComponent.tsx | 2 +- .../components/SettingSliderComponent.tsx | 2 +- .../components/SettingTextComponent.tsx | 2 +- src/plugins/anonymiseFileNames.ts | 2 +- src/plugins/experiments.tsx | 2 +- src/plugins/moyai.ts | 2 +- src/plugins/pronoundb/utils.ts | 2 +- src/plugins/uwuify.ts | 4 ++-- src/plugins/viewIcons.tsx | 2 +- 13 files changed, 39 insertions(+), 19 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 0807154..3d216f4 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -35,6 +35,26 @@ "no-constant-condition": ["error", { "checkLoops": false }], "no-duplicate-imports": "error", "no-extra-semi": "error", - "consistent-return": ["error", { "treatUndefinedAsUnspecified": true }] + "consistent-return": ["warn", { "treatUndefinedAsUnspecified": true }], + "dot-notation": "error", + "no-useless-escape": "error", + "no-fallthrough": "error", + "for-direction": "error", + "no-async-promise-executor": "error", + "no-cond-assign": "error", + "no-dupe-else-if": "error", + "no-duplicate-case": "error", + "no-irregular-whitespace": "error", + "no-loss-of-precision": "error", + "no-misleading-character-class": "error", + "no-prototype-builtins": "error", + "no-regex-spaces": "error", + "no-shadow-restricted-names": "error", + "no-unexpected-multiline": "error", + "no-unsafe-optional-chaining": "error", + "no-useless-backreference": "error", + "use-isnan": "error", + "prefer-const": "error", + "prefer-spread": "error" } } diff --git a/scripts/patcher/common.js b/scripts/patcher/common.js index f750601..7a41772 100644 --- a/scripts/patcher/common.js +++ b/scripts/patcher/common.js @@ -72,7 +72,7 @@ function question(question) { } async function getMenuItem(installations) { - let menuItems = installations.map(info => ({ + const menuItems = installations.map(info => ({ title: info.patched ? "[MODIFIED] " + info.location : info.location, info, })); @@ -126,7 +126,7 @@ function getWindowsDirs() { .filter(file => file.name.startsWith("app-")) .map(file => path.join(location, file.name)); - let versions = []; + const versions = []; let patched = false; for (const fqAppDir of appDirs) { @@ -140,7 +140,7 @@ function getWindowsDirs() { } versions.push({ path: appDir, - name: /app-([0-9\.]+)/.exec(fqAppDir)[1], + name: /app-([0-9.]+)/.exec(fqAppDir)[1], }); } @@ -173,7 +173,7 @@ function getDarwinDirs() { .filter(file => file.name.startsWith("Resources")) .map(file => path.join(location, file.name)); - let versions = []; + const versions = []; let patched = false; for (const resourceDir of appDirs) { @@ -248,7 +248,7 @@ function getLinuxDirs() { .map(file => path.join(location, file.name)); } - let versions = []; + const versions = []; let patched = false; for (const resourceDir of appDirs) { @@ -260,7 +260,7 @@ function getLinuxDirs() { patched = true; } - const version = /app-([0-9\.]+)/.exec(resourceDir); + const version = /app-([0-9.]+)/.exec(resourceDir); versions.push({ path: appDir, diff --git a/src/components/PluginSettings/components/SettingBooleanComponent.tsx b/src/components/PluginSettings/components/SettingBooleanComponent.tsx index 939ca70..2267996 100644 --- a/src/components/PluginSettings/components/SettingBooleanComponent.tsx +++ b/src/components/PluginSettings/components/SettingBooleanComponent.tsx @@ -18,7 +18,7 @@ export function SettingBooleanComponent({ option, pluginSettings, id, onChange, ]; function handleChange(newValue: boolean): void { - let isValid = (option.isValid && option.isValid(newValue)) ?? true; + const isValid = (option.isValid && option.isValid(newValue)) ?? true; if (typeof isValid === "string") setError(isValid); else if (!isValid) setError("Invalid input provided."); else { diff --git a/src/components/PluginSettings/components/SettingNumericComponent.tsx b/src/components/PluginSettings/components/SettingNumericComponent.tsx index a54d281..f5cc566 100644 --- a/src/components/PluginSettings/components/SettingNumericComponent.tsx +++ b/src/components/PluginSettings/components/SettingNumericComponent.tsx @@ -18,7 +18,7 @@ export function SettingNumericComponent({ option, pluginSettings, id, onChange, }, [error]); function handleChange(newValue) { - let isValid = (option.isValid && option.isValid(newValue)) ?? true; + const isValid = (option.isValid && option.isValid(newValue)) ?? true; if (typeof isValid === "string") setError(isValid); else if (!isValid) setError("Invalid input provided."); else if (option.type === OptionType.NUMBER && BigInt(newValue) >= MAX_SAFE_NUMBER) { diff --git a/src/components/PluginSettings/components/SettingSelectComponent.tsx b/src/components/PluginSettings/components/SettingSelectComponent.tsx index 20ff7a5..ede15e5 100644 --- a/src/components/PluginSettings/components/SettingSelectComponent.tsx +++ b/src/components/PluginSettings/components/SettingSelectComponent.tsx @@ -13,7 +13,7 @@ export function SettingSelectComponent({ option, pluginSettings, onChange, onErr }, [error]); function handleChange(newValue) { - let isValid = (option.isValid && option.isValid(newValue)) ?? true; + const isValid = (option.isValid && option.isValid(newValue)) ?? true; if (typeof isValid === "string") setError(isValid); else if (!isValid) setError("Invalid input provided."); else { diff --git a/src/components/PluginSettings/components/SettingSliderComponent.tsx b/src/components/PluginSettings/components/SettingSliderComponent.tsx index 64466c1..c11f4ec 100644 --- a/src/components/PluginSettings/components/SettingSliderComponent.tsx +++ b/src/components/PluginSettings/components/SettingSliderComponent.tsx @@ -20,7 +20,7 @@ export function SettingSliderComponent({ option, pluginSettings, id, onChange, o }, [error]); function handleChange(newValue: number): void { - let isValid = (option.isValid && option.isValid(newValue)) ?? true; + const isValid = (option.isValid && option.isValid(newValue)) ?? true; if (typeof isValid === "string") setError(isValid); else if (!isValid) setError("Invalid input provided."); else { diff --git a/src/components/PluginSettings/components/SettingTextComponent.tsx b/src/components/PluginSettings/components/SettingTextComponent.tsx index 898f66b..b93bcd8 100644 --- a/src/components/PluginSettings/components/SettingTextComponent.tsx +++ b/src/components/PluginSettings/components/SettingTextComponent.tsx @@ -11,7 +11,7 @@ export function SettingInputComponent({ option, pluginSettings, id, onChange, on }, [error]); function handleChange(newValue) { - let isValid = (option.isValid && option.isValid(newValue)) ?? true; + const isValid = (option.isValid && option.isValid(newValue)) ?? true; if (typeof isValid === "string") setError(isValid); else if (!isValid) setError("Invalid input provided."); else { diff --git a/src/plugins/anonymiseFileNames.ts b/src/plugins/anonymiseFileNames.ts index 962b966..4fa60db 100644 --- a/src/plugins/anonymiseFileNames.ts +++ b/src/plugins/anonymiseFileNames.ts @@ -49,7 +49,7 @@ export default definePlugin({ anonymise(file: string) { let name = "image"; - const ext = file.match(/\..+$/g) ?? ""; + const ext = file.match(/\..+$/g)?.[0] ?? ""; switch (Settings.plugins.AnonymiseFileNames.method) { case Methods.Random: const chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; diff --git a/src/plugins/experiments.tsx b/src/plugins/experiments.tsx index dde08a4..0b23aff 100644 --- a/src/plugins/experiments.tsx +++ b/src/plugins/experiments.tsx @@ -30,7 +30,7 @@ export default definePlugin({ }, }, { find: ".isStaff=function(){", - predicate: () => Settings.plugins["Experiments"].enableIsStaff === true, + predicate: () => Settings.plugins.Experiments.enableIsStaff === true, replacement: [ { match: /return\s*(\w+)\.hasFlag\((.+?)\.STAFF\)}/, diff --git a/src/plugins/moyai.ts b/src/plugins/moyai.ts index e3f5db9..3bb7f2e 100644 --- a/src/plugins/moyai.ts +++ b/src/plugins/moyai.ts @@ -111,7 +111,7 @@ function countMatches(sourceString: string, pattern: RegExp) { const customMoyaiRe = //gi; function getMoyaiCount(message: string) { - let count = countOccurrences(message, MOYAI) + const count = countOccurrences(message, MOYAI) + countMatches(message, customMoyaiRe); return Math.min(count, 10); diff --git a/src/plugins/pronoundb/utils.ts b/src/plugins/pronoundb/utils.ts index 9d3c076..24a55da 100644 --- a/src/plugins/pronoundb/utils.ts +++ b/src/plugins/pronoundb/utils.ts @@ -38,7 +38,7 @@ async function bulkFetchPronouns(ids: string[]): Promise { params.append("ids", ids.join(",")); try { - const req = await fetch("https://pronoundb.org/api/v1/lookup-bulk?" + params, { + const req = await fetch("https://pronoundb.org/api/v1/lookup-bulk?" + params.toString(), { method: "GET", headers: { "Accept": "application/json" diff --git a/src/plugins/uwuify.ts b/src/plugins/uwuify.ts index 2cf0f76..5135c5a 100644 --- a/src/plugins/uwuify.ts +++ b/src/plugins/uwuify.ts @@ -31,14 +31,14 @@ function uwuify(message: string): string { .split(" ") .map(w => { let owofied = false; - let lowerCase = w.toLowerCase(); + const lowerCase = w.toLowerCase(); // return if the word is too short - uwuifying short words makes them unreadable if (w.length < 4) { return w; } // replacing the words based on the array on line 29 - for (let [find, replace] of replacements) { + for (const [find, replace] of replacements) { if (w.includes(find)) { w = w.replace(find, replace); owofied = true; diff --git a/src/plugins/viewIcons.tsx b/src/plugins/viewIcons.tsx index ca106ae..d747a03 100644 --- a/src/plugins/viewIcons.tsx +++ b/src/plugins/viewIcons.tsx @@ -49,7 +49,7 @@ export default definePlugin({ replace: (m, guild) => `_guild=${guild},${m}` }, { - match: /(?<=createElement\((.{1,5}),\{id:"leave-guild".{0,100}\,)(.{1,2}\.createElement)\((.{1,5}),null,(.{1,2})\)(?=\)\}function)/, + match: /(?<=createElement\((.{1,5}),\{id:"leave-guild".{0,100},)(.{1,2}\.createElement)\((.{1,5}),null,(.{1,2})\)(?=\)\}function)/, replace: (_, menu, createElement, menuGroup, copyIdElement) => `${createElement}(${menuGroup},null,[` + `_guild.icon&&${createElement}(${menu},` +