From ba4a69cc596f0e5e967887aaf8b60cc53cb24bec Mon Sep 17 00:00:00 2001
From: Christoph Reiter <reiter.christoph@gmail.com>
Date: Mon, 21 Dec 2020 15:21:01 +0100
Subject: [PATCH] person-select: add eslint support

---
 packages/person-select/.eslintignore          |  3 +++
 packages/person-select/.eslintrc.json         | 25 +++++++++++++++++++
 packages/person-select/package.json           |  7 ++++--
 packages/person-select/src/i18n/de/select2.js |  2 +-
 packages/person-select/src/i18n/en/select2.js |  2 +-
 packages/person-select/src/person-select.js   |  6 +++--
 6 files changed, 39 insertions(+), 6 deletions(-)
 create mode 100644 packages/person-select/.eslintignore
 create mode 100644 packages/person-select/.eslintrc.json

diff --git a/packages/person-select/.eslintignore b/packages/person-select/.eslintignore
new file mode 100644
index 00000000..7b596da7
--- /dev/null
+++ b/packages/person-select/.eslintignore
@@ -0,0 +1,3 @@
+/vendor/**
+/dist/**
+/*.js
\ No newline at end of file
diff --git a/packages/person-select/.eslintrc.json b/packages/person-select/.eslintrc.json
new file mode 100644
index 00000000..1ccd30a3
--- /dev/null
+++ b/packages/person-select/.eslintrc.json
@@ -0,0 +1,25 @@
+{
+    "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
+    }
+}
\ No newline at end of file
diff --git a/packages/person-select/package.json b/packages/person-select/package.json
index d7d3c815..cb983e55 100644
--- a/packages/person-select/package.json
+++ b/packages/person-select/package.json
@@ -31,7 +31,9 @@
     "rollup-plugin-copy": "^3.1.0",
     "rollup-plugin-delete": "^2.0.0",
     "rollup-plugin-serve": "^1.0.1",
-    "rollup-plugin-terser": "^7.0.2"
+    "rollup-plugin-terser": "^7.0.2",
+    "eslint": "^7.3.1",
+    "eslint-plugin-jsdoc": "^30.6.4"
   },
   "dependencies": {
     "@dbp-toolkit/auth": "^0.1.0",
@@ -53,6 +55,7 @@
     "watch": "npm run watch-local",
     "watch-local": "rollup -c --watch",
     "watch-dev": "rollup -c --watch --environment BUILD:development",
-    "test": "npm run build-test && karma start --singleRun"
+    "test": "npm run build-test && karma start --singleRun",
+    "lint": "eslint ."
   }
 }
diff --git a/packages/person-select/src/i18n/de/select2.js b/packages/person-select/src/i18n/de/select2.js
index 487734d3..bef156f0 100644
--- a/packages/person-select/src/i18n/de/select2.js
+++ b/packages/person-select/src/i18n/de/select2.js
@@ -43,4 +43,4 @@ export default function () {
             return 'Entferne alle Gegenstände';
         }
     };
-};
+}
diff --git a/packages/person-select/src/i18n/en/select2.js b/packages/person-select/src/i18n/en/select2.js
index 12ba14cc..d172d72e 100644
--- a/packages/person-select/src/i18n/en/select2.js
+++ b/packages/person-select/src/i18n/en/select2.js
@@ -47,4 +47,4 @@ export default function () {
             return 'Remove all items';
         }
     };
-};
+}
diff --git a/packages/person-select/src/person-select.js b/packages/person-select/src/person-select.js
index d91dd9ce..91bd3d52 100644
--- a/packages/person-select/src/person-select.js
+++ b/packages/person-select/src/person-select.js
@@ -1,8 +1,8 @@
 import $ from 'jquery';
 import {findObjectInApiResults} from './utils.js';
 import select2 from 'select2';
-import select2LangDe from './i18n/de/select2'
-import select2LangEn from './i18n/en/select2'
+import select2LangDe from './i18n/de/select2';
+import select2LangEn from './i18n/en/select2';
 import JSONLD from '@dbp-toolkit/common/jsonld';
 import {css, html, LitElement} from 'lit-element';
 import {ScopedElementsMixin} from '@open-wc/scoped-elements';
@@ -115,6 +115,8 @@ export class PersonSelect extends ScopedElementsMixin(LitElement) {
 
     /**
      * Initializes the Select2 selector
+     *
+     * @param ignorePreset
      */
     initSelect2(ignorePreset = false) {
         const that = this;
-- 
GitLab