From c83aae1b00d22afa65b5b8a225ebbf3fe4757121 Mon Sep 17 00:00:00 2001 From: NGPixel Date: Sun, 29 Mar 2026 23:54:41 -0400 Subject: [PATCH] fix: replace eventemitter2 with emittery --- backend/api/system.js | 2 +- backend/core/db.js | 24 ++++++++++++++---------- backend/index.js | 6 +++--- backend/models/settings.js | 2 +- backend/package-lock.json | 20 +++++++++++++------- backend/package.json | 2 +- 6 files changed, 33 insertions(+), 23 deletions(-) diff --git a/backend/api/system.js b/backend/api/system.js index f9b01ae1..08149fc7 100644 --- a/backend/api/system.js +++ b/backend/api/system.js @@ -70,7 +70,7 @@ async function routes(app, options) { } ) - app.get( + app.post( '/checkForUpdate', { config: { diff --git a/backend/core/db.js b/backend/core/db.js index 90336b5b..72521526 100644 --- a/backend/core/db.js +++ b/backend/core/db.js @@ -172,7 +172,7 @@ export default { async unsubscribeFromNotifications() { if (this.pubsubClient) { WIKI.events.outbound.offAny(this.notifyViaDB) - WIKI.events.inbound.removeAllListeners() + WIKI.events.inbound.clearListeners() this.pubsubClient.release(true) } }, @@ -182,15 +182,19 @@ export default { * @param {string} event Event fired * @param {object} value Payload of the event */ - notifyViaDB(event, value) { - this.pubsubClient.query(`SELECT pg_notify($1, $2)`, [ - 'wiki', - JSON.stringify({ - source: WIKI.INSTANCE_ID, - event, - value - }) - ]) + notifyViaDB({ name, data }) { + try { + WIKI.dbManager.pubsubClient.query(`SELECT pg_notify($1, $2)`, [ + 'wiki', + JSON.stringify({ + source: WIKI.INSTANCE_ID, + event: name, + value: data ?? null + }) + ]) + } catch (err) { + WIKI.logger.warn(err) + } }, /** * Attempt initial connection diff --git a/backend/index.js b/backend/index.js index f10b689d..63daeb6e 100644 --- a/backend/index.js +++ b/backend/index.js @@ -26,7 +26,7 @@ import fastifyView from '@fastify/view' import gracefulServer from '@gquittet/graceful-server' import ajvFormats from 'ajv-formats' import pug from 'pug' -import eventemitter2 from 'eventemitter2' +import Emittery from 'emittery' import NodeCache from 'node-cache' import configSvc from './core/config.js' @@ -121,8 +121,8 @@ async function preBoot() { WIKI.cache = new NodeCache({ checkperiod: 0 }) WIKI.scheduler = await scheduler.init() WIKI.events = { - inbound: new eventemitter2.EventEmitter2(), - outbound: new eventemitter2.EventEmitter2() + inbound: new Emittery(), + outbound: new Emittery() } } diff --git a/backend/models/settings.js b/backend/models/settings.js index 3f1e76d3..b5d48c3e 100644 --- a/backend/models/settings.js +++ b/backend/models/settings.js @@ -28,7 +28,7 @@ class Settings { * @param {Object} value Setting value object */ async updateConfig(key, value) { - await WIKI.models + await WIKI.db .insert(settingsTable) .values({ key, value }) .onConflictDoUpdate({ target: settingsTable.key, set: { value } }) diff --git a/backend/package-lock.json b/backend/package-lock.json index ac166492..ced13125 100644 --- a/backend/package-lock.json +++ b/backend/package-lock.json @@ -27,8 +27,8 @@ "chalk": "5.6.2", "cron-parser": "5.5.0", "drizzle-orm": "1.0.0-beta.15-859cf75", + "emittery": "2.0.0", "es-toolkit": "1.45.1", - "eventemitter2": "6.4.9", "fastify": "5.7.1", "fastify-favicon": "5.0.0", "filesize": "11.0.13", @@ -2872,6 +2872,18 @@ "safe-buffer": "^5.0.1" } }, + "node_modules/emittery": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-2.0.0.tgz", + "integrity": "sha512-FLtgn/CGBXiX3ZtPAm5q4LWWepHChOt55J9u01WFu3dyap2U7IwptlrqoE1COR/kxwdy/DOxIBALSxIW449I1g==", + "license": "MIT", + "engines": { + "node": ">=22" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, "node_modules/end-of-stream": { "version": "1.4.5", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", @@ -2978,12 +2990,6 @@ "node": ">=6" } }, - "node_modules/eventemitter2": { - "version": "6.4.9", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", - "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==", - "license": "MIT" - }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", diff --git a/backend/package.json b/backend/package.json index c7934674..d28a187c 100644 --- a/backend/package.json +++ b/backend/package.json @@ -56,8 +56,8 @@ "chalk": "5.6.2", "cron-parser": "5.5.0", "drizzle-orm": "1.0.0-beta.15-859cf75", + "emittery": "2.0.0", "es-toolkit": "1.45.1", - "eventemitter2": "6.4.9", "fastify": "5.7.1", "fastify-favicon": "5.0.0", "filesize": "11.0.13",