From 605894b4e5d2ab3c7cbb0c0ea17c32e4bb3c6d8d Mon Sep 17 00:00:00 2001 From: Kasper Date: Sun, 2 Apr 2023 20:16:33 +0200 Subject: [PATCH] Improve setup, revert to TypeScript 4 svelte-check doesn't support ts5 yet --- .eslintrc.cjs | 9 +---- .vscode/settings.json | 6 --- index.html | 2 - package-lock.json | 63 ++++++++++-------------------- package.json | 6 +-- src/App.svelte | 4 +- src/components/PlaylistInfo.svelte | 2 +- src/components/Queue.svelte | 2 +- src/components/Sidebar.svelte | 6 ++- src/components/SidebarItems.svelte | 2 +- src/electron/menubar.ts | 2 +- src/lib/helpers.ts | 2 +- tsconfig.json | 19 +-------- vite.config.mjs | 8 ++-- 14 files changed, 43 insertions(+), 90 deletions(-) delete mode 100644 .vscode/settings.json diff --git a/.eslintrc.cjs b/.eslintrc.cjs index cc2d70a..e906334 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -5,16 +5,11 @@ module.exports = { plugins: ['svelte3', '@typescript-eslint'], overrides: [{ files: ['*.svelte'], processor: 'svelte3/svelte3' }], settings: { - 'svelte3/typescript': true, - 'svelte3/ignore-styles': (attributes) => { - // https://github.com/sveltejs/eslint-plugin-svelte3/issues/10 - return attributes && attributes.lang && attributes.lang !== 'css' - }, - 'svelte3/ignore-warnings': () => true, // svelte-check used instead + 'svelte3/typescript': () => require('typescript'), }, parserOptions: { sourceType: 'module', - ecmaVersion: 2019, + ecmaVersion: 2020, }, env: { browser: true, diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 5053f97..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "svelte.plugin.svelte.compilerWarnings": { - "a11y-click-events-have-key-events": "ignore", - "a11y-no-noninteractive-tabindex": "ignore" - } -} diff --git a/index.html b/index.html index 6bf8f9d..04dec11 100755 --- a/index.html +++ b/index.html @@ -5,8 +5,6 @@ - - diff --git a/package-lock.json b/package-lock.json index 8eb8de3..7dd0f2d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "devDependencies": { "@napi-rs/cli": "^2.15.2", "@sveltejs/vite-plugin-svelte": "^2.0.4", - "@types/wicg-mediasession": "^1.1.4", + "@tsconfig/svelte": "^3.0.0", "@typescript-eslint/eslint-plugin": "^5.57.0", "@typescript-eslint/parser": "^5.57.0", "concurrently": "^8.0.1", @@ -26,7 +26,7 @@ "svelte": "^3.58.0", "svelte-check": "^3.1.4", "svelte-preprocess": "^5.0.3", - "typescript": "^5.0.3", + "typescript": "^4.9.5", "vite": "^4.2.1", "vite-plugin-electron": "^0.11.1", "vite-plugin-externals": "^0.6.2" @@ -778,6 +778,12 @@ "node": ">= 10" } }, + "node_modules/@tsconfig/svelte": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-3.0.0.tgz", + "integrity": "sha512-pYrtLtOwku/7r1i9AMONsJMVYAtk3hzOfiGNekhtq5tYBGA7unMve8RvUclKLMT3PrihvJqUmzsRGh0RP84hKg==", + "dev": true + }, "node_modules/@types/debug": { "version": "4.1.7", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", @@ -862,12 +868,6 @@ "dev": true, "optional": true }, - "node_modules/@types/wicg-mediasession": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@types/wicg-mediasession/-/wicg-mediasession-1.1.4.tgz", - "integrity": "sha512-x6qWKaAoae/yjKThSsFeZ4SP6036zLrYUOx3Mg1BrbUR38FiKQetWO8owq261XXkdsLg52PyQ2/BZ8Wy038woQ==", - "dev": true - }, "node_modules/@types/yargs": { "version": "17.0.24", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", @@ -4773,19 +4773,6 @@ "svelte": "^3.55.0" } }, - "node_modules/svelte-check/node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, "node_modules/svelte-hmr": { "version": "0.15.1", "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.1.tgz", @@ -5080,16 +5067,16 @@ "dev": true }, "node_modules/typescript": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.3.tgz", - "integrity": "sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=12.20" + "node": ">=4.2.0" } }, "node_modules/universalify": { @@ -5844,6 +5831,12 @@ "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "dev": true }, + "@tsconfig/svelte": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@tsconfig/svelte/-/svelte-3.0.0.tgz", + "integrity": "sha512-pYrtLtOwku/7r1i9AMONsJMVYAtk3hzOfiGNekhtq5tYBGA7unMve8RvUclKLMT3PrihvJqUmzsRGh0RP84hKg==", + "dev": true + }, "@types/debug": { "version": "4.1.7", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.7.tgz", @@ -5928,12 +5921,6 @@ "dev": true, "optional": true }, - "@types/wicg-mediasession": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@types/wicg-mediasession/-/wicg-mediasession-1.1.4.tgz", - "integrity": "sha512-x6qWKaAoae/yjKThSsFeZ4SP6036zLrYUOx3Mg1BrbUR38FiKQetWO8owq261XXkdsLg52PyQ2/BZ8Wy038woQ==", - "dev": true - }, "@types/yargs": { "version": "17.0.24", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.24.tgz", @@ -8836,14 +8823,6 @@ "sade": "^1.7.4", "svelte-preprocess": "^5.0.0", "typescript": "^4.9.4" - }, - "dependencies": { - "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true - } } }, "svelte-hmr": { @@ -9044,9 +9023,9 @@ "dev": true }, "typescript": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.3.tgz", - "integrity": "sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA==", + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", "dev": true }, "universalify": { diff --git a/package.json b/package.json index 586cb0f..ec9fbf3 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "build": "npm run napi && npm run build:web && electron-builder", "build:web": "vite build", "electron-builder": "electron-builder", - "lint": "prettier --check --plugin-search-dir=. src && svelte-check && eslint src", + "lint": "prettier --check --plugin-search-dir=. src && svelte-check --tsconfig ./tsconfig.json && eslint src", "format": "prettier --write --plugin-search-dir=. src && eslint --fix src", "check": "npm run lint && cargo check" }, @@ -64,7 +64,7 @@ "devDependencies": { "@napi-rs/cli": "^2.15.2", "@sveltejs/vite-plugin-svelte": "^2.0.4", - "@types/wicg-mediasession": "^1.1.4", + "@tsconfig/svelte": "^3.0.0", "@typescript-eslint/eslint-plugin": "^5.57.0", "@typescript-eslint/parser": "^5.57.0", "concurrently": "^8.0.1", @@ -80,7 +80,7 @@ "svelte": "^3.58.0", "svelte-check": "^3.1.4", "svelte-preprocess": "^5.0.3", - "typescript": "^5.0.3", + "typescript": "^4.9.5", "vite": "^4.2.1", "vite-plugin-electron": "^0.11.1", "vite-plugin-externals": "^0.6.2" diff --git a/src/App.svelte b/src/App.svelte index 3d5e22d..ecbf4ae 100755 --- a/src/App.svelte +++ b/src/App.svelte @@ -5,11 +5,11 @@ import Player from './components/Player.svelte' import Sidebar from './components/Sidebar.svelte' import Queue from './components/Queue.svelte' - import TrackInfo, { TrackInfoList } from './components/TrackInfo.svelte' + import TrackInfo, { type TrackInfoList } from './components/TrackInfo.svelte' import PlaylistInfoModal from './components/PlaylistInfo.svelte' import { queueVisible } from './lib/queue' import { ipcListen, ipcRenderer } from '@/lib/window' - import { isMac, importTracks, PlaylistInfo, methods } from './lib/data' + import { isMac, importTracks, type PlaylistInfo, methods } from './lib/data' import { playPause } from './lib/player' import DragGhost from './components/DragGhost.svelte' import ItunesImport from './components/ItunesImport.svelte' diff --git a/src/components/PlaylistInfo.svelte b/src/components/PlaylistInfo.svelte index c0f137c..2465c8d 100644 --- a/src/components/PlaylistInfo.svelte +++ b/src/components/PlaylistInfo.svelte @@ -1,6 +1,6 @@