From a4b700e11c9d16e18579e7c5c9fb36c64608956e Mon Sep 17 00:00:00 2001
From: chris <kokosias@yahoo.gr>
Date: Tue, 28 Jul 2020 05:59:51 +0300
Subject: [PATCH] eslint config

---
 .eslintrc.js                                  | 10 ++++++
 wax-prosemirror-services/package.json         |  4 ++-
 .../src/CommentsService/CommentsService.js    | 34 +++++++++----------
 .../BulletListService/BulletListService.js    | 18 +++++-----
 .../src/MenuService/Menu.js                   | 21 +++++++-----
 .../src/MenuService/MenuCollection.js         |  8 +++--
 .../src/MenuService/MenuService.js            | 29 +++++++---------
 .../src/RulesService/RulesService.js          | 16 +++++----
 wax-prosemirror-services/src/Service.js       |  1 -
 .../BaseToolGroupService/Base.js              |  6 ++--
 10 files changed, 80 insertions(+), 67 deletions(-)

diff --git a/.eslintrc.js b/.eslintrc.js
index f238909d5..ec7a04ca5 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -8,6 +8,15 @@ const { eslint } = require('@coko/lint');
  *
  */
 
+eslint.parser = 'babel-eslint';
+
+eslint.parserOptions = {
+  ecmaVersion: 6,
+  ecmaFeatures: {
+    experimentalObjectRestSpread: true,
+  },
+};
+
 eslint.rules = {
   'sort-keys': 'off',
   'import/no-extraneous-dependencies': [
@@ -21,6 +30,7 @@ eslint.rules = {
     2,
     { ignore: ['children', 'className', 'onClick', 'theme'] },
   ],
+  'import/no-named-as-default': 0,
 };
 
 module.exports = eslint;
diff --git a/wax-prosemirror-services/package.json b/wax-prosemirror-services/package.json
index 14d168651..68433fbe0 100644
--- a/wax-prosemirror-services/package.json
+++ b/wax-prosemirror-services/package.json
@@ -25,7 +25,9 @@
     "prosemirror-state": "^1.3.2",
     "prosemirror-transform": "^1.2.3",
     "prosemirror-view": "^1.13.11",
-    "prosemirror-history": "^1.1.3"
+    "prosemirror-history": "^1.1.3",
+    "highlight.js": "^10.1.1",
+    "prosemirror-highlightjs": "^0.2.0"
   },
   "peerDependencies": {
     "react": "^16.13.1",
diff --git a/wax-prosemirror-services/src/CommentsService/CommentsService.js b/wax-prosemirror-services/src/CommentsService/CommentsService.js
index d79a5c039..a728e91d4 100644
--- a/wax-prosemirror-services/src/CommentsService/CommentsService.js
+++ b/wax-prosemirror-services/src/CommentsService/CommentsService.js
@@ -1,39 +1,37 @@
-import Service from "../Service";
-import { commentMark } from "wax-prosemirror-schema";
-import { RightArea, CommentBubbleComponent } from "wax-prosemirror-components";
-import { CommentPlugin } from "wax-prosemirror-plugins";
+import Service from '../Service';
+import { commentMark } from 'wax-prosemirror-schema';
+import { RightArea, CommentBubbleComponent } from 'wax-prosemirror-components';
+import { CommentPlugin } from 'wax-prosemirror-plugins';
 
-const PLUGIN_KEY = "commentPlugin";
+const PLUGIN_KEY = 'commentPlugin';
 
 export default class CommentsService extends Service {
-  name = "CommentsService";
-
   boot() {
     this.app.PmPlugins.add(PLUGIN_KEY, CommentPlugin(PLUGIN_KEY));
-    const createOverlay = this.container.get("CreateOverlay");
-    const layout = this.container.get("Layout");
+    const createOverlay = this.container.get('CreateOverlay');
+    const layout = this.container.get('Layout');
     createOverlay(
       CommentBubbleComponent,
       {
-        showComment: activeViewId => activeViewId === "main",
-        group: "main"
+        showComment: activeViewId => activeViewId === 'main',
+        group: 'main',
       },
       {
-        markType: "",
+        markType: '',
         followCursor: false,
-        selection: true
-      }
+        selection: true,
+      },
     );
-    layout.addComponent("rightArea", RightArea);
+    layout.addComponent('rightArea', RightArea);
   }
 
   register() {
-    const createMark = this.container.get("CreateMark");
+    const createMark = this.container.get('CreateMark');
     createMark(
       {
-        comment: commentMark
+        comment: commentMark,
       },
-      { toWaxSchema: true }
+      { toWaxSchema: true },
     );
   }
 }
