mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-08-20 05:13:30 -07:00
Merge pull request #20800 from Chocobo1/eslint_v9
WebUI: migrate to ESLint v9
This commit is contained in:
commit
a19ef58400
5 changed files with 50 additions and 34 deletions
|
@ -1,29 +0,0 @@
|
||||||
{
|
|
||||||
"env": {
|
|
||||||
"browser": true,
|
|
||||||
"es2022": true
|
|
||||||
},
|
|
||||||
"extends": [
|
|
||||||
"eslint:recommended",
|
|
||||||
"plugin:@stylistic/disable-legacy"
|
|
||||||
],
|
|
||||||
"plugins": [
|
|
||||||
"html",
|
|
||||||
"@stylistic"
|
|
||||||
],
|
|
||||||
"rules": {
|
|
||||||
"eqeqeq": "error",
|
|
||||||
"no-undef": "off",
|
|
||||||
"no-unused-vars": "off",
|
|
||||||
"@stylistic/no-mixed-operators": [
|
|
||||||
"error",
|
|
||||||
{
|
|
||||||
"groups": [
|
|
||||||
["&", "|", "^", "~", "<<", ">>", ">>>", "==", "!=", "===", "!==", ">", ">=", "<", "<=", "&&", "||", "in", "instanceof"]
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"@stylistic/nonblock-statement-body-position": ["error", "below"],
|
|
||||||
"@stylistic/semi": "error"
|
|
||||||
}
|
|
||||||
}
|
|
44
src/webui/www/eslint.config.mjs
Normal file
44
src/webui/www/eslint.config.mjs
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
import Globals from 'globals';
|
||||||
|
import Html from 'eslint-plugin-html';
|
||||||
|
import Js from '@eslint/js';
|
||||||
|
import Stylistic from '@stylistic/eslint-plugin';
|
||||||
|
import * as RegexpPlugin from 'eslint-plugin-regexp';
|
||||||
|
|
||||||
|
export default [
|
||||||
|
Js.configs.recommended,
|
||||||
|
RegexpPlugin.configs["flat/recommended"],
|
||||||
|
Stylistic.configs["disable-legacy"],
|
||||||
|
{
|
||||||
|
files: [
|
||||||
|
"**/*.html",
|
||||||
|
"**/*.js",
|
||||||
|
"**/*.mjs"
|
||||||
|
],
|
||||||
|
languageOptions: {
|
||||||
|
ecmaVersion: 2022,
|
||||||
|
globals: {
|
||||||
|
...Globals.browser
|
||||||
|
}
|
||||||
|
},
|
||||||
|
plugins: {
|
||||||
|
Html,
|
||||||
|
RegexpPlugin,
|
||||||
|
Stylistic
|
||||||
|
},
|
||||||
|
rules: {
|
||||||
|
"eqeqeq": "error",
|
||||||
|
"no-undef": "off",
|
||||||
|
"no-unused-vars": "off",
|
||||||
|
"Stylistic/no-mixed-operators": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
"groups": [
|
||||||
|
["&", "|", "^", "~", "<<", ">>", ">>>", "==", "!=", "===", "!==", ">", ">=", "<", "<=", "&&", "||", "in", "instanceof"]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Stylistic/nonblock-statement-body-position": ["error", "below"],
|
||||||
|
"Stylistic/semi": "error"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
];
|
|
@ -12,8 +12,9 @@
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@stylistic/eslint-plugin": "*",
|
"@stylistic/eslint-plugin": "*",
|
||||||
"eslint": "^8",
|
"eslint": "*",
|
||||||
"eslint-plugin-html": "^8",
|
"eslint-plugin-html": "*",
|
||||||
|
"eslint-plugin-regexp": "*",
|
||||||
"html-validate": "*",
|
"html-validate": "*",
|
||||||
"i18next-parser": "*",
|
"i18next-parser": "*",
|
||||||
"js-beautify": "*",
|
"js-beautify": "*",
|
||||||
|
|
|
@ -1527,8 +1527,8 @@ window.addEventListener("DOMContentLoaded", function() {
|
||||||
return lowercaseStr.startsWith("http:")
|
return lowercaseStr.startsWith("http:")
|
||||||
|| lowercaseStr.startsWith("https:")
|
|| lowercaseStr.startsWith("https:")
|
||||||
|| lowercaseStr.startsWith("magnet:")
|
|| lowercaseStr.startsWith("magnet:")
|
||||||
|| ((str.length === 40) && !(/[^0-9A-Fa-f]/.test(str))) // v1 hex-encoded SHA-1 info-hash
|
|| ((str.length === 40) && !(/[^0-9A-F]/i.test(str))) // v1 hex-encoded SHA-1 info-hash
|
||||||
|| ((str.length === 32) && !(/[^2-7A-Za-z]/.test(str))); // v1 Base32 encoded SHA-1 info-hash
|
|| ((str.length === 32) && !(/[^2-7A-Z]/i.test(str))); // v1 Base32 encoded SHA-1 info-hash
|
||||||
});
|
});
|
||||||
|
|
||||||
if (urls.length <= 0)
|
if (urls.length <= 0)
|
||||||
|
|
|
@ -143,7 +143,7 @@ window.qBittorrent.Misc = (function() {
|
||||||
* JS counterpart of the function in src/misc.cpp
|
* JS counterpart of the function in src/misc.cpp
|
||||||
*/
|
*/
|
||||||
const parseHtmlLinks = function(text) {
|
const parseHtmlLinks = function(text) {
|
||||||
const exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|])/ig;
|
const exp = /(\b(https?|ftp|file):\/\/[-\w+&@#/%?=~|!:,.;]*[-\w+&@#/%=~|])/gi;
|
||||||
return text.replace(exp, "<a target='_blank' rel='noopener noreferrer' href='$1'>$1</a>");
|
return text.replace(exp, "<a target='_blank' rel='noopener noreferrer' href='$1'>$1</a>");
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue