From c77bdcd3ce15569c0b377ba902c125236bedec8b Mon Sep 17 00:00:00 2001 From: thecodrr Date: Wed, 15 Sep 2021 11:47:10 +0500 Subject: [PATCH 1/3] feat: add db.debug for debug related functions --- packages/core/api/debug.js | 14 ++++++++++++++ packages/core/api/index.js | 2 ++ 2 files changed, 16 insertions(+) create mode 100644 packages/core/api/debug.js diff --git a/packages/core/api/debug.js b/packages/core/api/debug.js new file mode 100644 index 000000000..03b4b737a --- /dev/null +++ b/packages/core/api/debug.js @@ -0,0 +1,14 @@ +export default class Debug { + strip(item) { + return JSON.stringify({ + type: item.type, + notebooks: item.notebooks, + tags: item.tags, + id: item.id, + contentId: item.contentId, + dateEdited: item.dateEdited, + dateDeleted: item.dateDeleted, + dateCreated: item.dateCreated, + }); + } +} diff --git a/packages/core/api/index.js b/packages/core/api/index.js index 1b435d258..0e3894609 100644 --- a/packages/core/api/index.js +++ b/packages/core/api/index.js @@ -19,6 +19,7 @@ import UserManager from "./user-manager"; import http from "../utils/http"; import Monographs from "./monographs"; import Offers from "./offers"; +import Debug from "./debug"; /** * @type {EventSource} @@ -74,6 +75,7 @@ class Database { this.outbox = new Outbox(this); this.monographs = new Monographs(this); this.offers = new Offers(); + this.debug = new Debug(); // collections /** @type {Notes} */ From e4e145ec4d213dc7a5078f88266a1251ceb153d3 Mon Sep 17 00:00:00 2001 From: thecodrr Date: Wed, 15 Sep 2021 12:01:10 +0500 Subject: [PATCH 2/3] feat: allow additional data to be attached to the stripped content --- packages/core/api/debug.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/core/api/debug.js b/packages/core/api/debug.js index 03b4b737a..7d849be41 100644 --- a/packages/core/api/debug.js +++ b/packages/core/api/debug.js @@ -1,6 +1,10 @@ export default class Debug { strip(item) { return JSON.stringify({ + title: !!item.title, + description: !!item.description, + headline: !!item.headline, + colored: !!item.color, type: item.type, notebooks: item.notebooks, tags: item.tags, @@ -9,6 +13,7 @@ export default class Debug { dateEdited: item.dateEdited, dateDeleted: item.dateDeleted, dateCreated: item.dateCreated, + additionalData: item.additionalData, }); } } From 8ebda5b4faf3bccea347e0ecaa987f7e00060335 Mon Sep 17 00:00:00 2001 From: thecodrr Date: Wed, 15 Sep 2021 12:47:22 +0500 Subject: [PATCH 3/3] fix: sse not connecting on user fetch or login --- packages/core/api/index.js | 3 ++- packages/core/utils/event-manager.js | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/core/api/index.js b/packages/core/api/index.js index 0e3894609..57b1436b5 100644 --- a/packages/core/api/index.js +++ b/packages/core/api/index.js @@ -49,7 +49,8 @@ class Database { async init() { EV.subscribeMulti( [EVENTS.userLoggedIn, EVENTS.userFetched, EVENTS.tokenRefreshed], - this.connectSSE.bind(this) + this.connectSSE, + this ); EV.subscribe(EVENTS.userLoggedOut, async () => { await this.monographs.deinit(); diff --git a/packages/core/utils/event-manager.js b/packages/core/utils/event-manager.js index 03dcbb161..8110b66f5 100644 --- a/packages/core/utils/event-manager.js +++ b/packages/core/utils/event-manager.js @@ -7,9 +7,9 @@ class EventManager { this._registry.clear(); } - subscribeMulti(names, handler) { + subscribeMulti(names, handler, thisArg) { names.forEach((name) => { - this.subscribe(name, handler); + this.subscribe(name, handler.bind(thisArg)); }); }