From 2805a685ab072c3957362051ed11351a94679a60 Mon Sep 17 00:00:00 2001 From: Bao Thien Ngo Date: Wed, 2 Jul 2025 18:06:12 -0700 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20=F0=9F=90=9B=20add=20optional=20chai?= =?UTF-8?q?ning=20to=20observer=20entity=20access=20(#19)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updated the observer logic to use optional chaining when accessing the 'all' observers for an entity, preventing potential runtime errors when the entity does not exist. --- utils/observer/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/observer/index.ts b/utils/observer/index.ts index ee060240..2e4a2253 100644 --- a/utils/observer/index.ts +++ b/utils/observer/index.ts @@ -109,7 +109,7 @@ export class EntityObserver< this.observers[entity][event].forEach((x) => x(data, event)); } - if (this.observers[entity].all) { + if (this.observers[entity]?.all) { this.observers[entity].all.forEach((x) => x(data, event)); } } From d265ddbbf2288f86d446b67e526e26d253c34bed Mon Sep 17 00:00:00 2001 From: Bao Thien Ngo Date: Wed, 2 Jul 2025 20:48:43 -0700 Subject: [PATCH 2/3] fix: Accessing "all" on the wrong place of the Observer. --- utils/observer/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/observer/index.ts b/utils/observer/index.ts index 2e4a2253..b5c6f220 100644 --- a/utils/observer/index.ts +++ b/utils/observer/index.ts @@ -109,8 +109,8 @@ export class EntityObserver< this.observers[entity][event].forEach((x) => x(data, event)); } - if (this.observers[entity]?.all) { - this.observers[entity].all.forEach((x) => x(data, event)); + if (this.observers.all) { + this.observers.all.forEach((x) => x(data, event)); } } } From 784a9f0bc8022332782c82c7d265b78bcd4f0261 Mon Sep 17 00:00:00 2001 From: Bao Thien Ngo Date: Wed, 2 Jul 2025 20:57:39 -0700 Subject: [PATCH 3/3] fix: Refactor observer notification logic to improve entity access --- utils/observer/index.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/utils/observer/index.ts b/utils/observer/index.ts index b5c6f220..9c671152 100644 --- a/utils/observer/index.ts +++ b/utils/observer/index.ts @@ -105,12 +105,14 @@ export class EntityObserver< } notify(entity: string, event: Event, data: Data) { - if (this.observers[entity] && this.observers[entity][event]) { - this.observers[entity][event].forEach((x) => x(data, event)); - } - - if (this.observers.all) { - this.observers.all.forEach((x) => x(data, event)); + const observerEntity = this.observers[entity]; + if (observerEntity) { + if (observerEntity[event]) { + observerEntity[event].forEach((x) => x(data, event)); + } + if (observerEntity.all) { + observerEntity.all.forEach((x) => x(data, event)); + } } } }