diff --git a/wax-prosemirror-services/src/ListsService/BulletListService/BulletListService.js b/wax-prosemirror-services/src/ListsService/BulletListService/BulletListService.js
index e4e323854..0c0193e73 100644
--- a/wax-prosemirror-services/src/ListsService/BulletListService/BulletListService.js
+++ b/wax-prosemirror-services/src/ListsService/BulletListService/BulletListService.js
@@ -1,24 +1,24 @@
-import Service from "../../Service";
-import { wrapInList } from "prosemirror-schema-list";
-import { bulletListNode } from "wax-prosemirror-schema";
-import BulletList from "./BulletList";
+// import { wrapInList } from 'prosemirror-schema-list';
+import { bulletListNode } from 'wax-prosemirror-schema';
+import Service from '../../Service';
+import BulletList from './BulletList';
 
 class BulletListService extends Service {
   boot() {
-    const shortCuts = this.container.get("ShortCuts");
+    const shortCuts = this.container.get('ShortCuts');
     // shortCuts.addShortCut({
     //   "Shift-Ctrl-8": wrapInList(this.schema.nodes.bulletlist)
     // });
   }
 
   register() {
-    this.container.bind("BulletList").to(BulletList);
-    const createNode = this.container.get("CreateNode");
+    this.container.bind('BulletList').to(BulletList);
+    const createNode = this.container.get('CreateNode');
     createNode(
       {
-        bulletlist: bulletListNode
+        bulletlist: bulletListNode,
       },
-      { toWaxSchema: true }
+      { toWaxSchema: true },
     );
   }
 }
diff --git a/wax-prosemirror-services/src/MenuService/Menu.js b/wax-prosemirror-services/src/MenuService/Menu.js
index b917193d1..13bde1557 100644
--- a/wax-prosemirror-services/src/MenuService/Menu.js
+++ b/wax-prosemirror-services/src/MenuService/Menu.js
@@ -1,14 +1,14 @@
-import React, { useMemo, useContext } from "react";
-import { injectable } from "inversify";
-import { WaxContext } from "wax-prosemirror-core";
-import ToolGroup from "../lib/ToolGroup";
-import MenuWrapper from "./MenuWrapper";
+import React, { useMemo, useContext } from 'react';
+import { injectable } from 'inversify';
+import { WaxContext } from 'wax-prosemirror-core';
+import ToolGroup from '../lib/ToolGroup';
+import MenuWrapper from './MenuWrapper';
 
 @injectable()
