diff --git a/assets/js/src/pwa.js b/assets/js/src/pwa.js
index c3bdd7272c9ea162e317e4a6ffb962f0e757a097..5e1a43b085c58d0daa25c637bd1d2fea388be7e9 100644
--- a/assets/js/src/pwa.js
+++ b/assets/js/src/pwa.js
@@ -5,14 +5,14 @@
 
   if ('serviceWorker' in navigator) {
     window.addEventListener('load', function () {
-      navigator.serviceWorker.register('/sw.js').then(function (registration) {
+      navigator.serviceWorker.register('/sw.js').then(function (registration) { // eslint-disable-line compat/compat
         console.log('ServiceWorker registration successful with scope: ', registration.scope)
         registration.onupdatefound = function () {
           var installingWorker = registration.installing
           installingWorker.onstatechange = function () {
             switch (installingWorker.state) {
               case 'installed':
-                if (navigator.serviceWorker.controller) {
+                if (navigator.serviceWorker.controller) { // eslint-disable-line compat/compat
                   console.log('new update available')
                   location.reload(true)
                 }
diff --git a/js/.eslintrc.json b/js/.eslintrc.json
index cc4e58ebd119821e37fc3eb319e5d88b6cd8e539..7316e6f2250167f47c86bc71965385916c864c1d 100644
--- a/js/.eslintrc.json
+++ b/js/.eslintrc.json
@@ -7,6 +7,7 @@
     "jquery": true
   },
   "extends": "eslint:recommended",
+  "plugins": ["compat"],
   "parserOptions": {
     "ecmaVersion": 8,
     "sourceType": "module"
@@ -17,6 +18,7 @@
     "no-extra-parens": "error",
     "no-prototype-builtins": "error",
     "no-template-curly-in-string": "error",
+    "compat/compat": "error",
     "valid-jsdoc": "error",
 
     // Best Practices
diff --git a/package-lock.json b/package-lock.json
index 0f222abf69499c18b676cf17217b145f93a4e664..6514f3a13137607308b4b46650408748e8d05b5c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1071,6 +1071,12 @@
         "map-obj": "1.0.1"
       }
     },
+    "caniuse-db": {
+      "version": "1.0.30000671",
+      "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000671.tgz",
+      "integrity": "sha1-nwcbvHuWmUY4zLr0eCnVihV3qO0=",
+      "dev": true
+    },
     "caniuse-lite": {
       "version": "1.0.30000732",
       "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000732.tgz",
@@ -1771,6 +1777,30 @@
         }
       }
     },
+    "eslint-plugin-compat": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-1.0.4.tgz",
+      "integrity": "sha512-16yjDdjrivRQT7/Kov+3O6DMvfg8WYC1JKPAsvf/UNtdLBeMXVYATohAM4nOak1ynGP69mKUlOjw7nroUqY9Sg==",
+      "dev": true,
+      "requires": {
+        "babel-runtime": "6.26.0",
+        "browserslist": "2.1.4",
+        "caniuse-db": "1.0.30000671",
+        "requireindex": "1.1.0"
+      },
+      "dependencies": {
+        "browserslist": {
+          "version": "2.1.4",
+          "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.1.4.tgz",
+          "integrity": "sha1-zFJq9KExK30uBWU+VtDIq3DA4FM=",
+          "dev": true,
+          "requires": {
+            "caniuse-lite": "1.0.30000730",
+            "electron-to-chromium": "1.3.21"
+          }
+        }
+      }
+    },
     "eslint-scope": {
       "version": "3.7.1",
       "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz",
@@ -5501,6 +5531,12 @@
         "resolve-from": "1.0.1"
       }
     },
+    "requireindex": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.1.0.tgz",
+      "integrity": "sha1-5UBLgVV+91225JxacgBIk/4D4WI=",
+      "dev": true
+    },
     "resolve": {
       "version": "1.4.0",
       "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz",
diff --git a/package.json b/package.json
index 28ec33b5d047688a5a59492ce657584f00b68e74..9bd1c6f39cd995ba910b8a33c5ee46103e9d6713 100644
--- a/package.json
+++ b/package.json
@@ -85,6 +85,7 @@
     "clean-css-cli": "^4.1.6",
     "cross-env": "^5.0.5",
     "eslint": "^4.2.0",
+    "eslint-plugin-compat": "^1.0.4",
     "grunt": "^1.0.1",
     "grunt-cli": "^1.2.0",
     "grunt-saucelabs": "^9.0.0",