Skip to content

Commit 053a7df

Browse files
committed
feat(): emit warning when emitting event while disconnected
1 parent fa7d29f commit 053a7df

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

src/runtime/event-emitter.ts

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,20 @@ import { getElement, win } from '@platform';
55

66

77
export const createEvent = (ref: d.RuntimeRef, name: string, flags: number) => {
8-
const elm = getElement(ref);
8+
const elm = getElement(ref) as HTMLElement;
99
return {
10-
emit: (detail: any) => elm.dispatchEvent(
11-
new (BUILD.hydrateServerSide ? (win as any).CustomEvent : CustomEvent)(name, {
12-
bubbles: !!(flags & EVENT_FLAGS.Bubbles),
13-
composed: !!(flags & EVENT_FLAGS.Composed),
14-
cancelable: !!(flags & EVENT_FLAGS.Cancellable),
15-
detail
16-
})
17-
)
10+
emit: (detail: any) => {
11+
if (BUILD.isDev && !elm.isConnected) {
12+
console.warn(`The "${name}" event was emitted, but the dispatcher node is not longer connected to the dom.`);
13+
}
14+
return elm.dispatchEvent(
15+
new (BUILD.hydrateServerSide ? (win as any).CustomEvent : CustomEvent)(name, {
16+
bubbles: !!(flags & EVENT_FLAGS.Bubbles),
17+
composed: !!(flags & EVENT_FLAGS.Composed),
18+
cancelable: !!(flags & EVENT_FLAGS.Cancellable),
19+
detail
20+
})
21+
);
22+
}
1823
};
1924
};

0 commit comments

Comments
 (0)