From 97aa6cd24eb686110af310469d0f783caa30d8d7 Mon Sep 17 00:00:00 2001 From: Nick Bland Date: Fri, 19 Apr 2024 16:48:42 +1000 Subject: [PATCH] ESLint + Add in ESLint support, with TS and Svelte included. ~ Resolve typing issues in both countdown, and in the healthcheck endpoint --- .prettierrc | 1 + bun.lockb | Bin 167770 -> 174372 bytes eslint.config.js | 37 ++++++++++++++++++++++++++ package.json | 21 ++++++++------- src/components/countdown.svelte | 2 +- src/routes/api/healthcheck/+server.ts | 6 ++--- svelte.config.js | 4 +-- 7 files changed, 55 insertions(+), 16 deletions(-) create mode 100644 eslint.config.js diff --git a/.prettierrc b/.prettierrc index 6701bb1..0e6b46b 100644 --- a/.prettierrc +++ b/.prettierrc @@ -3,6 +3,7 @@ "singleQuote": false, "printWidth": 90, "plugins": ["prettier-plugin-svelte"], + "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }], "semi": true, "svelteSortOrder": "options-styles-scripts-markup", "svelteStrictMode": false, diff --git a/bun.lockb b/bun.lockb index 2d477febca8521490b54331392bea42680a52bea..46b545f1da7768ab8c31cc9e8d6370e54d56c516 100755 GIT binary patch delta 37096 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 delta 34141 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 Lm7)K_H{<^U7Y-6w diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..9e1c70f --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,37 @@ +import globals from "globals"; +import js from "@eslint/js"; +import eslintConfigPrettier from "eslint-config-prettier"; +import tsEslint from "typescript-eslint"; +import eslintPluginSvelte from "eslint-plugin-svelte"; +import svelteParser from "svelte-eslint-parser"; + +export default tsEslint.config( + js.configs.recommended, + ...tsEslint.configs.recommended, + ...eslintPluginSvelte.configs["flat/recommended"], + eslintConfigPrettier, + ...eslintPluginSvelte.configs["flat/prettier"], + { + files: ["**/*.svelte"], + languageOptions: { + ecmaVersion: 2022, + sourceType: "module", + globals: { ...globals.node, ...globals.browser }, + parser: svelteParser, + parserOptions: { + parser: tsEslint.parser, + extraFileExtensions: [".svelte"], + }, + }, + }, + { + ignores: [ + "**/.svelte-kit", + "**/.vercel", + "**/.yarn", + "**/build", + "**/node_modules", + "**/package", + ], + }, +); diff --git a/package.json b/package.json index 9111082..51440d8 100644 --- a/package.json +++ b/package.json @@ -8,29 +8,32 @@ "preview": "vite preview", "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json", "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch", - "lint": "prettier --check . && eslint .", + "lint": "eslint './src/**/*.{js,ts,svelte}' --fix", "format": "prettier --write ." }, "devDependencies": { + "@eslint/js": "^9.0.0", "@sveltejs/adapter-auto": "^3.2.0", - "@sveltejs/kit": "^2.5.5", - "@sveltejs/vite-plugin-svelte": "^3.0.2", - "@typescript-eslint/eslint-plugin": "^7.5.0", - "@typescript-eslint/parser": "^7.5.0", + "@sveltejs/kit": "^2.5.6", + "@sveltejs/vite-plugin-svelte": "^3.1.0", "autoprefixer": "^10.4.19", "daisyui": "latest", "eslint": "^9.0.0", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-svelte": "^2.36.0", + "eslint-plugin-svelte": "^2.37.0", + "globals": "^15.0.0", "postcss": "^8.4.38", "prettier": "^3.2.5", "prettier-plugin-svelte": "^3.2.3", - "svelte": "^4.2.12", + "svelte": "^4.2.15", "svelte-check": "^3.6.9", + "svelte-eslint-parser": "^0.34.1", + "svelte-preprocess": "^5.1.4", "tailwindcss": "^3.4.3", "tslib": "^2.6.2", - "typescript": "^5.4.4", - "vite": "^5.2.8" + "typescript": "^5.4.5", + "typescript-eslint": "^7.7.0", + "vite": "^5.2.9" }, "type": "module" } diff --git a/src/components/countdown.svelte b/src/components/countdown.svelte index 2ed3341..da7322b 100644 --- a/src/components/countdown.svelte +++ b/src/components/countdown.svelte @@ -2,7 +2,7 @@ import { onMount } from "svelte"; const GRADUATION = new Date(1753797600000).valueOf(); - let interval: NodeJS.Timer; + let interval: ReturnType; let timeTo = Math.abs(GRADUATION - Date.now().valueOf()) / 1000; diff --git a/src/routes/api/healthcheck/+server.ts b/src/routes/api/healthcheck/+server.ts index ef99279..3f8b648 100644 --- a/src/routes/api/healthcheck/+server.ts +++ b/src/routes/api/healthcheck/+server.ts @@ -1,5 +1,3 @@ -import type { RequestHandler } from "./$types"; - -export const GET: RequestHandler = ({ url }) => { +export function GET() { return new Response(); -}; +} diff --git a/svelte.config.js b/svelte.config.js index 84b8c1a..d9c597d 100644 --- a/svelte.config.js +++ b/svelte.config.js @@ -1,11 +1,11 @@ import adapter from "@sveltejs/adapter-auto"; -import { vitePreprocess } from "@sveltejs/vite-plugin-svelte"; +import sveltePreprocess from "svelte-preprocess"; /** @type {import('@sveltejs/kit').Config} */ const config = { // Consult https://kit.svelte.dev/docs/integrations#preprocessors // for more information about preprocessors - preprocess: vitePreprocess(), + preprocess: sveltePreprocess(), kit: { // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.