diff --git a/.eslintrc.base.cjs b/.eslintrc.base.cjs index cc1941bf..47220c26 100644 --- a/.eslintrc.base.cjs +++ b/.eslintrc.base.cjs @@ -29,13 +29,22 @@ const typescriptRule = { allowBoolean: true, allowAny: true, }], + '@typescript-eslint/no-misused-promises': [ + 'error', + { + checksVoidReturn: { + arguments: false, + attributes: false, + }, + }, + ], '@typescript-eslint/naming-convention': 'off', '@typescript-eslint/return-await': 'off', '@typescript-eslint/ban-ts-comment': 'off', '@typescript-eslint/comma-dangle': 'off', } const vueRule = { - ...baseRule, + ...typescriptRule, 'vue/multi-word-component-names': 'off', 'vue/max-attributes-per-line': 'off', 'vue/singleline-html-element-content-newline': 'off', diff --git a/.ncurc.js b/.ncurc.js index 89101f82..267a7453 100644 --- a/.ncurc.js +++ b/.ncurc.js @@ -6,9 +6,8 @@ module.exports = { 'del', 'comlink', 'vue', - 'eslint-plugin-n', '@types/ws', - 'eslint-config-standard-with-typescript', + // 'eslint-config-standard-with-typescript', ], // target: 'newest', diff --git a/package-lock.json b/package-lock.json index 7ed359f3..a2cdc6f3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -68,7 +68,7 @@ "electron-updater": "^6.1.4", "eslint": "^8.47.0", "eslint-config-standard": "^17.1.0", - "eslint-config-standard-with-typescript": "^35.0.0", + "eslint-config-standard-with-typescript": "^38.1.0", "eslint-formatter-friendly": "github:lyswhut/eslint-friendly-formatter#2170d1320e2fad13615a9dcf229669f0bb473a53", "eslint-plugin-html": "^7.1.0", "eslint-plugin-vue": "^9.17.0", @@ -3145,33 +3145,34 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.4.1.tgz", + "integrity": "sha512-3F5PtBzUW0dYlq77Lcqo13fv+58KDwUib3BddilE8ajPJT+faGgxmI9Sw+I8ZS22BYwoir9ZhNXcLi+S+I2bkw==", "dev": true, "peer": true, "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.4.1", + "@typescript-eslint/type-utils": "6.4.1", + "@typescript-eslint/utils": "6.4.1", + "@typescript-eslint/visitor-keys": "6.4.1", "debug": "^4.3.4", "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -3180,25 +3181,26 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.4.1.tgz", + "integrity": "sha512-610G6KHymg9V7EqOaNBMtD1GgpAmGROsmfHJPXNLCU9bfIuLrkdOygltK784F6Crboyd5tBFayPB7Sf0McrQwg==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/scope-manager": "6.4.1", + "@typescript-eslint/types": "6.4.1", + "@typescript-eslint/typescript-estree": "6.4.1", + "@typescript-eslint/visitor-keys": "6.4.1", "debug": "^4.3.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -3207,16 +3209,16 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.4.1.tgz", + "integrity": "sha512-p/OavqOQfm4/Hdrr7kvacOSFjwQ2rrDVJRPxt/o0TOWdFnjJptnjnZ+sYDR7fi4OimvIuKp+2LCkc+rt9fIW+A==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" + "@typescript-eslint/types": "6.4.1", + "@typescript-eslint/visitor-keys": "6.4.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -3224,26 +3226,26 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.4.1.tgz", + "integrity": "sha512-7ON8M8NXh73SGZ5XvIqWHjgX2f+vvaOarNliGhjrJnv1vdjG0LVIz+ToYfPirOoBi56jxAKLfsLm40+RvxVVXA==", "dev": true, "peer": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", + "@typescript-eslint/typescript-estree": "6.4.1", + "@typescript-eslint/utils": "6.4.1", "debug": "^4.3.4", - "tsutils": "^3.21.0" + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "*" + "eslint": "^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { "typescript": { @@ -3252,12 +3254,12 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.4.1.tgz", + "integrity": "sha512-zAAopbNuYu++ijY1GV2ylCsQsi3B8QvfPHVqhGdDcbx/NK5lkqMnCGU53amAjccSpk+LfeONxwzUhDzArSfZJg==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -3265,21 +3267,21 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.4.1.tgz", + "integrity": "sha512-xF6Y7SatVE/OyV93h1xGgfOkHr2iXuo8ip0gbfzaKeGGuKiAnzS+HtVhSPx8Www243bwlW8IF7X0/B62SzFftg==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", + "@typescript-eslint/types": "6.4.1", + "@typescript-eslint/visitor-keys": "6.4.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -3292,43 +3294,42 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.4.1.tgz", + "integrity": "sha512-F/6r2RieNeorU0zhqZNv89s9bDZSovv3bZQpUNOmmQK1L80/cV4KEu95YUJWi75u5PhboFoKUJBnZ4FQcoqhDw==", "dev": true, "peer": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.4.1", + "@typescript-eslint/types": "6.4.1", + "@typescript-eslint/typescript-estree": "6.4.1", + "semver": "^7.5.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^7.0.0 || ^8.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.4.1.tgz", + "integrity": "sha512-y/TyRJsbZPkJIZQXrHfdnxVnxyKegnpEvnRGNam7s3TRR2ykGefEWOhaef00/UUN3IZxizS7BTO3svd3lCOJRQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" + "@typescript-eslint/types": "6.4.1", + "eslint-visitor-keys": "^3.4.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^16.0.0 || >=18.0.0" }, "funding": { "type": "opencollective", @@ -7445,49 +7446,23 @@ } }, "node_modules/eslint-config-standard-with-typescript": { - "version": "35.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-35.0.0.tgz", - "integrity": "sha512-Xa7DY9GgduZyp0qmXxBF0/dB+Vm4/DgWu1lGpNLJV2d46aCaUxTKDEnkzjUWX/1O9S0a+Dhnw7A4oI0JpYzwtw==", + "version": "38.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-38.1.0.tgz", + "integrity": "sha512-sdgN8Gf7BMVhVKlY7/mB426yO/MozU1zV7TKnh0z1wIoPq4lD0CHQ+b/UkgqKfiZ4Io0j3xIY1j+lHhVXQck0g==", "dev": true, "dependencies": { - "@typescript-eslint/parser": "^5.50.0", - "eslint-config-standard": "17.0.0" + "@typescript-eslint/parser": "^6.1.0", + "eslint-config-standard": "17.1.0" }, "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^5.50.0", + "@typescript-eslint/eslint-plugin": "^6.1.0", "eslint": "^8.0.1", "eslint-plugin-import": "^2.25.2", - "eslint-plugin-n": "^15.0.0", + "eslint-plugin-n": "^15.0.0 || ^16.0.0 ", "eslint-plugin-promise": "^6.0.0", "typescript": "*" } }, - "node_modules/eslint-config-standard-with-typescript/node_modules/eslint-config-standard": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz", - "integrity": "sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peerDependencies": { - "eslint": "^8.0.1", - "eslint-plugin-import": "^2.25.2", - "eslint-plugin-n": "^15.0.0", - "eslint-plugin-promise": "^6.0.0" - } - }, "node_modules/eslint-formatter-friendly": { "version": "5.0.0", "resolved": "git+ssh://git@github.com/lyswhut/eslint-friendly-formatter.git#2170d1320e2fad13615a9dcf229669f0bb473a53", @@ -11245,13 +11220,6 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true, - "peer": true - }, "node_modules/needle": { "version": "3.2.0", "resolved": "git+ssh://git@github.com/lyswhut/needle.git#93299ac841b7e9a9f82ca7279b88aaaeda404060", @@ -16293,6 +16261,18 @@ "utf8-byte-length": "^1.0.1" } }, + "node_modules/ts-api-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.2.tgz", + "integrity": "sha512-Cbu4nIqnEdd+THNEsBdkolnOXhg0I8XteoHaEKgvsxpsbWda4IsUut2c187HxywQCvveojow0Dgw/amxtSKVkQ==", + "dev": true, + "engines": { + "node": ">=16.13.0" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, "node_modules/ts-loader": { "version": "9.4.4", "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.4.tgz", @@ -16331,27 +16311,6 @@ "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "dev": true }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, "node_modules/tunnel": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", @@ -19924,105 +19883,106 @@ } }, "@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.4.1.tgz", + "integrity": "sha512-3F5PtBzUW0dYlq77Lcqo13fv+58KDwUib3BddilE8ajPJT+faGgxmI9Sw+I8ZS22BYwoir9ZhNXcLi+S+I2bkw==", "dev": true, "peer": true, "requires": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.4.1", + "@typescript-eslint/type-utils": "6.4.1", + "@typescript-eslint/utils": "6.4.1", + "@typescript-eslint/visitor-keys": "6.4.1", "debug": "^4.3.4", "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", "semver": "latest", - "tsutils": "^3.21.0" + "ts-api-utils": "^1.0.1" } }, "@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.4.1.tgz", + "integrity": "sha512-610G6KHymg9V7EqOaNBMtD1GgpAmGROsmfHJPXNLCU9bfIuLrkdOygltK784F6Crboyd5tBFayPB7Sf0McrQwg==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/scope-manager": "6.4.1", + "@typescript-eslint/types": "6.4.1", + "@typescript-eslint/typescript-estree": "6.4.1", + "@typescript-eslint/visitor-keys": "6.4.1", "debug": "^4.3.4" } }, "@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.4.1.tgz", + "integrity": "sha512-p/OavqOQfm4/Hdrr7kvacOSFjwQ2rrDVJRPxt/o0TOWdFnjJptnjnZ+sYDR7fi4OimvIuKp+2LCkc+rt9fIW+A==", "dev": true, "requires": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" + "@typescript-eslint/types": "6.4.1", + "@typescript-eslint/visitor-keys": "6.4.1" } }, "@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.4.1.tgz", + "integrity": "sha512-7ON8M8NXh73SGZ5XvIqWHjgX2f+vvaOarNliGhjrJnv1vdjG0LVIz+ToYfPirOoBi56jxAKLfsLm40+RvxVVXA==", "dev": true, "peer": true, "requires": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", + "@typescript-eslint/typescript-estree": "6.4.1", + "@typescript-eslint/utils": "6.4.1", "debug": "^4.3.4", - "tsutils": "^3.21.0" + "ts-api-utils": "^1.0.1" } }, "@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.4.1.tgz", + "integrity": "sha512-zAAopbNuYu++ijY1GV2ylCsQsi3B8QvfPHVqhGdDcbx/NK5lkqMnCGU53amAjccSpk+LfeONxwzUhDzArSfZJg==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.4.1.tgz", + "integrity": "sha512-xF6Y7SatVE/OyV93h1xGgfOkHr2iXuo8ip0gbfzaKeGGuKiAnzS+HtVhSPx8Www243bwlW8IF7X0/B62SzFftg==", "dev": true, "requires": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", + "@typescript-eslint/types": "6.4.1", + "@typescript-eslint/visitor-keys": "6.4.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", "semver": "latest", - "tsutils": "^3.21.0" + "ts-api-utils": "^1.0.1" } }, "@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.4.1.tgz", + "integrity": "sha512-F/6r2RieNeorU0zhqZNv89s9bDZSovv3bZQpUNOmmQK1L80/cV4KEu95YUJWi75u5PhboFoKUJBnZ4FQcoqhDw==", "dev": true, "peer": true, "requires": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.4.1", + "@typescript-eslint/types": "6.4.1", + "@typescript-eslint/typescript-estree": "6.4.1", "semver": "latest" } }, "@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.4.1.tgz", + "integrity": "sha512-y/TyRJsbZPkJIZQXrHfdnxVnxyKegnpEvnRGNam7s3TRR2ykGefEWOhaef00/UUN3IZxizS7BTO3svd3lCOJRQ==", "dev": true, "requires": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" + "@typescript-eslint/types": "6.4.1", + "eslint-visitor-keys": "^3.4.1" }, "dependencies": { "eslint-visitor-keys": { @@ -23246,22 +23206,13 @@ "requires": {} }, "eslint-config-standard-with-typescript": { - "version": "35.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-35.0.0.tgz", - "integrity": "sha512-Xa7DY9GgduZyp0qmXxBF0/dB+Vm4/DgWu1lGpNLJV2d46aCaUxTKDEnkzjUWX/1O9S0a+Dhnw7A4oI0JpYzwtw==", + "version": "38.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-38.1.0.tgz", + "integrity": "sha512-sdgN8Gf7BMVhVKlY7/mB426yO/MozU1zV7TKnh0z1wIoPq4lD0CHQ+b/UkgqKfiZ4Io0j3xIY1j+lHhVXQck0g==", "dev": true, "requires": { - "@typescript-eslint/parser": "^5.50.0", - "eslint-config-standard": "17.0.0" - }, - "dependencies": { - "eslint-config-standard": { - "version": "17.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-17.0.0.tgz", - "integrity": "sha512-/2ks1GKyqSOkH7JFvXJicu0iMpoojkwB+f5Du/1SC0PtBL+s8v30k9njRZ21pm2drKYm2342jFnGWzttxPmZVg==", - "dev": true, - "requires": {} - } + "@typescript-eslint/parser": "^6.1.0", + "eslint-config-standard": "17.1.0" } }, "eslint-formatter-friendly": { @@ -26043,13 +25994,6 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true, - "peer": true - }, "needle": { "version": "git+ssh://git@github.com/lyswhut/needle.git#93299ac841b7e9a9f82ca7279b88aaaeda404060", "integrity": "sha512-NWwNanpqTqgHWYRLhd1nXwsDh83A8592gWWYz/lUbUd34PITOzzNuL8H0ipbdjFvWBRLPcQqVSn9Sx8RR1htIA==", @@ -29918,6 +29862,13 @@ "utf8-byte-length": "^1.0.1" } }, + "ts-api-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.2.tgz", + "integrity": "sha512-Cbu4nIqnEdd+THNEsBdkolnOXhg0I8XteoHaEKgvsxpsbWda4IsUut2c187HxywQCvveojow0Dgw/amxtSKVkQ==", + "dev": true, + "requires": {} + }, "ts-loader": { "version": "9.4.4", "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.4.tgz", @@ -29949,23 +29900,6 @@ "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "dev": true }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - } - } - }, "tunnel": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", diff --git a/package.json b/package.json index 20eaad8c..cd0fe360 100644 --- a/package.json +++ b/package.json @@ -238,7 +238,7 @@ "electron-updater": "^6.1.4", "eslint": "^8.47.0", "eslint-config-standard": "^17.1.0", - "eslint-config-standard-with-typescript": "^35.0.0", + "eslint-config-standard-with-typescript": "^38.1.0", "eslint-formatter-friendly": "github:lyswhut/eslint-friendly-formatter#2170d1320e2fad13615a9dcf229669f0bb473a53", "eslint-plugin-html": "^7.1.0", "eslint-plugin-vue": "^9.17.0", diff --git a/src/common/utils/download/Downloader.ts b/src/common/utils/download/Downloader.ts index 3aaecedd..920198d8 100644 --- a/src/common/utils/download/Downloader.ts +++ b/src/common/utils/download/Downloader.ts @@ -270,7 +270,7 @@ class Task extends EventEmitter { const result = this.__handleDiffChunk(chunk) if (result) chunk = result else { - this.__handleStop().finally(() => { + void this.__handleStop().finally(() => { // this.__handleError(new Error('Resume failed, response chunk does not match.')) // Resume failed, response chunk does not match, remove file and restart download console.log('Resume failed, response chunk does not match.') diff --git a/src/renderer/components/base/Menu.vue b/src/renderer/components/base/Menu.vue index 1444449e..45016889 100644 --- a/src/renderer/components/base/Menu.vue +++ b/src/renderer/components/base/Menu.vue @@ -65,7 +65,7 @@ export default { }) const menuClick = (item) => { - if (item && item.disabled) return + if (item?.disabled) return emit('menu-click', item) } diff --git a/src/renderer/components/base/MusicList.vue b/src/renderer/components/base/MusicList.vue index c132840b..129d178b 100644 --- a/src/renderer/components/base/MusicList.vue +++ b/src/renderer/components/base/MusicList.vue @@ -28,7 +28,7 @@ const easeInOutQuad = (t, b, c, d) => { return (-c / 2) * (t * (t - 2) - 1) + b } const handleScroll = (element, to, duration = 300, callback = () => {}, onCancel = () => {}) => { - if (!element) return callback() + if (!element) { callback(); return } const start = element.scrollTop || element.scrollY || 0 let cancel = false if (to > start) { @@ -36,10 +36,10 @@ const handleScroll = (element, to, duration = 300, callback = () => {}, onCancel if (to > maxScrollTop) to = maxScrollTop } else if (to < start) { if (to < 0) to = 0 - } else return callback() + } else { callback(); return } const change = to - start const increment = 10 - if (!change) return callback() + if (!change) { callback(); return } let currentTime = 0 let val @@ -145,7 +145,7 @@ export default { case 'down': break default: - console.log(render(null, slots.default(list[0])[0])) + render(null, slots.default(list[0])[0]) break } } @@ -196,14 +196,14 @@ export default { emit('scroll', event) } - const scrollTo = (scrollTop, animate = false) => { + const scrollTo = async(scrollTop, animate = false) => { return new Promise(resolve => { if (cancelScroll) { cancelScroll(resolve) } else { resolve() } - }).then(() => { + }).then(async() => { return new Promise((resolve, reject) => { if (animate) { isScrolling = true @@ -224,7 +224,7 @@ export default { }) } - const scrollToIndex = (index, offset = 0, animate = false) => { + const scrollToIndex = async(index, offset = 0, animate = false) => { return scrollTo(Math.max(index * props.itemHeight + offset, 0), animate) } @@ -245,7 +245,7 @@ export default { cachedList = Array(list.length) startIndex = -1 endIndex = -1 - nextTick(() => { + void nextTick(() => { updateView(true) }) } diff --git a/src/renderer/components/base/Popup.vue b/src/renderer/components/base/Popup.vue index 431cd399..12032d57 100644 --- a/src/renderer/components/base/Popup.vue +++ b/src/renderer/components/base/Popup.vue @@ -22,13 +22,11 @@ import { ref, watch, onMounted, onBeforeUnmount, reactive } from '@common/utils/ // https://github.com/vuejs/core/issues/2855#issuecomment-768388962 import { Teleport as teleport_, - TeleportProps, - VNodeProps, + type TeleportProps, + type VNodeProps, } from 'vue' -const Teleport = teleport_ as { - new (): { - $props: VNodeProps & TeleportProps - } +const Teleport = teleport_ as new () => { + $props: VNodeProps & TeleportProps } const props = defineProps<{ diff --git a/src/renderer/components/base/VirtualizedList.vue b/src/renderer/components/base/VirtualizedList.vue index 7d72de4c..643fef37 100644 --- a/src/renderer/components/base/VirtualizedList.vue +++ b/src/renderer/components/base/VirtualizedList.vue @@ -50,7 +50,7 @@ const easeInOutQuad = (t, b, c, d) => { return (-c / 2) * (t * (t - 2) - 1) + b } const handleScroll = (element, to, duration = 300, callback = () => {}, onCancel = () => {}) => { - if (!element) return callback() + if (!element) { callback(); return } const start = element.scrollTop || element.scrollY || 0 let cancel = false if (to > start) { @@ -58,10 +58,10 @@ const handleScroll = (element, to, duration = 300, callback = () => {}, onCancel if (to > maxScrollTop) to = maxScrollTop } else if (to < start) { if (to < 0) to = 0 - } else return callback() + } else { callback(); return } const change = to - start const increment = 10 - if (!change) return callback() + if (!change) { callback(); return } let currentTime = 0 let val @@ -214,7 +214,7 @@ export default { const scrollTo = (scrollTop, animate = false, onScrollEnd) => { if (onScrollEnd) { - new Promise(resolve => { + void new Promise(resolve => { if (cancelScroll) { cancelScroll(resolve) } else { @@ -270,7 +270,7 @@ export default { cachedList = Array(list.length) startIndex = -1 endIndex = -1 - nextTick(() => { + void nextTick(() => { updateView() }) } diff --git a/src/renderer/components/common/DownloadModal.vue b/src/renderer/components/common/DownloadModal.vue index bedda348..cbee8704 100644 --- a/src/renderer/components/common/DownloadModal.vue +++ b/src/renderer/components/common/DownloadModal.vue @@ -51,7 +51,7 @@ export default { }, methods: { handleClick(quality) { - createDownloadTasks([this.musicInfo], quality) + void createDownloadTasks([this.musicInfo], quality) this.handleClose() }, handleClose() { diff --git a/src/renderer/components/common/DownloadMultipleModal.vue b/src/renderer/components/common/DownloadMultipleModal.vue index 6b67f739..023e198e 100644 --- a/src/renderer/components/common/DownloadMultipleModal.vue +++ b/src/renderer/components/common/DownloadMultipleModal.vue @@ -37,7 +37,7 @@ export default { emits: ['update:show', 'confirm'], methods: { handleClick(quality) { - createDownloadTasks(this.list.filter(item => item.source != 'local'), quality) + void createDownloadTasks(this.list.filter(item => item.source != 'local'), quality) this.handleClose() this.$emit('confirm') }, diff --git a/src/renderer/components/common/ListAddModal.vue b/src/renderer/components/common/ListAddModal.vue index c668457f..afc47c8e 100644 --- a/src/renderer/components/common/ListAddModal.vue +++ b/src/renderer/components/common/ListAddModal.vue @@ -71,7 +71,7 @@ export default { const checkMusicExist = (musicInfo) => { const mid = musicInfo.id - getMusicExistListIds(mid).then(ids => { + void getMusicExistListIds(mid).then(ids => { if (mid != musicInfo.id) return for (const list of lists.value) { if (ids.includes(list.id)) list.isExist = true @@ -150,9 +150,8 @@ export default { : width < 3840 ? 5 : 6 }, handleClick(index) { - this.isMove - ? moveListMusics(this.fromListId, this.lists[index].id, [this.currentMusicInfo]) - : addListMusics(this.lists[index].id, [this.currentMusicInfo]) + if (this.isMove) void moveListMusics(this.fromListId, this.lists[index].id, [this.currentMusicInfo]) + else void addListMusics(this.lists[index].id, [this.currentMusicInfo]) this.lists[index].isExist = true if (this.keyModDown && !this.isMove) return @@ -174,7 +173,7 @@ export default { this.newListName = event.target.value = '' this.isEditing = false if (!name) return - createUserList({ name }) + void createUserList({ name }) }, }, } diff --git a/src/renderer/components/common/ListAddMultipleModal.vue b/src/renderer/components/common/ListAddMultipleModal.vue index cb0c3ceb..80df9ff7 100644 --- a/src/renderer/components/common/ListAddMultipleModal.vue +++ b/src/renderer/components/common/ListAddMultipleModal.vue @@ -111,9 +111,8 @@ export default { handleClick(index) { const list = 'progress' in this.musicList[0] ? this.musicList.map(t => t.metadata.musicInfo) : this.musicList - this.isMove - ? moveListMusics(this.fromListId, this.lists[index].id, list) - : addListMusics(this.lists[index].id, list) + if (this.isMove) void moveListMusics(this.fromListId, this.lists[index].id, list) + else void addListMusics(this.lists[index].id, list) if (this.keyModDown && !this.isMove) return this.$nextTick(() => { @@ -135,7 +134,7 @@ export default { this.newListName = event.target.value = '' this.isEditing = false if (!name) return - createUserList({ name }) + void createUserList({ name }) }, }, } diff --git a/src/renderer/components/common/SoundEffectBtn/AddConvolutionPresetBtn.vue b/src/renderer/components/common/SoundEffectBtn/AddConvolutionPresetBtn.vue index 134ff1d0..14336c9b 100644 --- a/src/renderer/components/common/SoundEffectBtn/AddConvolutionPresetBtn.vue +++ b/src/renderer/components/common/SoundEffectBtn/AddConvolutionPresetBtn.vue @@ -25,7 +25,7 @@ const handleEditing = () => { if (isEditing.value) return // if (!this.newPresetName) this.newPresetName = this.listName isEditing.value = true - nextTick(() => { + void nextTick(() => { input.value.$el.focus() }) } @@ -36,7 +36,7 @@ const handleSave = (event) => { isEditing.value = false if (!name) return if (name.length > 20) name = name.substring(0, 20) - saveUserConvolutionPreset({ + void saveUserConvolutionPreset({ id: Date.now().toString(), name, source: appSetting['player.soundEffect.convolution.fileName'], diff --git a/src/renderer/components/common/SoundEffectBtn/AddEQPresetBtn.vue b/src/renderer/components/common/SoundEffectBtn/AddEQPresetBtn.vue index 24bd9015..5ce31709 100644 --- a/src/renderer/components/common/SoundEffectBtn/AddEQPresetBtn.vue +++ b/src/renderer/components/common/SoundEffectBtn/AddEQPresetBtn.vue @@ -18,7 +18,7 @@ const handleEditing = () => { if (isEditing.value) return // if (!this.newPresetName) this.newPresetName = this.listName isEditing.value = true - nextTick(() => { + void nextTick(() => { input.value.$el.focus() }) } @@ -29,7 +29,7 @@ const handleSave = (event) => { isEditing.value = false if (!name) return if (name.length > 20) name = name.substring(0, 20) - saveUserEQPreset({ + void saveUserEQPreset({ id: Date.now().toString(), name, hz31: appSetting['player.soundEffect.biquadFilter.hz31'], diff --git a/src/renderer/components/common/SoundEffectBtn/AudioConvolution.vue b/src/renderer/components/common/SoundEffectBtn/AudioConvolution.vue index 6ffd7466..91cff72a 100644 --- a/src/renderer/components/common/SoundEffectBtn/AudioConvolution.vue +++ b/src/renderer/components/common/SoundEffectBtn/AudioConvolution.vue @@ -69,7 +69,7 @@ const handleSetPreset = (item) => { } const userPresetList = ref([]) const handleRemovePreset = id => { - removeUserConvolutionPreset(id) + void removeUserConvolutionPreset(id) } const disabledConvolution = computed(() => { @@ -77,7 +77,7 @@ const disabledConvolution = computed(() => { }) onMounted(() => { - getUserConvolutionPresetList().then(list => { + void getUserConvolutionPresetList().then(list => { userPresetList.value = list }) }) diff --git a/src/renderer/components/common/SoundEffectBtn/BiquadFilter.vue b/src/renderer/components/common/SoundEffectBtn/BiquadFilter.vue index aeb91b87..ab86dea7 100644 --- a/src/renderer/components/common/SoundEffectBtn/BiquadFilter.vue +++ b/src/renderer/components/common/SoundEffectBtn/BiquadFilter.vue @@ -65,11 +65,11 @@ const handleSetPreset = (item) => { const userPresetList = ref([]) const handleRemovePreset = id => { - removeUserEQPreset(id) + void removeUserEQPreset(id) } onMounted(() => { - getUserEQPresetList().then(list => { + void getUserEQPresetList().then(list => { userPresetList.value = list }) }) diff --git a/src/renderer/components/layout/ChangeLogModal.vue b/src/renderer/components/layout/ChangeLogModal.vue index 7ef42e66..3e840926 100644 --- a/src/renderer/components/layout/ChangeLogModal.vue +++ b/src/renderer/components/layout/ChangeLogModal.vue @@ -30,7 +30,7 @@ import { computed, ref } from '@common/utils/vueTools' export default { setup() { const lastStartVersion = ref(null) - getLastStartInfo().then(version => { + void getLastStartInfo().then(version => { lastStartVersion.value = version }) @@ -43,7 +43,7 @@ export default { history: [], isLatest: true, } - if (!versionInfo.newVersion || !versionInfo.newVersion?.history) return info + if (!versionInfo.newVersion?.history) return info info.isLatest = compareVer(currentVer, versionInfo.newVersion.version) >= 0 const history = [{ version: versionInfo.newVersion.version, desc: versionInfo.newVersion.desc }, ...versionInfo.newVersion.history] diff --git a/src/renderer/components/layout/PactModal.vue b/src/renderer/components/layout/PactModal.vue index 9e67eb09..4a5ac1a5 100644 --- a/src/renderer/components/layout/PactModal.vue +++ b/src/renderer/components/layout/PactModal.vue @@ -81,11 +81,11 @@ export default { }, 2e3) }, handleClose(isExit) { - if (isExit) return quitApp(true) + if (isExit) { quitApp(true); return } isShowPact.value = false }, openUrl(url) { - openUrl(url) + void openUrl(url) }, startTimeout() { window.setTimeout(() => { diff --git a/src/renderer/components/layout/PlayBar/FullWidthProgress.vue b/src/renderer/components/layout/PlayBar/FullWidthProgress.vue index 9351d69b..d92d968f 100644 --- a/src/renderer/components/layout/PlayBar/FullWidthProgress.vue +++ b/src/renderer/components/layout/PlayBar/FullWidthProgress.vue @@ -101,7 +101,7 @@ export default { const listId = playMusicInfo.listId if (!listId || listId == LIST_IDS.DOWNLOAD || !playMusicInfo.musicInfo) return if (playInfo.playIndex == -1) return - router.push({ + void router.push({ path: '/list', query: { id: listId, diff --git a/src/renderer/components/layout/PlayBar/MiddleWidthProgress.vue b/src/renderer/components/layout/PlayBar/MiddleWidthProgress.vue index 603ccec0..f996a332 100644 --- a/src/renderer/components/layout/PlayBar/MiddleWidthProgress.vue +++ b/src/renderer/components/layout/PlayBar/MiddleWidthProgress.vue @@ -101,7 +101,7 @@ export default { const listId = playMusicInfo.listId if (!listId || listId == LIST_IDS.DOWNLOAD || !playMusicInfo.musicInfo) return if (playInfo.playIndex == -1) return - router.push({ + void router.push({ path: '/list', query: { id: listId, diff --git a/src/renderer/components/layout/PlayBar/MiniWidthProgress.vue b/src/renderer/components/layout/PlayBar/MiniWidthProgress.vue index c8a0ea48..668e9a8b 100644 --- a/src/renderer/components/layout/PlayBar/MiniWidthProgress.vue +++ b/src/renderer/components/layout/PlayBar/MiniWidthProgress.vue @@ -103,7 +103,7 @@ export default { const listId = playMusicInfo.listId if (!listId || listId == LIST_IDS.DOWNLOAD || !playMusicInfo.musicInfo) return if (playInfo.playIndex == -1) return - router.push({ + void router.push({ path: '/list', query: { id: listId, diff --git a/src/renderer/components/layout/PlayDetail/LyricPlayer.vue b/src/renderer/components/layout/PlayDetail/LyricPlayer.vue index d06a10b3..5d1403f5 100644 --- a/src/renderer/components/layout/PlayDetail/LyricPlayer.vue +++ b/src/renderer/components/layout/PlayDetail/LyricPlayer.vue @@ -113,7 +113,7 @@ export default { lyricMenuXY.x = event.pageX lyricMenuXY.y = event.pageY if (lyricMenuVisible.value) return - nextTick(() => { + void nextTick(() => { lyricMenuVisible.value = true }) } diff --git a/src/renderer/components/layout/PlayDetail/components/LyricMenu.vue b/src/renderer/components/layout/PlayDetail/components/LyricMenu.vue index fb8ba01e..e0922357 100644 --- a/src/renderer/components/layout/PlayDetail/components/LyricMenu.vue +++ b/src/renderer/components/layout/PlayDetail/components/LyricMenu.vue @@ -55,10 +55,10 @@ const offsetTagRxp = /(?:^|\n)\s*\[offset:\s*(\S+(?:\d+)*)\s*\]/ const offsetTagAllRxp = /(^|\n)\s*\[offset:\s*(\S+(?:\d+)*)\s*\]/g const saveLyric = debounce((musicInfo, lyricInfo) => { - saveLyricEdited(musicInfo, lyricInfo) + void saveLyricEdited(musicInfo, lyricInfo) }) const removeLyric = debounce(musicInfo => { - removeLyricEdited(musicInfo) + void removeLyricEdited(musicInfo) }) const getOffset = lrc => { diff --git a/src/renderer/components/layout/PlayDetail/index.vue b/src/renderer/components/layout/PlayDetail/index.vue index 13ed68c2..964e4148 100644 --- a/src/renderer/components/layout/PlayDetail/index.vue +++ b/src/renderer/components/layout/PlayDetail/index.vue @@ -138,7 +138,7 @@ export default { visibled, isFullscreen, fullscreenExit() { - setFullScreen(false).then((fullscreen) => { + void setFullScreen(false).then((fullscreen) => { isFullscreen.value = fullscreen }) }, diff --git a/src/renderer/components/layout/SyncModeModal.vue b/src/renderer/components/layout/SyncModeModal.vue index e92a2260..6633e5a2 100644 --- a/src/renderer/components/layout/SyncModeModal.vue +++ b/src/renderer/components/layout/SyncModeModal.vue @@ -61,7 +61,7 @@ export default { } const handleSelectMode = (mode) => { if (mode.startsWith('overwrite') && isOverwrite.value) mode += '_full' - sendSyncAction({ action: 'select_mode', data: mode }) + void sendSyncAction({ action: 'select_mode', data: mode }) handleClose() } return { diff --git a/src/renderer/components/layout/Toolbar/SearchInput.vue b/src/renderer/components/layout/Toolbar/SearchInput.vue index ac2ef4e7..48f1602c 100644 --- a/src/renderer/components/layout/Toolbar/SearchInput.vue +++ b/src/renderer/components/layout/Toolbar/SearchInput.vue @@ -97,7 +97,7 @@ export default { break case 'listClick': searchText.value = tipList.value[data] - nextTick(handleSearch) + void nextTick(handleSearch) } } diff --git a/src/renderer/components/layout/UpdateModal.vue b/src/renderer/components/layout/UpdateModal.vue index 60e0cc00..c0e11d77 100644 --- a/src/renderer/components/layout/UpdateModal.vue +++ b/src/renderer/components/layout/UpdateModal.vue @@ -113,7 +113,7 @@ export default { }, computed: { history() { - if (!this.versionInfo.newVersion || !this.versionInfo.newVersion?.history) return [] + if (!this.versionInfo.newVersion?.history) return [] let arr = [] let currentVer = this.versionInfo.version this.versionInfo.newVersion?.history.forEach(ver => { @@ -134,7 +134,7 @@ export default { }, }, created() { - getIgnoreVersion().then(version => { + void getIgnoreVersion().then(version => { this.ignoreVersion = version }) }, @@ -143,7 +143,7 @@ export default { versionInfo.showModal = false }, handleOpenUrl(url) { - openUrl(url) + void openUrl(url) }, handleRestartClick(event) { this.handleClose() @@ -166,7 +166,7 @@ export default { confirmButtonText: window.i18n.t('update__ignore_confirm'), })) { setTimeout(() => { - dialog({ + void dialog({ message: window.i18n.t('update__ignore_confirm_tip'), confirmButtonText: window.i18n.t('update__ignore_confirm_tip_confirm'), }) diff --git a/src/renderer/components/material/Modal.vue b/src/renderer/components/material/Modal.vue index e255d7ca..d0d903af 100644 --- a/src/renderer/components/material/Modal.vue +++ b/src/renderer/components/material/Modal.vue @@ -161,7 +161,7 @@ export default { // } this.setRandomAnimation() this.showModal = true - nextTick(() => { + void nextTick(() => { this.$refs.dom_container.parentNode.classList.add('show-modal') this.showContent = true }) diff --git a/src/renderer/components/material/OnlineList/index.vue b/src/renderer/components/material/OnlineList/index.vue index a585532e..b5f96013 100644 --- a/src/renderer/components/material/OnlineList/index.vue +++ b/src/renderer/components/material/OnlineList/index.vue @@ -234,7 +234,7 @@ export default { handleShowDownloadModal(index, true) break case 'play': - handlePlayMusic(index, true) + void handlePlayMusic(index, true) break case 'search': handleSearch(index) diff --git a/src/renderer/components/material/Pagination.vue b/src/renderer/components/material/Pagination.vue index f045a1ea..7e6f1beb 100644 --- a/src/renderer/components/material/Pagination.vue +++ b/src/renderer/components/material/Pagination.vue @@ -83,6 +83,7 @@ export default { if (this.maxPage <= this.btnLength) return Array.from({ length: this.maxPage }, (_, i) => i + 1) let start = this.page - this.pageEvg > 1 + // eslint-disable-next-line @typescript-eslint/restrict-plus-operands ? this.maxPage - this.page < this.pageEvg + 1 ? this.maxPage - (this.btnLength - 1) : this.page - this.pageEvg diff --git a/src/renderer/components/material/SearchInput.vue b/src/renderer/components/material/SearchInput.vue index 99204ab6..921ef08d 100644 --- a/src/renderer/components/material/SearchInput.vue +++ b/src/renderer/components/material/SearchInput.vue @@ -141,7 +141,7 @@ export default { }, handleSearch() { this.hideList() - if (this.selectIndex < 0) return this.sendEvent('submit') + if (this.selectIndex < 0) { this.sendEvent('submit'); return } this.sendEvent('listClick', this.selectIndex) }, showList() { diff --git a/src/renderer/core/music/utils.ts b/src/renderer/core/music/utils.ts index c31ca89e..82413e3e 100644 --- a/src/renderer/core/music/utils.ts +++ b/src/renderer/core/music/utils.ts @@ -141,7 +141,7 @@ export const getCachedLyricInfo = async(musicInfo: LX.Music.MusicInfo): Promise< export const getPlayQuality = (highQuality: boolean, musicInfo: LX.Music.MusicInfoOnline): LX.Quality => { let type: LX.Quality = '128k' let list = qualityList.value[musicInfo.source] - if (highQuality && musicInfo.meta._qualitys['320k'] && list && list.includes('320k')) type = '320k' + if (highQuality && musicInfo.meta._qualitys['320k'] && list?.includes('320k')) type = '320k' return type } diff --git a/src/renderer/core/player/utils.ts b/src/renderer/core/player/utils.ts index c6e199db..af1e13b7 100644 --- a/src/renderer/core/player/utils.ts +++ b/src/renderer/core/player/utils.ts @@ -7,7 +7,7 @@ export const getPlayType = (highQuality: boolean, musicInfo: LX.Music.MusicInfo if ('progress' in musicInfo || musicInfo.source == 'local') return null let type: LX.Quality = '128k' let list = qualityList.value[musicInfo.source] - if (highQuality && musicInfo.meta._qualitys['320k'] && list && list.includes('320k')) type = '320k' + if (highQuality && musicInfo.meta._qualitys['320k'] && list?.includes('320k')) type = '320k' return type } diff --git a/src/renderer/core/useApp/useInitUserApi.ts b/src/renderer/core/useApp/useInitUserApi.ts index 39d4522e..d00d4e6b 100644 --- a/src/renderer/core/useApp/useInitUserApi.ts +++ b/src/renderer/core/useApp/useInitUserApi.ts @@ -16,7 +16,7 @@ export default () => { userApi.status = status userApi.message = message - if (status && apiInfo && apiInfo.sources) { + if (status && apiInfo?.sources) { if (apiInfo.id === appSetting['common.apiSource']) { let apis: any = {} let qualitys: LX.QualityList = {} diff --git a/src/renderer/core/useApp/usePlayer/useMediaSessionInfo.ts b/src/renderer/core/useApp/usePlayer/useMediaSessionInfo.ts index e33bba0a..4727c6d5 100644 --- a/src/renderer/core/useApp/usePlayer/useMediaSessionInfo.ts +++ b/src/renderer/core/useApp/usePlayer/useMediaSessionInfo.ts @@ -73,7 +73,7 @@ export default () => { navigator.mediaSession.playbackState = 'none' } const handleSetPlayInfo = () => { - emptyAudio.play().finally(() => { + void emptyAudio.play().finally(() => { updateMediaSessionInfo() updatePositionState({ position: playProgress.nowPlayTime, @@ -100,12 +100,12 @@ export default () => { }) navigator.mediaSession.setActionHandler('seekbackward', details => { console.log('seekbackward') - const seekOffset = details.seekOffset == null ? 5 : details.seekOffset + const seekOffset = details.seekOffset ?? 5 setProgress(Math.max(getCurrentTime() - seekOffset, 0)) }) navigator.mediaSession.setActionHandler('seekforward', details => { console.log('seekforward') - const seekOffset = details.seekOffset == null ? 5 : details.seekOffset + const seekOffset = details.seekOffset ?? 5 setProgress(Math.min(getCurrentTime() + seekOffset, getDuration())) }) navigator.mediaSession.setActionHandler('seekto', details => { diff --git a/src/renderer/types/lx.d.ts b/src/renderer/types/lx.d.ts deleted file mode 100644 index d81d470d..00000000 --- a/src/renderer/types/lx.d.ts +++ /dev/null @@ -1 +0,0 @@ -export default LX diff --git a/src/renderer/views/Download/index.vue b/src/renderer/views/Download/index.vue index 714daf91..4c5857dc 100644 --- a/src/renderer/views/Download/index.vue +++ b/src/renderer/views/Download/index.vue @@ -143,9 +143,9 @@ export default { if (task.isComplate) { handlePlayMusic(list.value.indexOf(task), true) } else if (task.status === downloadStatus.RUN || task.status === downloadStatus.WAITING) { - handlePauseTask(index, true) + void handlePauseTask(index, true) } else { - handleStartTask(index, true) + void handleStartTask(index, true) } clickTime = 0 clickIndex = -1 @@ -172,16 +172,16 @@ export default { handlePlayMusic(index, true) break case 'start': - handleStartTask(index, true) + void handleStartTask(index, true) break case 'pause': - handlePauseTask(index, true) + void handlePauseTask(index, true) break case 'remove': - handleRemoveTask(index, true) + void handleRemoveTask(index, true) break case 'file': - handleOpenFile(index) + void handleOpenFile(index) break case 'search': handleSearch(index) diff --git a/src/renderer/views/Leaderboard/BoardList/index.vue b/src/renderer/views/Leaderboard/BoardList/index.vue index c13eabb6..954e912e 100644 --- a/src/renderer/views/Leaderboard/BoardList/index.vue +++ b/src/renderer/views/Leaderboard/BoardList/index.vue @@ -25,9 +25,8 @@