From c50ed2b0c491ee42a96293a64f045117bdae0cfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1niel=20K=C3=A1ntor?= Date: Sat, 10 Apr 2021 15:33:20 +0200 Subject: [PATCH] chore: improve eslint config --- .eslintrc.js | 11 ++- apps/web/cypress/plugins/index.js | 1 + .../web/src/components/ChallengeScreen.svelte | 2 +- apps/web/src/components/GitHubButton.svelte | 1 + .../web/src/components/SkillCard/index.svelte | 1 + apps/web/src/db/db.js | 1 + apps/web/src/db/live.js | 1 + apps/web/src/routes/devtools.svelte | 2 + apps/web/src/routes/login.svelte | 2 +- apps/web/src/routes/sign-up-success.svelte | 2 +- apps/web/src/routes/sign-up.svelte | 2 +- package.json | 2 + yarn.lock | 72 ++++++++++++++++++- 13 files changed, 93 insertions(+), 7 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index a766407d6232..0fa7f93e4029 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,4 +1,5 @@ module.exports = { + parser: "@typescript-eslint/parser", ignorePatterns: ["node_modules/"], env: { browser: true, @@ -7,7 +8,10 @@ module.exports = { "jest/globals": true, "cypress/globals": true, }, - extends: ["eslint:recommended"], + extends: [ + "eslint:recommended", + "plugin:@typescript-eslint/recommended", + ], globals: { Atomics: "readonly", SharedArrayBuffer: "readonly", @@ -16,8 +20,9 @@ module.exports = { parserOptions: { ecmaVersion: 2020, sourceType: "module", + extraFileExtensions: [".svelte"] }, - plugins: ["svelte3", "jest", "cypress"], + plugins: ["svelte3", "jest", "cypress", '@typescript-eslint'], overrides: [ { files: ["**/*.svelte"], @@ -31,6 +36,7 @@ module.exports = { }, ], rules: { + "@typescript-eslint/no-unused-vars": "error", indent: ["error", 4], "linebreak-style": ["error", "unix"], quotes: ["error", "double"], @@ -38,6 +44,7 @@ module.exports = { }, settings: { "svelte3/ignore-styles": () => true, + "svelte3/typescript": require("typescript"), }, } diff --git a/apps/web/cypress/plugins/index.js b/apps/web/cypress/plugins/index.js index d867f3baa22a..96d8b1250391 100644 --- a/apps/web/cypress/plugins/index.js +++ b/apps/web/cypress/plugins/index.js @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ // *********************************************************** // This example plugins/index.js can be used to load plugins // diff --git a/apps/web/src/components/ChallengeScreen.svelte b/apps/web/src/components/ChallengeScreen.svelte index 5e99ae415ca3..c4fe425701dc 100644 --- a/apps/web/src/components/ChallengeScreen.svelte +++ b/apps/web/src/components/ChallengeScreen.svelte @@ -10,7 +10,7 @@ import shuffle from "lodash.shuffle" import { fade, scale } from "svelte/transition" // TODO: deal with this ignore comment - // eslint-disable-next-line no-unused-vars + // eslint-disable-next-line @typescript-eslint/no-unused-vars import db from "../db/db" export let rawChallenges diff --git a/apps/web/src/components/GitHubButton.svelte b/apps/web/src/components/GitHubButton.svelte index affa09fd8bb8..eef29a33ab4a 100644 --- a/apps/web/src/components/GitHubButton.svelte +++ b/apps/web/src/components/GitHubButton.svelte @@ -13,6 +13,7 @@ import { onMount } from "svelte" import Icon from "lluis/Icon" import Button from "lluis/Button" + // eslint-disable-next-line @typescript-eslint/no-var-requires const pMemoize = require("p-memoize") export let stars = (process.browser === true ? window.stars : null) || " " export let size = "small" diff --git a/apps/web/src/components/SkillCard/index.svelte b/apps/web/src/components/SkillCard/index.svelte index 09958ecd9d98..8f6cdd05f070 100644 --- a/apps/web/src/components/SkillCard/index.svelte +++ b/apps/web/src/components/SkillCard/index.svelte @@ -29,6 +29,7 @@ started = stats.started stale = stats.stale && completed }) + // eslint-disable-next-line @typescript-eslint/no-empty-function .catch(() => {}) ) }) diff --git a/apps/web/src/db/db.js b/apps/web/src/db/db.js index a4e89a3acbef..3922d44ff2d3 100644 --- a/apps/web/src/db/db.js +++ b/apps/web/src/db/db.js @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-var-requires */ import settings from "../settings" import getUserDbName from "./getUserDbName" import Cookies from "js-cookie" diff --git a/apps/web/src/db/live.js b/apps/web/src/db/live.js index 4f8583640670..f57526eb5777 100644 --- a/apps/web/src/db/live.js +++ b/apps/web/src/db/live.js @@ -3,6 +3,7 @@ import db from "./db" export default (listener) => { listener(db) if (process.browser === true && process.env.JEST_WORKER_ID === undefined) { + // eslint-disable-next-line @typescript-eslint/no-var-requires const authStore = require("../auth").default authStore.subscribe(() => listener(db)) } diff --git a/apps/web/src/routes/devtools.svelte b/apps/web/src/routes/devtools.svelte index 55f375f637fc..0c943e275959 100644 --- a/apps/web/src/routes/devtools.svelte +++ b/apps/web/src/routes/devtools.svelte @@ -1,7 +1,9 @@