From a7e66ec071e41d5cbd3c36ee6b73813f48afbc63 Mon Sep 17 00:00:00 2001
From: Christoph Reiter <reiter.christoph@gmail.com>
Date: Mon, 21 Dec 2020 15:50:35 +0100
Subject: [PATCH] eslint: share the eslint config between all modules

---
 eslint.common.json                            | 26 +++++++++++++++++++
 packages/app-shell/.eslintrc.json             | 24 +----------------
 packages/auth/.eslintrc.json                  | 24 +----------------
 packages/check-in-place-select/.eslintrc.json | 24 +----------------
 packages/common/.eslintrc.json                | 24 +----------------
 packages/common/styles.js                     |  2 +-
 packages/common/utils.js                      |  2 +-
 packages/data-table-view/.eslintrc.json       | 24 +----------------
 packages/file-handling/.eslintignore          |  3 ++-
 packages/file-handling/.eslintrc.json         | 24 +----------------
 .../src/dbp-nextcloud-file-picker.js          | 10 ++++---
 packages/file-handling/src/file-source.js     |  6 +++--
 .../.eslintrc.json                            | 24 +----------------
 packages/language-select/.eslintrc.json       | 24 +----------------
 packages/matomo/.eslintrc.json                | 24 +----------------
 packages/notification/.eslintrc.json          | 24 +----------------
 packages/person-profile/.eslintrc.json        | 24 +----------------
 packages/person-select/.eslintrc.json         | 24 +----------------
 packages/provider/.eslintrc.json              | 24 +----------------
 packages/qr-code-scanner/.eslintrc.json       | 24 +----------------
 20 files changed, 54 insertions(+), 331 deletions(-)
 create mode 100644 eslint.common.json

