From ed192d45cb924fd717329ba21891b66845f5f428 Mon Sep 17 00:00:00 2001
From: Guillaume WANG <guillaume.wang@polytechnique.edu>
Date: Thu, 29 Nov 2018 14:44:23 +0100
Subject: [PATCH] fix npm run lint and fix

---
 CONTRIBUTING.md               | 13 ++++++++-----
 package.json                  |  2 +-
 src/adminview/admin_router.ts |  2 +-
 src/app.ts                    |  6 +++---
 src/graphql/resolvers.ts      |  2 +-
 src/ldap/config.ts            |  4 ++--
 src/ldap/users.ts             |  4 ++--
 7 files changed, 18 insertions(+), 15 deletions(-)

diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 45f2b65..90c3ea3 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -148,15 +148,18 @@ Le standard moderne permet d'importer des dépendances en utilisant le mot-clé
 
 ### ESLint
 
-On utilisera ESLint pour standardiser le code : un ensemble de règles de style pour le code sont appliquées, elles sont configurables dans le fichier `.eslintrc.json`. Par exemple, pour l'instant, la config ESLint impose d'utiliser quatre espaces pour les indentations et d'utiliser des points-virgule en fin de ligne.
+On utilise ESLint pour standardiser le style du code. 
+Il est ~~préférable~~ nécessaire de l'installer **globalement** avec `npm install -g eslint`.
 
