From b93c15a3744a86461ef07fc7f0953ad3afcb111f Mon Sep 17 00:00:00 2001 From: Hari Nugraha <15191978+haricnugraha@users.noreply.github.com> Date: Fri, 22 Dec 2023 10:31:16 +0700 Subject: [PATCH] Refactor: Update Probe in Symon Mode Without Restarting (#1218) * feat: update probe independently in Symon mode * refactor: remove bree dependency * fix: cannot find sqlite file * fix: add parameter to override cycle number --- package-lock.json | 273 +-------------------------------------- package.json | 2 - src/looper/index.ts | 5 +- src/symon/index.ts | 7 +- src/utils/probe-state.ts | 30 +++-- 5 files changed, 29 insertions(+), 288 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6e6939e40..fd78966fa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,6 @@ "packages/*" ], "dependencies": { - "@breejs/ts-worker": "^2.0.0", "@faker-js/faker": "^7.4.0", "@hyperjumptech/monika-notification": "^1.15.13", "@oclif/core": "2.15.0", @@ -22,7 +21,6 @@ "ajv": "^8.11.0", "axios": "^0.27.2", "boxen": "^5.0.0", - "bree": "^9.1.3", "chalk": "^4.1.2", "chokidar": "^3.5.1", "cli-table3": "^0.6.0", @@ -1342,30 +1340,6 @@ "node": ">=6.9.0" } }, - "node_modules/@breejs/later": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/@breejs/later/-/later-4.2.0.tgz", - "integrity": "sha512-EVMD0SgJtOuFeg0lAVbCwa+qeTKILb87jqvLyUtQswGD9+ce2nB52Y5zbTF1Hc0MDFfbydcMcxb47jSdhikVHA==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/@breejs/ts-worker": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@breejs/ts-worker/-/ts-worker-2.0.0.tgz", - "integrity": "sha512-6anHRcmgYlF7mrm/YVRn6rx2cegLuiY3VBxkkimOTWC/dVQeH336imVSuIKEGKTwiuNTPr2hswVdDSneNuXg3A==", - "dependencies": { - "ts-node": "^10.8.1", - "tsconfig-paths": "^4.0.0" - }, - "engines": { - "node": ">= 12.11" - }, - "peerDependencies": { - "bree": ">=9.0.0", - "tsconfig-paths": ">= 4" - } - }, "node_modules/@colors/colors": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", @@ -3918,7 +3892,8 @@ "node_modules/@types/lodash": { "version": "4.14.202", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz", - "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==" + "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==", + "dev": true }, "node_modules/@types/mime": { "version": "1.3.5", @@ -5060,11 +5035,6 @@ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" }, - "node_modules/boolean": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", - "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==" - }, "node_modules/bowser": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz", @@ -5123,26 +5093,6 @@ "node": ">=8" } }, - "node_modules/bree": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/bree/-/bree-9.2.2.tgz", - "integrity": "sha512-KtLjikQwi4RJLMpMj1QEviwh+1UDFIK1ejVa1AiWtAtA0NL7kvLsCpaTxCYTNEx40Q7IA3JWP7utVoGGJh11/w==", - "dependencies": { - "@breejs/later": "^4.1.0", - "boolean": "^3.2.0", - "combine-errors": "^3.0.3", - "cron-validate": "^1.4.5", - "human-interval": "^2.0.1", - "is-string-and-not-blank": "^0.0.2", - "is-valid-path": "^0.1.1", - "ms": "^2.1.3", - "p-wait-for": "3", - "safe-timers": "^1.1.0" - }, - "engines": { - "node": ">=12.17.0 <13.0.0-0||>=13.2.0" - } - }, "node_modules/browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", @@ -5992,15 +5942,6 @@ "node": ">=0.1.90" } }, - "node_modules/combine-errors": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/combine-errors/-/combine-errors-3.0.3.tgz", - "integrity": "sha512-C8ikRNRMygCwaTx+Ek3Yr+OuZzgZjduCOfSQBjbM8V3MfgcjSTeto/GXP6PAwKvJz/v15b7GHZvx5rOlczFw/Q==", - "dependencies": { - "custom-error-instance": "2.1.1", - "lodash.uniqby": "4.5.0" - } - }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -6129,14 +6070,6 @@ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" }, - "node_modules/cron-validate": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/cron-validate/-/cron-validate-1.4.5.tgz", - "integrity": "sha512-nKlOJEnYKudMn/aNyNH8xxWczlfpaazfWV32Pcx/2St51r2bxWbGhZD7uwzMcRhunA/ZNL+Htm/i0792Z59UMQ==", - "dependencies": { - "yup": "0.32.9" - } - }, "node_modules/cross-env": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", @@ -6205,11 +6138,6 @@ "node": ">=0.10.0" } }, - "node_modules/custom-error-instance": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/custom-error-instance/-/custom-error-instance-2.1.1.tgz", - "integrity": "sha512-p6JFxJc3M4OTD2li2qaHkDCw9SfMw82Ldr6OC9Je1aXiGfhx2W8p3GaoeaGrPJTUN9NirTM/KTxHWMUdR1rsUg==" - }, "node_modules/dargs": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz", @@ -9195,14 +9123,6 @@ "node": ">= 6" } }, - "node_modules/human-interval": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/human-interval/-/human-interval-2.0.1.tgz", - "integrity": "sha512-r4Aotzf+OtKIGQCB3odUowy4GfUDTy3aTWTfLd7ZF2gBCy3XW3v/dJLRefZnOFFnjqs5B1TypvS8WarpBkYUNQ==", - "dependencies": { - "numbered": "^1.1.0" - } - }, "node_modules/human-signals": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", @@ -9664,36 +9584,6 @@ "node": ">=8" } }, - "node_modules/is-invalid-path": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-invalid-path/-/is-invalid-path-0.1.0.tgz", - "integrity": "sha512-aZMG0T3F34mTg4eTdszcGXx54oiZ4NtHSft3hWNJMGJXUUqdIj3cOZuHcU0nCWWcY3jd7yRe/3AEm3vSNTpBGQ==", - "dependencies": { - "is-glob": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-invalid-path/node_modules/is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-invalid-path/node_modules/is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", - "dependencies": { - "is-extglob": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-lambda": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", @@ -9879,22 +9769,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-string-and-not-blank": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/is-string-and-not-blank/-/is-string-and-not-blank-0.0.2.tgz", - "integrity": "sha512-FyPGAbNVyZpTeDCTXnzuwbu9/WpNXbCfbHXLpCRpN4GANhS00eEIP5Ef+k5HYSNIzIhdN9zRDoBj6unscECvtQ==", - "dependencies": { - "is-string-blank": "^1.0.1" - }, - "engines": { - "node": ">=6.4.0" - } - }, - "node_modules/is-string-blank": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-string-blank/-/is-string-blank-1.0.1.tgz", - "integrity": "sha512-9H+ZBCVs3L9OYqv8nuUAzpcT9OTgMD1yAWrG7ihlnibdkbtB850heAmYWxHuXc4CHy4lKeK69tN+ny1K7gBIrw==" - }, "node_modules/is-stun": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-stun/-/is-stun-2.0.0.tgz", @@ -9960,17 +9834,6 @@ "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q==", "dev": true }, - "node_modules/is-valid-path": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-valid-path/-/is-valid-path-0.1.1.tgz", - "integrity": "sha512-+kwPrVDu9Ms03L90Qaml+79+6DZHqHyRoANI6IsZJ/g8frhnfchDOBCa0RbQ6/kdHt5CS5OeIEyrYznNuVN+8A==", - "dependencies": { - "is-invalid-path": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -10333,6 +10196,7 @@ "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, "bin": { "json5": "lib/cli.js" }, @@ -10608,57 +10472,12 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, - "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" - }, - "node_modules/lodash._baseiteratee": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/lodash._baseiteratee/-/lodash._baseiteratee-4.7.0.tgz", - "integrity": "sha512-nqB9M+wITz0BX/Q2xg6fQ8mLkyfF7MU7eE+MNBNjTHFKeKaZAPEzEg+E8LWxKWf1DQVflNEn9N49yAuqKh2mWQ==", - "dependencies": { - "lodash._stringtopath": "~4.8.0" - } - }, - "node_modules/lodash._basetostring": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-4.12.0.tgz", - "integrity": "sha512-SwcRIbyxnN6CFEEK4K1y+zuApvWdpQdBHM/swxP962s8HIxPO3alBH5t3m/dl+f4CMUug6sJb7Pww8d13/9WSw==" - }, - "node_modules/lodash._baseuniq": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz", - "integrity": "sha512-Ja1YevpHZctlI5beLA7oc5KNDhGcPixFhcqSiORHNsp/1QTv7amAXzw+gu4YOvErqVlMVyIJGgtzeepCnnur0A==", - "dependencies": { - "lodash._createset": "~4.0.0", - "lodash._root": "~3.0.0" - } - }, - "node_modules/lodash._createset": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/lodash._createset/-/lodash._createset-4.0.3.tgz", - "integrity": "sha512-GTkC6YMprrJZCYU3zcqZj+jkXkrXzq3IPBcF/fIPpNEAB4hZEtXU8zp/RwKOvZl43NUmwDbyRk3+ZTbeRdEBXA==" - }, "node_modules/lodash._reinterpolate": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==", "dev": true }, - "node_modules/lodash._root": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha512-O0pWuFSK6x4EXhM1dhZ8gchNtG7JMqBtrHdoUFUWXD7dJnNSUze1GuyQr5sOs0aCvgGeI3o/OJW8f4ca7FDxmQ==" - }, - "node_modules/lodash._stringtopath": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/lodash._stringtopath/-/lodash._stringtopath-4.8.0.tgz", - "integrity": "sha512-SXL66C731p0xPDC5LZg4wI5H+dJo/EO4KTqOMwLYCH3+FmmfAKJEZCm6ohGpI+T1xwsDsJCfL4OnhorllvlTPQ==", - "dependencies": { - "lodash._basetostring": "~4.12.0" - } - }, "node_modules/lodash.flattendeep": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz", @@ -10696,15 +10515,6 @@ "lodash._reinterpolate": "^3.0.0" } }, - "node_modules/lodash.uniqby": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.5.0.tgz", - "integrity": "sha512-IRt7cfTtHy6f1aRVA5n7kT8rgN3N1nH6MOWLcHfpWG2SH19E3JksLK38MktLxZDhlAjCP9jpIXkOnRXlu6oByQ==", - "dependencies": { - "lodash._baseiteratee": "~4.7.0", - "lodash._baseuniq": "~4.6.0" - } - }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -11767,11 +11577,6 @@ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==" }, - "node_modules/nanoclone": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz", - "integrity": "sha512-wynEP02LmIbLpcYw8uBKpcfF6dmg2vcpKqxeH5UcoKEYdExslsdUA4ugFauuaeYdTB76ez6gJW8XAZ6CgkXYxA==" - }, "node_modules/nanoid": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", @@ -12487,11 +12292,6 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/numbered": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/numbered/-/numbered-1.1.0.tgz", - "integrity": "sha512-pv/ue2Odr7IfYOO0byC1KgBI10wo5YDauLhxY6/saNzAdAs0r1SotGCPzzCLNPL0xtrAwWRialLu23AAu9xO1g==" - }, "node_modules/nyc": { "version": "15.1.0", "resolved": "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz", @@ -13159,20 +12959,6 @@ "node": ">=6" } }, - "node_modules/p-wait-for": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/p-wait-for/-/p-wait-for-3.2.0.tgz", - "integrity": "sha512-wpgERjNkLrBiFmkMEjuZJEWKKDrNfHCKA1OhyN1wg1FrLkULbviEy6py1AyJUgZ72YWFbZ38FIpnqvVqAlDUwA==", - "dependencies": { - "p-timeout": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/package-hash": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz", @@ -14079,11 +13865,6 @@ "node": ">= 8" } }, - "node_modules/property-expr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz", - "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==" - }, "node_modules/protocols": { "version": "1.4.8", "resolved": "https://registry.npmjs.org/protocols/-/protocols-1.4.8.tgz", @@ -14987,11 +14768,6 @@ "node": ">=10" } }, - "node_modules/safe-timers": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-timers/-/safe-timers-1.1.0.tgz", - "integrity": "sha512-9aqY+v5eMvmRaluUEtdRThV1EjlSElzO7HuCj0sTW9xvp++8iJ9t/RWGNWV6/WHcUJLHpyT2SNf/apoKTU2EpA==" - }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -16429,11 +16205,6 @@ "node": ">=0.6" } }, - "node_modules/toposort": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", - "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" - }, "node_modules/tr46": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", @@ -16549,27 +16320,6 @@ } } }, - "node_modules/tsconfig-paths": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", - "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", - "dependencies": { - "json5": "^2.2.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "engines": { - "node": ">=4" - } - }, "node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", @@ -18894,23 +18644,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yup": { - "version": "0.32.9", - "resolved": "https://registry.npmjs.org/yup/-/yup-0.32.9.tgz", - "integrity": "sha512-Ci1qN+i2H0XpY7syDQ0k5zKQ/DoxO0LzPg8PAR/X4Mpj6DqaeCoIYEEjDJwhArh3Fa7GWbQQVDZKeXYlSH4JMg==", - "dependencies": { - "@babel/runtime": "^7.10.5", - "@types/lodash": "^4.14.165", - "lodash": "^4.17.20", - "lodash-es": "^4.17.15", - "nanoclone": "^0.2.1", - "property-expr": "^2.0.4", - "toposort": "^2.0.2" - }, - "engines": { - "node": ">=10" - } - }, "packages/notification": { "name": "@hyperjumptech/monika-notification", "version": "1.15.13", diff --git a/package.json b/package.json index 848b0cccc..456fe9611 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,6 @@ "pack-tarballs": "oclif pack tarballs --targets=linux-x64 --no-xz" }, "dependencies": { - "@breejs/ts-worker": "^2.0.0", "@faker-js/faker": "^7.4.0", "@hyperjumptech/monika-notification": "^1.15.13", "@oclif/core": "2.15.0", @@ -67,7 +66,6 @@ "ajv": "^8.11.0", "axios": "^0.27.2", "boxen": "^5.0.0", - "bree": "^9.1.3", "chalk": "^4.1.2", "chokidar": "^3.5.1", "cli-table3": "^0.6.0", diff --git a/src/looper/index.ts b/src/looper/index.ts index ad9d88473..1a2a044e4 100644 --- a/src/looper/index.ts +++ b/src/looper/index.ts @@ -29,6 +29,7 @@ import { v4 as uuid } from 'uuid' import type { Probe, ProbeAlert } from '../interfaces/probe' +import { getProbes } from '../components/config/probe' import { doProbe } from '../components/probe' import { getContext } from '../context' import { log } from '../utils/pino' @@ -124,7 +125,7 @@ export function startProbing({ return } - if (isEndOfRepeat(probes)) { + if (isEndOfRepeat(getProbes())) { // eslint-disable-next-line unicorn/no-process-exit, no-process-exit process.exit(0) } @@ -133,7 +134,7 @@ export function startProbing({ return } - for (const probe of probes) { + for (const probe of getProbes()) { doProbe({ notifications, probe, diff --git a/src/symon/index.ts b/src/symon/index.ts index db94d558a..db869e2c6 100644 --- a/src/symon/index.ts +++ b/src/symon/index.ts @@ -50,6 +50,7 @@ import { getEventEmitter } from '../utils/events' import { DEFAULT_TIMEOUT } from '../utils/http' import getIp from '../utils/ip' import { log } from '../utils/pino' +import { removeProbeState, syncProbeStateFrom } from '../utils/probe-state' import { getPublicIp, getPublicNetworkInfo, @@ -232,8 +233,6 @@ export default class SymonClient { } } - this.eventEmitter.emit(events.config.updated) - log.info( `[Symon] Get probe changes (${probeChanges.length}) since ${this.probeChangesCheckedAt}` ) @@ -445,6 +444,7 @@ async function applyProbeChanges(probeChanges: ProbeChange[]) { switch (type) { case 'delete': { deleteProbe(probeId) + removeProbeState(probeId) return } @@ -453,7 +453,7 @@ async function applyProbeChanges(probeChanges: ProbeChange[]) { lastEvent ? { ...probe, lastEvent } : probe, ]) updateProbe(probeId, probes[0]) - + syncProbeStateFrom(probes[0], 1) return } @@ -462,6 +462,7 @@ async function applyProbeChanges(probeChanges: ProbeChange[]) { lastEvent ? { ...probe, lastEvent } : probe, ]) addProbe(probes[0]) + syncProbeStateFrom(probes[0]) return } diff --git a/src/utils/probe-state.ts b/src/utils/probe-state.ts index 15af1ae4a..2727d1888 100644 --- a/src/utils/probe-state.ts +++ b/src/utils/probe-state.ts @@ -76,6 +76,12 @@ const probeInterpreters = new Map() export function initializeProbeStates(probes: Probe[]): void { probeInterpreters.clear() + for (const probe of probes) { + syncProbeStateFrom(probe) + } +} + +export function syncProbeStateFrom(probe: Probe, cycle: number = 0) { const getLastStart = (probe: Probe) => probe.lastEvent?.createdAt ? new Date(probe.lastEvent.createdAt) @@ -86,17 +92,19 @@ export function initializeProbeStates(probes: Probe[]): void { ? new Date(probe.lastEvent.recoveredAt) : getLastStart(probe) - for (const probe of probes) { - const interpreter = interpret( - probeStateMachine.withContext({ - cycle: 0, - lastStart: getLastStart(probe), - lastFinish: getLastFinish(probe), - }) - ).start() - - probeInterpreters.set(probe.id, interpreter) - } + const interpreter = interpret( + probeStateMachine.withContext({ + cycle, + lastStart: getLastStart(probe), + lastFinish: getLastFinish(probe), + }) + ).start() + + probeInterpreters.set(probe.id, interpreter) +} + +export function removeProbeState(probeId: string) { + probeInterpreters.delete(probeId) } export function setProbeRunning(probeId: string): string {