diff --git a/eslint.common.json b/eslint.common.json
new file mode 100644
index 00000000..d19714d1
--- /dev/null
+++ b/eslint.common.json
@@ -0,0 +1,26 @@
+{
+    "env": {
+        "browser": true,
+        "es6": true,
+        "mocha": true
+    },
+    "extends": ["eslint:recommended", "plugin:jsdoc/recommended"],
+    "globals": {
+        "Atomics": "readonly",
+        "SharedArrayBuffer": "readonly"
+    },
+    "parser": "babel-eslint",
+    "parserOptions": {
+        "ecmaVersion": 2018,
+        "sourceType": "module"
+    },
+    "rules": {
+        "no-unused-vars": ["error", { "args": "none" }],
+        "semi": [2, "always"],
+        "jsdoc/require-jsdoc": 0,
+        "jsdoc/require-param-description": 0,
+        "jsdoc/require-returns": 0,
+        "jsdoc/require-param-type": 0,
+        "jsdoc/require-returns-description": 0
+    }
+}
\ No newline at end of file
diff --git a/packages/app-shell/.eslintrc.json b/packages/app-shell/.eslintrc.json
index 1ccd30a3..806e1095 100644
--- a/packages/app-shell/.eslintrc.json
+++ b/packages/app-shell/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "extends": ["eslint:recommended", "plugin:jsdoc/recommended"],
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
diff --git a/packages/auth/.eslintrc.json b/packages/auth/.eslintrc.json
index 1ccd30a3..806e1095 100644
--- a/packages/auth/.eslintrc.json
+++ b/packages/auth/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "extends": ["eslint:recommended", "plugin:jsdoc/recommended"],
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
diff --git a/packages/check-in-place-select/.eslintrc.json b/packages/check-in-place-select/.eslintrc.json
index 1ccd30a3..806e1095 100644
--- a/packages/check-in-place-select/.eslintrc.json
+++ b/packages/check-in-place-select/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "extends": ["eslint:recommended", "plugin:jsdoc/recommended"],
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
diff --git a/packages/common/.eslintrc.json b/packages/common/.eslintrc.json
index dcb3daa3..806e1095 100644
--- a/packages/common/.eslintrc.json
+++ b/packages/common/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-returns-description": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
diff --git a/packages/common/styles.js b/packages/common/styles.js
index 3c9748c9..31248cd3 100644
--- a/packages/common/styles.js
+++ b/packages/common/styles.js
@@ -1,4 +1,4 @@
-import {css, unsafeCSS} from 'lit-element';
+import {css, unsafeCSS, CSSResult} from 'lit-element';
 import {getIconSVGURL} from './src/icon.js';
 
 /**
diff --git a/packages/common/utils.js b/packages/common/utils.js
index 88cd1c53..e89776e6 100644
--- a/packages/common/utils.js
+++ b/packages/common/utils.js
@@ -292,7 +292,7 @@ export async function asyncArrayForEach(array, callback) {
  * Attempts to determine the mime type of a file or blob
  *
  * @param file
- * @returns {Promise<unknown>}
+ * @returns {Promise<string>}
  */
 export async function getMimeTypeOfFile(file) {
     const getMimeType = (signature) => {
diff --git a/packages/data-table-view/.eslintrc.json b/packages/data-table-view/.eslintrc.json
index dcb3daa3..806e1095 100644
--- a/packages/data-table-view/.eslintrc.json
+++ b/packages/data-table-view/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-returns-description": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
diff --git a/packages/file-handling/.eslintignore b/packages/file-handling/.eslintignore
index c139ed4c..e21b6271 100644
--- a/packages/file-handling/.eslintignore
+++ b/packages/file-handling/.eslintignore
@@ -1,4 +1,5 @@
 /vendor/**
 /dist/**
 *.conf.js
-*.config.js
\ No newline at end of file
+*.config.js
+src/micromodal.es.js
\ No newline at end of file
diff --git a/packages/file-handling/.eslintrc.json b/packages/file-handling/.eslintrc.json
index dcb3daa3..806e1095 100644
--- a/packages/file-handling/.eslintrc.json
+++ b/packages/file-handling/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-returns-description": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
diff --git a/packages/file-handling/src/dbp-nextcloud-file-picker.js b/packages/file-handling/src/dbp-nextcloud-file-picker.js
index 34d6b369..be82a9cf 100644
--- a/packages/file-handling/src/dbp-nextcloud-file-picker.js
+++ b/packages/file-handling/src/dbp-nextcloud-file-picker.js
@@ -258,7 +258,8 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
     /**
      * check mime type of row
      *
-     * @param row.getDatat(), mimetypes
+     * @param data
+     * @param filterParams
      */
     checkFileType(data, filterParams) {
         if (typeof data.mime === 'undefined') {
@@ -445,7 +446,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
             }).catch(error => {
                 console.error(error.message);
                 this.loading = false;
-                this.statusText = html`<span class="error"> ${i18n.t('nextcloud-file-picker.webdav-error', {error: error.message})} </span>`;;
+                this.statusText = html`<span class="error"> ${i18n.t('nextcloud-file-picker.webdav-error', {error: error.message})} </span>`;
         });
     }
 
@@ -629,7 +630,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
      * R = Share, S = Shared Folder, M = Group folder or external source, G = Read, D = Delete, NV / NVW = Write, CK = Create
      *
      * @param file
-     * @return number
+     * @returns {number}
      */
     checkRights(file) {
 
@@ -698,7 +699,8 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
     /**
      * Open the replace Modal Dialog with gui where forbidden actions are disabled
      *
-     * @param file, directory
+     * @param file
+     * @param directory
      */
     replaceModalDialog(file, directory) {
         this.uploadFileObject = file;
diff --git a/packages/file-handling/src/file-source.js b/packages/file-handling/src/file-source.js
index 015f408b..bee797dd 100644
--- a/packages/file-handling/src/file-source.js
+++ b/packages/file-handling/src/file-source.js
@@ -238,7 +238,7 @@ export class FileSource extends ScopedElementsMixin(DBPLitElement) {
      * Decompress files synchronously
      *
      * @param file
-     * @returns {Promise<[]>}
+     * @returns {Promise<Array>}
      */
     async decompressZIP(file) {
         // see: https://stuk.github.io/jszip/
@@ -299,7 +299,9 @@ export class FileSource extends ScopedElementsMixin(DBPLitElement) {
             await response.json().then((json) => {
                 data.json = json;
             });
-        } catch (e) {}
+        } catch (e) {
+            //
+        }
 
         if (sendFile) {
             data.file = file;
diff --git a/packages/knowledge-base-web-page-element-view/.eslintrc.json b/packages/knowledge-base-web-page-element-view/.eslintrc.json
index 1ccd30a3..806e1095 100644
--- a/packages/knowledge-base-web-page-element-view/.eslintrc.json
+++ b/packages/knowledge-base-web-page-element-view/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "extends": ["eslint:recommended", "plugin:jsdoc/recommended"],
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
diff --git a/packages/language-select/.eslintrc.json b/packages/language-select/.eslintrc.json
index 1ccd30a3..806e1095 100644
--- a/packages/language-select/.eslintrc.json
+++ b/packages/language-select/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "extends": ["eslint:recommended", "plugin:jsdoc/recommended"],
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
diff --git a/packages/matomo/.eslintrc.json b/packages/matomo/.eslintrc.json
index 1ccd30a3..806e1095 100644
--- a/packages/matomo/.eslintrc.json
+++ b/packages/matomo/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "extends": ["eslint:recommended", "plugin:jsdoc/recommended"],
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
diff --git a/packages/notification/.eslintrc.json b/packages/notification/.eslintrc.json
index 1ccd30a3..806e1095 100644
--- a/packages/notification/.eslintrc.json
+++ b/packages/notification/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "extends": ["eslint:recommended", "plugin:jsdoc/recommended"],
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
diff --git a/packages/person-profile/.eslintrc.json b/packages/person-profile/.eslintrc.json
index 1ccd30a3..806e1095 100644
--- a/packages/person-profile/.eslintrc.json
+++ b/packages/person-profile/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "extends": ["eslint:recommended", "plugin:jsdoc/recommended"],
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
diff --git a/packages/person-select/.eslintrc.json b/packages/person-select/.eslintrc.json
index 1ccd30a3..806e1095 100644
--- a/packages/person-select/.eslintrc.json
+++ b/packages/person-select/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "extends": ["eslint:recommended", "plugin:jsdoc/recommended"],
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
diff --git a/packages/provider/.eslintrc.json b/packages/provider/.eslintrc.json
index 1ccd30a3..806e1095 100644
--- a/packages/provider/.eslintrc.json
+++ b/packages/provider/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "extends": ["eslint:recommended", "plugin:jsdoc/recommended"],
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
diff --git a/packages/qr-code-scanner/.eslintrc.json b/packages/qr-code-scanner/.eslintrc.json
index 1ccd30a3..806e1095 100644
--- a/packages/qr-code-scanner/.eslintrc.json
+++ b/packages/qr-code-scanner/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "extends": ["eslint:recommended", "plugin:jsdoc/recommended"],
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
-- 
GitLab