summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.eslintrc.js300
-rw-r--r--eslint.config.js80
-rw-r--r--package.json3
3 files changed, 82 insertions, 301 deletions
diff --git a/.eslintrc.js b/.eslintrc.js
deleted file mode 100644
index 53184783a..000000000
--- a/.eslintrc.js
+++ /dev/null
@@ -1,300 +0,0 @@
-module.exports = {
- "env": {
- "browser": true,
- "es6": true,
- "jquery": false,
- "webextensions": false
- },
- "extends": "eslint:recommended",
- "parserOptions": {
- "ecmaVersion": 2020
- },
- "rules": {
- "accessor-pairs": "error",
- "array-bracket-newline": "off",
- "array-bracket-spacing": "off",
- "array-callback-return": "error",
- "array-element-newline": "off",
- "arrow-body-style": "error",
- "arrow-parens": "error",
- "arrow-spacing": "error",
- "block-scoped-var": "off",
- "block-spacing": [
- "error",
- "always"
- ],
- "brace-style": "off",
- "callback-return": "off",
- "camelcase": "off",
- "capitalized-comments": "off",
- "class-methods-use-this": "error",
- "comma-dangle": "off",
- "comma-spacing": "off",
- "comma-style": [
- "error",
- "last"
- ],
- "complexity": "off",
- "computed-property-spacing": [
- "error",
- "never"
- ],
- "consistent-return": "off",
- "consistent-this": "off",
- "curly": "off",
- "default-case": "off",
- "dot-location": "off",
- "dot-notation": "off",
- "eol-last": "error",
- "eqeqeq": "off",
- "func-call-spacing": "error",
- "func-name-matching": "error",
- "func-names": "off",
- "func-style": "off",
- "function-paren-newline": "off",
- "generator-star-spacing": "error",
- "global-require": "error",
- "guard-for-in": "off",
- "handle-callback-err": "off",
- "id-blacklist": "error",
- "id-length": "off",
- "id-match": "error",
- "implicit-arrow-linebreak": "off",
- "indent": "off",
- "indent-legacy": "off",
- "init-declarations": "off",
- "jsx-quotes": "error",
- "key-spacing": "off",
- "keyword-spacing": [
- "error",
- {
- "after": true,
- "before": true
- }
- ],
- "line-comment-position": "off",
- "linebreak-style": [
- "error",
- "unix"
- ],
- "lines-around-comment": "off",
- "lines-around-directive": "error",
- "lines-between-class-members": "error",
- "max-classes-per-file": "off",
- "max-depth": "off",
- "max-len": "off",
- "max-lines": "off",
- "max-lines-per-function": "off",
- "max-nested-callbacks": "error",
- "max-params": "off",
- "max-statements": "off",
- "max-statements-per-line": [ "warn", { "max" : 2 } ],
- "multiline-comment-style": "off",
- "multiline-ternary": "off",
- "new-cap": "warn",
- "new-parens": "error",
- "newline-after-var": "off",
- "newline-before-return": "off",
- "newline-per-chained-call": "off",
- "no-alert": "off",
- "no-array-constructor": "error",
- "no-async-promise-executor": "off",
- "no-await-in-loop": "warn",
- "no-bitwise": "off",
- "no-buffer-constructor": "error",
- "no-caller": "error",
- "no-catch-shadow": "off",
- "no-confusing-arrow": "error",
- "no-continue": "off",
- "no-console": "off",
- "no-div-regex": "error",
- "no-duplicate-imports": "error",
- "no-else-return": "off",
- "no-empty": [
- "error",
- {
- "allowEmptyCatch": true
- }
- ],
- "no-empty-function": "error",
- "no-eq-null": "off",
- "no-eval": "error",
- "no-extend-native": "off",
- "no-extra-bind": "error",
- "no-extra-label": "error",
- "no-extra-parens": "off",
- "no-floating-decimal": "error",
- "no-implicit-globals": "off",
- "no-implied-eval": "off",
- "no-inline-comments": "off",
- "no-inner-declarations": [
- "error",
- "functions"
- ],
- "no-invalid-this": "error",
- "no-iterator": "error",
- "no-label-var": "error",
- "no-labels": "error",
- "no-lone-blocks": "error",
- "no-lonely-if": "error",
- "no-loop-func": "off",
- "no-magic-numbers": "off",
- "no-misleading-character-class": "off",
- "no-mixed-operators": "off",
- "no-mixed-requires": "error",
- "no-multi-assign": "error",
- "no-multi-spaces": "off",
- "no-multi-str": "error",
- "no-multiple-empty-lines": "error",
- "no-native-reassign": "error",
- "no-negated-condition": "off",
- "no-negated-in-lhs": "error",
- "no-nested-ternary": "error",
- "no-new": "warn",
- "no-new-func": "error",
- "no-new-object": "off",
- "no-new-require": "error",
- "no-new-wrappers": "error",
- "no-octal-escape": "error",
- "no-param-reassign": "off",
- "no-path-concat": "error",
- "no-plusplus": "off",
- "no-process-env": "error",
- "no-process-exit": "error",
- "no-proto": "error",
- "no-prototype-builtins": "warn",
- "no-restricted-globals": "error",
- "no-restricted-imports": "error",
- "no-restricted-modules": "error",
- "no-restricted-properties": "error",
- "no-restricted-syntax": "error",
- "no-return-assign": [
- "error",
- "except-parens"
- ],
- "no-return-await": "error",
- "no-script-url": "error",
- "no-self-compare": "error",
- "no-sequences": "error",
- "no-shadow": "off",
- "no-shadow-restricted-names": "error",
- "no-spaced-func": "error",
- "no-sync": "error",
- "no-tabs": "off",
- "no-template-curly-in-string": "error",
- "no-ternary": "off",
- "no-throw-literal": "error",
- "no-trailing-spaces": "error",
- "no-undef-init": "error",
- "no-undefined": "off",
- "no-undef": "warn",
- "no-underscore-dangle": "off",
- "no-unmodified-loop-condition": "error",
- "no-unneeded-ternary": [
- "error",
- {
- "defaultAssignment": true
- }
- ],
- "no-unused-expressions": "off",
- "no-unused-vars": "warn",
- "no-use-before-define": "off",
- "no-useless-call": "error",
- "no-useless-computed-key": "error",
- "no-useless-concat": "error",
- "no-useless-constructor": "error",
- "no-useless-rename": "error",
- "no-useless-return": "off",
- "no-var": "warn",
- "no-void": "error",
- "no-warning-comments": "off",
- "no-whitespace-before-property": "error",
- "no-with": "error",
- "nonblock-statement-body-position": [
- "error",
- "any"
- ],
- "object-curly-newline": "off",
- "object-curly-spacing": "off",
- "object-property-newline": "off",
- "object-shorthand": "off",
- "one-var": "off",
- "one-var-declaration-per-line": "error",
- "operator-assignment": "off",
- "operator-linebreak": [
- "error",
- "after"
- ],
- "padded-blocks": "off",
- "padding-line-between-statements": "error",
- "prefer-arrow-callback": "off",
- "prefer-const": "error",
- "prefer-destructuring": "off",
- "prefer-numeric-literals": "error",
- "prefer-object-spread": "off",
- "prefer-promise-reject-errors": "error",
- "prefer-reflect": "off",
- "prefer-rest-params": "error",
- "prefer-spread": "error",
- "prefer-template": "off",
- "quote-props": "off",
- "quotes": "off",
- "radix": [
- "error",
- "as-needed"
- ],
- "require-atomic-updates": "off",
- "require-await": "warn",
- "require-jsdoc": "off",
- "require-unicode-regexp": "off",
- "rest-spread-spacing": "error",
- "semi": "off",
- "semi-spacing": [
- "error",
- {
- "after": true,
- "before": false
- }
- ],
- "semi-style": [
- "error",
- "last"
- ],
- "sort-imports": "error",
- "sort-keys": "off",
- "sort-vars": "off",
- "space-before-blocks": "off",
- "space-before-function-paren": "off",
- "space-in-parens": "off",
- "space-infix-ops": "off",
- "space-unary-ops": [
- "error",
- {
- "nonwords": false,
- "words": false
- }
- ],
- "spaced-comment": "off",
- "strict": [
- "off",
- "never"
- ],
- "switch-colon-spacing": "error",
- "symbol-description": "error",
- "template-curly-spacing": "error",
- "template-tag-spacing": "error",
- "unicode-bom": [
- "error",
- "never"
- ],
- "valid-jsdoc": "error",
- "vars-on-top": "off",
- "wrap-iife": "error",
- "wrap-regex": "error",
- "yield-star-spacing": "error",
- "yoda": [
- "error",
- "never"
- ]
- }
-};
diff --git a/eslint.config.js b/eslint.config.js
new file mode 100644
index 000000000..f1fc76d28
--- /dev/null
+++ b/eslint.config.js
@@ -0,0 +1,80 @@
+import js from '@eslint/js';
+
+export default [
+ js.configs.recommended,
+
+ {
+ files: ['js/**/*.js', 'plugins/**/*.js'],
+ languageOptions: {
+ ecmaVersion: 2022,
+ sourceType: 'script',
+ globals: {
+ // Browser
+ window: 'readonly',
+ document: 'readonly',
+ console: 'readonly',
+ alert: 'readonly',
+ confirm: 'readonly',
+ setTimeout: 'readonly',
+ setInterval: 'readonly',
+ clearTimeout: 'readonly',
+ clearInterval: 'readonly',
+ fetch: 'readonly',
+ XMLHttpRequest: 'readonly',
+ localStorage: 'readonly',
+ location: 'readonly',
+ history: 'readonly',
+
+ // tt-rss
+ App: 'writable',
+ Article: 'writable',
+ CommonDialogs: 'writable',
+ CommonFilters: 'writable',
+ Feeds: 'writable',
+ FeedStoreModel: 'writable',
+ FeedTree: 'writable',
+ Headlines: 'writable',
+ PluginHost: 'writable',
+ PrefFeedStore: 'writable',
+ PrefFeedTree: 'writable',
+ PrefFilterStore: 'writable',
+ PrefFilterTree: 'writable',
+ PrefHelpers: 'writable',
+ PrefLabelTree: 'writable',
+ PrefUsers: 'writable',
+ SingleUseDialog: 'writable',
+ Toolbar: 'writable',
+
+ // Dojo
+ dojo: 'readonly',
+ dijit: 'readonly'
+ }
+ },
+
+ rules: {
+ 'no-undef': 'warn',
+ 'no-unused-vars': 'warn',
+ 'no-console': 'off',
+
+ 'prefer-const': 'error',
+ 'no-var': 'warn',
+
+ 'eqeqeq': ['error', 'always'],
+ 'no-caller': 'error',
+ 'no-proto': 'error',
+
+ 'linebreak-style': ['error', 'unix'],
+ 'eol-last': 'error',
+ 'no-trailing-spaces': 'error',
+ 'no-multiple-empty-lines': ['error', { 'max': 2 }],
+
+ 'keyword-spacing': ['error', { 'after': true, 'before': true }],
+ 'block-spacing': ['error', 'always'],
+ 'computed-property-spacing': ['error', 'never'],
+
+ 'no-empty': ['error', { 'allowEmptyCatch': true }],
+
+ 'max-statements-per-line': ['warn', { 'max': 2 }]
+ }
+ }
+];
diff --git a/package.json b/package.json
index 3eb8d6851..31dcfbd7e 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,8 @@
{
"name": "tt-rss",
+ "description": "A free, flexible, open-source, web-based news feed (RSS/Atom/other) reader and aggregator.",
"version": "1.0.0",
- "description": "",
+ "type": "module",
"devDependencies": {
"eslint": "^9.37.0",
"gulp": "^5.0.1",