From 06377af7e50793c3b3583ea7150e22c357c4dc1c Mon Sep 17 00:00:00 2001
From: LouisLam <louislam@users.noreply.github.com>
Date: Fri, 30 Jul 2021 22:11:14 +0800
Subject: [PATCH] turn off object-curly-newline, it makes const { a, b, c, d }
 = require(...) ugly

---
 .eslintrc.js            | 17 +----------------
 server/model/monitor.js | 42 ++++++++++++++++++++++++++---------------
 2 files changed, 28 insertions(+), 31 deletions(-)

diff --git a/.eslintrc.js b/.eslintrc.js
index 3283fa5a..943e19e9 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -36,22 +36,7 @@ module.exports = {
         }],
         "curly": "error",
         "object-curly-spacing": ["error", "always"],
-        "object-curly-newline": ["error", {
-            "ObjectExpression": {
-                "minProperties": 1,
-            },
-            "ObjectPattern": {
-                "multiline": true,
-                "minProperties": 2,
-            },
-            "ImportDeclaration": {
-                "multiline": true,
-            },
-            "ExportDeclaration": {
-                "multiline": true,
-                //'minProperties': 2,
-            },
-        }],
+        "object-curly-newline": "off",
         "object-property-newline": "error",
         "comma-spacing": "error",
         "brace-style": "error",
diff --git a/server/model/monitor.js b/server/model/monitor.js
index 1d25df93..4ff0b4cb 100644
--- a/server/model/monitor.js
+++ b/server/model/monitor.js
@@ -6,22 +6,12 @@ dayjs.extend(utc)
 dayjs.extend(timezone)
 const axios = require("axios");
 const { Prometheus } = require("../prometheus");
-const {
-    debug, UP, DOWN, PENDING,
-} = require("../../src/util");
-const {
-    tcping, ping, checkCertificate,
-} = require("../util-server");
+const { debug, UP, DOWN, PENDING } = require("../../src/util");
+const { tcping, ping, checkCertificate } = require("../util-server");
 const { R } = require("redbean-node");
 const { BeanModel } = require("redbean-node/dist/bean-model");
 const { Notification } = require("../notification")
 
-//  Use Custom agent to disable session reuse
-//  https://github.com/nodejs/node/issues/3940
-const customAgent = new https.Agent({
-    maxCachedSessions: 0,
-});
-
 /**
  * status:
  *      0 = DOWN
@@ -53,12 +43,28 @@ class Monitor extends BeanModel {
             type: this.type,
             interval: this.interval,
             keyword: this.keyword,
-            ignoreTls: Boolean(this.ignoreTls),
-            upsideDown: Boolean(this.upsideDown),
+            ignoreTls: this.getIgnoreTls(),
+            upsideDown: this.getUpsideDown(),
             notificationIDList,
         };
     }
 
+    /**
+     * Parse to boolean
+     * @returns {boolean}
+     */
+    getIgnoreTls() {
+        return Boolean(this.ignoreTls)
+    }
+
+    /**
+     * Parse to boolean
+     * @returns {boolean}
+     */
+    getUpsideDown() {
+        return Boolean(this.upsideDown);
+    }
+
     start(io) {
         let previousBeat = null;
         let retries = 0;
@@ -90,11 +96,17 @@ class Monitor extends BeanModel {
             try {
                 if (this.type === "http" || this.type === "keyword") {
                     let startTime = dayjs().valueOf();
+
+                    // Use Custom agent to disable session reuse
+                    // https://github.com/nodejs/node/issues/3940
                     let res = await axios.get(this.url, {
                         headers: {
                             "User-Agent": "Uptime-Kuma",
                         },
-                        httpsAgent: customAgent,
+                        httpsAgent: new https.Agent({
+                            maxCachedSessions: 0,
+                            rejectUnauthorized: ! this.getIgnoreTls(),
+                        }),
                     });
                     bean.msg = `${res.status} - ${res.statusText}`
                     bean.ping = dayjs().valueOf() - startTime;