-Il est préférable de l'installer **globalement** avec `npm install -g eslint`. Pour faire valider les fichiers source par ESLint, utiliser `npm run lint` [^lint-script]. L'option `--fix` permet de corriger les fichiers.
+Lors d'une validation ESLint, un ensemble de règles de style sont appliquées, elles sont configurables dans le fichier `.eslintrc.json`. Par exemple, actuellement, la config ESLint impose d'utiliser quatre espaces pour les indentations et d'utiliser des points-virgule en fin de ligne. 
+Les options de configuration sont bien expliquées dans la [doc dédiée](https://eslint.org/docs/rules/).
 
-[^lint-script]: qui fait appel au script `eslint src/` défini dans le [`package.json`](./package.json)
+ Pour faire valider les fichiers source par ESLint, utiliser `npm run lint` [^lint-script]. L'option `--fix` permet de corriger les fichiers.
+Les différentes façon d'exécuter une validation sont bien expliquées dans la [doc dédiée](https://eslint.org/docs/user-guide/command-line-interface).
 
-Sinon, si vous utilisez Atom ou Visual Studio Code pour éditer votre code, il existe des plugins qui font tourner ESLint en _live_ sur le code et vérifient que tout est en ordre.
+[^lint-script]: qui fait appel au script `eslint --ext .js --ext .ts src/ `, comme défini dans le [`package.json`](./package.json)
 
-Pour mieux comprendre ESLint, se référer à sa [doc](https://eslint.org/docs/user-guide/getting-started).
+Sinon, si vous utilisez Atom ou Visual Studio Code pour éditer votre code, il existe des plugins qui font tourner ESLint en _live_ sur le code et vérifient que tout est en ordre.
 
 ### nodemon
 
diff --git a/package.json b/package.json
index a99aefd..8ad228b 100644
--- a/package.json
+++ b/package.json
@@ -8,7 +8,7 @@
     "watch": "webpack --watch --mode development",
     "start": "nodemon --watch build ./build/bundle.js",
     "doc": "jsdoc --configure configfile_doc.json",
-    "lint": "eslint src/"
+    "lint": "eslint --ext .js --ext .ts src/ "
   },
   "repository": {
     "type": "git",
diff --git a/src/adminview/admin_router.ts b/src/adminview/admin_router.ts
index 62a0666..cf0f44c 100644
--- a/src/adminview/admin_router.ts
+++ b/src/adminview/admin_router.ts
@@ -39,7 +39,7 @@ const whitelist = [
     "mew.two",
     "lippou.tou",
     "guillaume.wang",
-]
+];
 
 /**
  * @desc Création du Express router et setup de middlewares basiques
diff --git a/src/app.ts b/src/app.ts
index 2d4fe46..b00bad0 100644
--- a/src/app.ts
+++ b/src/app.ts
@@ -83,7 +83,7 @@ app.use(favicon(path.resolve(__dirname, 'assets', 'favicon.ico')));
  * https://blog.apollographql.com/a-guide-to-authentication-in-graphql-e002a4039d1
  */
 
- /**
+/**
  * it is also here that we define parameters for *session store*. https://redislabs.com/blog/cache-vs-session-store/
  * configure this right, as express-session docs warns that the default config is not good for prod!!
  * @todo [critical] configure express-session (session store and other options)
@@ -92,7 +92,7 @@ app.use(favicon(path.resolve(__dirname, 'assets', 'favicon.ico')));
  */
 // load data from the session identified by the cookie (if one exists), into req.session
 // on ne manipulera pas req.session directement, on laisser toujours passport le faire pour nous
- app.use(expressSession({
+app.use(expressSession({
     //secret: ldapConfig.sessionSecret, <-- wtf? nothing to do with ldap!
     secret: "asdfjklkjfdsasdfjklkljfdsa",
 
@@ -208,7 +208,7 @@ const context = async ({ req }) => {
         request: req,
         user: { uid, password }
     };
-}
+};
 
 const server = new ApolloServer({
     ...schema,
diff --git a/src/graphql/resolvers.ts b/src/graphql/resolvers.ts
index 0663d77..033ad4c 100644
--- a/src/graphql/resolvers.ts
+++ b/src/graphql/resolvers.ts
@@ -30,7 +30,7 @@ class ChevalierError {
     }
 
     toString(): String {
-        return this.message
+        return this.message;
     }
 }
 
diff --git a/src/ldap/config.ts b/src/ldap/config.ts
index 422e6b5..a05c02d 100644
--- a/src/ldap/config.ts
+++ b/src/ldap/config.ts
@@ -7,8 +7,8 @@ import fs from 'fs';
 import path from 'path';
 import colors from 'colors';
 // Point central ; tous les champs de la BDD sont 'cachés' dans config.json et pas visibles directement
-let path_config = path.resolve('ldap_config.json')
-let path_credentials = path.resolve('ldap_credentials.json')
+let path_config = path.resolve('ldap_config.json');
+let path_credentials = path.resolve('ldap_credentials.json');
 console.log(colors.cyan("Loading LDAP config file from "+path_config));
 console.log(colors.cyan("Loading LDAP credentials from "+path_credentials));
 export const ldapConfig = JSON.parse(fs.readFileSync(path_config).toString());
diff --git a/src/ldap/users.ts b/src/ldap/users.ts
index 67c4a24..f8fbab0 100644
--- a/src/ldap/users.ts
+++ b/src/ldap/users.ts
@@ -17,7 +17,7 @@ import ldap from 'ldapjs';
  * @var {string[]} members - Liste des membres du groupe
  * @var {string[]} admins - Liste des admins du groupe ; supposée être une sous-liste de la précédente
  */
-let groupDataTemplate = {}
+let groupDataTemplate = {};
 for (let key in ldapConfig.group.single)    { groupDataTemplate[key] = ""; }
 for (let key in ldapConfig.group.multiple)  { groupDataTemplate[key] = [""]; }
 
@@ -47,7 +47,7 @@ export type groupData = typeof groupDataTemplate;
  * @var {string[]} forlifes - Alias BR (attention le filtre .fkz n'est plus fonctionnel)
  * @var {string[]} groupsIsAdmin - Liste des gid dont le pax est admin ; supposé sous-liste de groups
  */
-let userDataTemplate = {}
+let userDataTemplate = {};
 for (let key in ldapConfig.user.single)    { userDataTemplate[key] = ""; }
 for (let key in ldapConfig.user.multiple)  { userDataTemplate[key] = [""]; }
 
-- 
GitLab