-export default class Menu {
+class Menu {
   toolGroups = [];
   config = {};
-  name = "";
+  name = '';
   constructor(config, createTools) {
     this.name = config.name;
     this.config = config;
@@ -35,7 +35,10 @@ export default class Menu {
 
   render() {
     return () => {
-      const { view: { main }, activeView } = useContext(WaxContext);
+      const {
+        view: { main },
+        activeView,
+      } = useContext(WaxContext);
       const Bar = useMemo(() => (
         <MenuWrapper items={this.toolGroups} view={activeView || {}} />
       ));
@@ -43,3 +46,5 @@ export default class Menu {
     };
   }
 }
+
+export default Menu;
diff --git a/wax-prosemirror-services/src/MenuService/MenuCollection.js b/wax-prosemirror-services/src/MenuService/MenuCollection.js
index ab72fc3b5..0f6d3c7d0 100644
--- a/wax-prosemirror-services/src/MenuService/MenuCollection.js
+++ b/wax-prosemirror-services/src/MenuService/MenuCollection.js
@@ -1,9 +1,9 @@
-import { injectable, multiInject } from "inversify";
+import { injectable, multiInject } from 'inversify';
 
 @injectable()
-export default class MenuCollection {
+class MenuCollection {
   menus = [];
-  constructor(@multiInject("Menu") menus) {
+  constructor(@multiInject('Menu') menus) {
     this.menus = menus;
   }
 
@@ -11,3 +11,5 @@ export default class MenuCollection {
     return this.menus.find(menu => menu.name === name);
   }
 }
+
+export default MenuCollection;
diff --git a/wax-prosemirror-services/src/MenuService/MenuService.js b/wax-prosemirror-services/src/MenuService/MenuService.js
index 08fa2c5ec..420d8a3a7 100644
--- a/wax-prosemirror-services/src/MenuService/MenuService.js
+++ b/wax-prosemirror-services/src/MenuService/MenuService.js
@@ -1,13 +1,13 @@
-import { isPlainObject, isFunction } from "lodash";
-import Service from "../Service";
-import Menu from "./Menu";
-import MenuCollection from "./MenuCollection";
+import { isPlainObject, isFunction } from 'lodash';
+import Service from '../Service';
+import Menu from './Menu';
+import MenuCollection from './MenuCollection';
 
 class MenuService extends Service {
-  name = "MenuService";
+  name = 'MenuService';
   boot() {
-    const { menus } = this.container.get("MenuCollection");
-    const layout = this.container.get("Layout");
+    const { menus } = this.container.get('MenuCollection');
+    const layout = this.container.get('Layout');
     menus.forEach(menu => {
       layout.addComponent(menu.config.templateArea, menu.render());
     });
@@ -16,19 +16,16 @@ class MenuService extends Service {
   register() {
     /* create Menu Factory */
     this.config.map(conf => {
-      this.container.bind("Menu").toFactory(context => {
-        return new Menu(conf, context.container.get("createTools"));
+      this.container.bind('Menu').toFactory(context => {
+        return new Menu(conf, context.container.get('createTools'));
       });
     });
 
     /*create MenuCollection of Menus */
-    this.container
-      .bind("MenuCollection")
-      .to(MenuCollection)
-      .inSingletonScope();
+    this.container.bind('MenuCollection').to(MenuCollection).inSingletonScope();
 
     /* create factory of tools */
-    this.container.bind("createTools").toFactory(context => {
+    this.container.bind('createTools').toFactory(context => {
       return configTools => {
         const tools = [];
         configTools.forEach(tool => {
@@ -45,9 +42,7 @@ class MenuService extends Service {
             tools.push(tl);
           } catch (error) {
             throw Error(
-              `Could not load Service ${
-                tool.name
-              }. Please configure service through config`
+              `Could not load Service ${tool.name}. Please configure service through config`,
             );
           }
         });
diff --git a/wax-prosemirror-services/src/RulesService/RulesService.js b/wax-prosemirror-services/src/RulesService/RulesService.js
index 0e4951171..ea4bdac5c 100644
--- a/wax-prosemirror-services/src/RulesService/RulesService.js
+++ b/wax-prosemirror-services/src/RulesService/RulesService.js
@@ -1,23 +1,25 @@
-import Service from "../Service";
-import Rules from "./Rules";
+import Service from '../Service';
+import Rules from './Rules';
 
 export default class RulesService extends Service {
-  name = "RulesService";
+  name = 'RulesService';
 
   boot() {
     const configRules = this.config;
-    const rules = this.container.get("Rules");
+    const rules = this.container.get('Rules');
     rules.addRule(configRules);
     rules.createRules();
   }
 
   register() {
-    const PmPlugins = this.app.PmPlugins;
+    const { PmPlugins } = this.app;
 
     this.container
-      .bind("Rules")
+      .bind('Rules')
       .toDynamicValue(() => {
-        const { schema: { schema } } = this.app;
+        const {
+          schema: { schema },
+        } = this.app;
 
         return new Rules(PmPlugins, schema);
       })
diff --git a/wax-prosemirror-services/src/Service.js b/wax-prosemirror-services/src/Service.js
index 1dc9d2321..0b078a74b 100644
--- a/wax-prosemirror-services/src/Service.js
+++ b/wax-prosemirror-services/src/Service.js
@@ -1,5 +1,4 @@
 class Service {
-  app = {};
   setApp(app) {
     this.app = app;
   }
diff --git a/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/Base.js b/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/Base.js
index d9d35019a..8cdb86f2d 100644
--- a/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/Base.js
+++ b/wax-prosemirror-services/src/WaxToolGroups/BaseToolGroupService/Base.js
@@ -1,10 +1,10 @@
-import { injectable, inject } from "inversify";
-import ToolGroup from "../../lib/ToolGroup";
+import { injectable, inject } from 'inversify';
+import ToolGroup from '../../lib/ToolGroup';
 
 @injectable()
 class Base extends ToolGroup {
   tools = [];
-  constructor(@inject("Undo") undo, @inject("Redo") redo) {
+  constructor(@inject('Undo') undo, @inject('Redo') redo) {
     super();
     this.tools = [undo, redo];
   }
-- 
GitLab