diff --git a/.eslintrc.js b/.eslintrc.js
new file mode 100644
index 0000000000000000000000000000000000000000..e80a21fba01fcb6c95cc7b364043ddf7c168aaee
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,15 @@
+module.exports = {
+  parser: "@typescript-eslint/parser",
+  parserOptions: {
+    ecmaVersion: 2020,
+    sourceType: "module",
+  },
+  extends: [
+    "plugin:@typescript-eslint/recommended",
+    "prettier/@typescript-eslint",
+    // Doit rester en dernier :
+    "plugin:prettier/recommended"
+  ],
+  rules: {
+  }
+};
diff --git a/.gitignore b/.gitignore
index 89abeef14f831ea5e3581bc1a2203e1ebf4e5077..1b6c33824936e1c7d1e151213dd7b4cb73770a9b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,4 @@
 .php_cs.*cache
 .idea
 composer.lock
+package-lock.json
diff --git a/.prettierrc.js b/.prettierrc.js
new file mode 100644
index 0000000000000000000000000000000000000000..2c66e64e9b6b35ae5adf1683ca8363879f334d15
--- /dev/null
+++ b/.prettierrc.js
@@ -0,0 +1,7 @@
+module.exports = {
+  semi: true,
+  trailingComma: "all",
+  singleQuote: true,
+  printWidth: 120,
+  tabWidth: 4
+};
diff --git a/package-lock.json b/package-lock.json
deleted file mode 100644
index ee4bffe1a55452f7d45f736724a4cd590bb70b0a..0000000000000000000000000000000000000000
Binary files a/package-lock.json and /dev/null differ
diff --git a/package.json b/package.json
index c10b4aef1f9333c7794c69474b9f25ad1dcd419a..127859a3068a02f720df1cbc19a309327070439e 100644
--- a/package.json
+++ b/package.json
@@ -5,8 +5,10 @@
   "main": "dist/index.js",
   "directories": {},
   "scripts": {
+    "lint": "eslint --fix '{src,tests}/**/*.{js,ts}' --quiet --fix",
     "test": "echo \"Error: no test specified\" && exit 1",
-    "test:compile-generated": "tsc --project tsconfig.ci.json --pretty --noEmit"
+    "test:compile-generated": "tsc --project tsconfig.ci.json --pretty --noEmit",
+    "test:lint": "eslint '{src,tests}/**/*.{js,ts}'"
   },
   "repository": {
     "type": "git",
@@ -30,14 +32,13 @@
   "devDependencies": {
     "@angular/common": "^7.2.15",
     "@angular/core": "^7.2.15",
-    "irstea-typescript-config": "^1.0.7",
-    "prettier": "^1.19.1",
-    "prettier-tslint": "^0.4.2",
+    "@typescript-eslint/eslint-plugin": "^4.15.1",
+    "@typescript-eslint/parser": "^4.15.1",
+    "eslint": "^7.20.0",
+    "eslint-config-prettier": "^7.2.0",
+    "eslint-plugin-prettier": "^3.3.1",
+    "prettier": "^2.2.1",
     "rxjs-marbles": "^5.0.3",
-    "rxjs-tslint-rules": "^4.26.1",
-    "tslint": "^5.20.1",
-    "tslint-config-prettier": "^1.18.0",
-    "tslint-plugin-prettier": "^2.0.1",
     "typescript": "^3.7.2",
     "zone.js": "~0.8.26"
   }
diff --git a/tslint.json b/tslint.json
deleted file mode 100644
index 588e071ee7ce30f9683c12d0c82faaee43bf308d..0000000000000000000000000000000000000000
--- a/tslint.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "extends": [
-    "irstea-typescript-config"
-  ],
-  "rulesDirectory": [
-    "node_modules/codelyzer"
-  ],
-  "linterOptions": {
-    "exclude": [
-      "node_modules/**",
-      "dist/**",
-      "coverage/**"
-    ]
-  }
-}