Skip to content

Commit fb11228

Browse files
committed
Use MessageEvent in EventSource#addEventListener
Fixes microsoft#736 The event listeners are removed and then recreated to avoid having the existing add/removeEventListeners in addition to the new ones
1 parent ed1fa37 commit fb11228

File tree

6 files changed

+100
-44
lines changed

6 files changed

+100
-44
lines changed

baselines/dom.generated.d.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4906,12 +4906,6 @@ interface EventListenerObject {
49064906
handleEvent(object: Event): void;
49074907
}
49084908

4909-
interface EventSourceEventMap {
4910-
"error": Event;
4911-
"message": MessageEvent;
4912-
"open": Event;
4913-
}
4914-
49154909
interface EventSource extends EventTarget {
49164910
onerror: ((this: EventSource, ev: Event) => any) | null;
49174911
onmessage: ((this: EventSource, ev: MessageEvent) => any) | null;
@@ -4922,15 +4916,15 @@ interface EventSource extends EventTarget {
49224916
readonly url: string;
49234917
/** Returns true if the credentials mode for connection requests to the URL providing the event stream is set to "include", and false otherwise. */
49244918
readonly withCredentials: boolean;
4919+
addEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
4920+
addEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | AddEventListenerOptions): void;
49254921
/** Aborts any instances of the fetch algorithm started for this EventSource object, and sets the readyState attribute to CLOSED. */
49264922
close(): void;
4923+
removeEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
4924+
removeEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | EventListenerOptions): void;
49274925
readonly CLOSED: number;
49284926
readonly CONNECTING: number;
49294927
readonly OPEN: number;
4930-
addEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
4931-
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
4932-
removeEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
4933-
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
49344928
}
49354929

49364930
declare var EventSource: {
@@ -4941,6 +4935,12 @@ declare var EventSource: {
49414935
readonly OPEN: number;
49424936
};
49434937

4938+
interface EventSourceEventMap {
4939+
error: Event;
4940+
message: MessageEvent;
4941+
open: Event;
4942+
}
4943+
49444944
/** EventTarget is a DOM interface implemented by objects that can receive events and may have listeners for them. */
49454945
interface EventTarget {
49464946
/**

baselines/serviceworker.generated.d.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1278,12 +1278,6 @@ interface EventListenerObject {
12781278
handleEvent(object: Event): void;
12791279
}
12801280

1281-
interface EventSourceEventMap {
1282-
"error": Event;
1283-
"message": MessageEvent;
1284-
"open": Event;
1285-
}
1286-
12871281
interface EventSource extends EventTarget {
12881282
onerror: ((this: EventSource, ev: Event) => any) | null;
12891283
onmessage: ((this: EventSource, ev: MessageEvent) => any) | null;
@@ -1294,15 +1288,15 @@ interface EventSource extends EventTarget {
12941288
readonly url: string;
12951289
/** Returns true if the credentials mode for connection requests to the URL providing the event stream is set to "include", and false otherwise. */
12961290
readonly withCredentials: boolean;
1291+
addEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1292+
addEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | AddEventListenerOptions): void;
12971293
/** Aborts any instances of the fetch algorithm started for this EventSource object, and sets the readyState attribute to CLOSED. */
12981294
close(): void;
1295+
removeEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1296+
removeEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | EventListenerOptions): void;
12991297
readonly CLOSED: number;
13001298
readonly CONNECTING: number;
13011299
readonly OPEN: number;
1302-
addEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1303-
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1304-
removeEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1305-
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
13061300
}
13071301

13081302
declare var EventSource: {
@@ -1313,6 +1307,12 @@ declare var EventSource: {
13131307
readonly OPEN: number;
13141308
};
13151309

1310+
interface EventSourceEventMap {
1311+
error: Event;
1312+
message: MessageEvent;
1313+
open: Event;
1314+
}
1315+
13161316
/** EventTarget is a DOM interface implemented by objects that can receive events and may have listeners for them. */
13171317
interface EventTarget {
13181318
/**

baselines/sharedworker.generated.d.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1222,12 +1222,6 @@ interface EventListenerObject {
12221222
handleEvent(object: Event): void;
12231223
}
12241224

1225-
interface EventSourceEventMap {
1226-
"error": Event;
1227-
"message": MessageEvent;
1228-
"open": Event;
1229-
}
1230-
12311225
interface EventSource extends EventTarget {
12321226
onerror: ((this: EventSource, ev: Event) => any) | null;
12331227
onmessage: ((this: EventSource, ev: MessageEvent) => any) | null;
@@ -1238,15 +1232,15 @@ interface EventSource extends EventTarget {
12381232
readonly url: string;
12391233
/** Returns true if the credentials mode for connection requests to the URL providing the event stream is set to "include", and false otherwise. */
12401234
readonly withCredentials: boolean;
1235+
addEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1236+
addEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | AddEventListenerOptions): void;
12411237
/** Aborts any instances of the fetch algorithm started for this EventSource object, and sets the readyState attribute to CLOSED. */
12421238
close(): void;
1239+
removeEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1240+
removeEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | EventListenerOptions): void;
12431241
readonly CLOSED: number;
12441242
readonly CONNECTING: number;
12451243
readonly OPEN: number;
1246-
addEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1247-
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1248-
removeEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1249-
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
12501244
}
12511245

12521246
declare var EventSource: {
@@ -1257,6 +1251,12 @@ declare var EventSource: {
12571251
readonly OPEN: number;
12581252
};
12591253

1254+
interface EventSourceEventMap {
1255+
error: Event;
1256+
message: MessageEvent;
1257+
open: Event;
1258+
}
1259+
12601260
/** EventTarget is a DOM interface implemented by objects that can receive events and may have listeners for them. */
12611261
interface EventTarget {
12621262
/**

baselines/webworker.generated.d.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1316,12 +1316,6 @@ interface EventListenerObject {
13161316
handleEvent(object: Event): void;
13171317
}
13181318

1319-
interface EventSourceEventMap {
1320-
"error": Event;
1321-
"message": MessageEvent;
1322-
"open": Event;
1323-
}
1324-
13251319
interface EventSource extends EventTarget {
13261320
onerror: ((this: EventSource, ev: Event) => any) | null;
13271321
onmessage: ((this: EventSource, ev: MessageEvent) => any) | null;
@@ -1332,15 +1326,15 @@ interface EventSource extends EventTarget {
13321326
readonly url: string;
13331327
/** Returns true if the credentials mode for connection requests to the URL providing the event stream is set to "include", and false otherwise. */
13341328
readonly withCredentials: boolean;
1329+
addEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1330+
addEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | AddEventListenerOptions): void;
13351331
/** Aborts any instances of the fetch algorithm started for this EventSource object, and sets the readyState attribute to CLOSED. */
13361332
close(): void;
1333+
removeEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1334+
removeEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | EventListenerOptions): void;
13371335
readonly CLOSED: number;
13381336
readonly CONNECTING: number;
13391337
readonly OPEN: number;
1340-
addEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
1341-
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
1342-
removeEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
1343-
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
13441338
}
13451339

13461340
declare var EventSource: {
@@ -1351,6 +1345,12 @@ declare var EventSource: {
13511345
readonly OPEN: number;
13521346
};
13531347

1348+
interface EventSourceEventMap {
1349+
error: Event;
1350+
message: MessageEvent;
1351+
open: Event;
1352+
}
1353+
13541354
/** EventTarget is a DOM interface implemented by objects that can receive events and may have listeners for them. */
13551355
interface EventTarget {
13561356
/**

inputfiles/addedTypes.jsonc

Lines changed: 51 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -792,13 +792,60 @@
792792
}
793793
},
794794
"EventSource": {
795-
"events": {
796-
"event": [
797-
{
795+
"methods": {
796+
"method": {
797+
"addEventListener": {
798+
"name": "addEventListener",
799+
"overrideSignatures": [
800+
"addEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void",
801+
"addEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | AddEventListenerOptions): void"
802+
]
803+
},
804+
"removeEventListener": {
805+
"name": "removeEventListener",
806+
"overrideSignatures": [
807+
"removeEventListener<K extends keyof EventSourceEventMap>(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void",
808+
"removeEventListener(type: string, listener: (this: EventSource, event: MessageEvent) => any, options?: boolean | EventListenerOptions): void"
809+
]
810+
}
811+
}
812+
},
813+
"properties": {
814+
"property": {
815+
"onerror": {
816+
"name": "onerror",
817+
"overrideType": "((this: EventSource, ev: Event) => any) | null"
818+
},
819+
"onmessage": {
820+
"name": "onmessage",
821+
"overrideType": "((this: EventSource, ev: MessageEvent) => any) | null"
822+
},
823+
"onopen": {
824+
"name": "onopen",
825+
"overrideType": "((this: EventSource, ev: Event) => any) | null"
826+
}
827+
}
828+
}
829+
},
830+
"EventSourceEventMap": {
831+
"name": "EventSourceEventMap",
832+
"noInterfaceObject": true,
833+
"exposed": "Window Worker",
834+
"properties": {
835+
"property": {
836+
"error": {
837+
"name": "error",
838+
"type": "Event"
839+
},
840+
"message": {
798841
"name": "message",
799842
"type": "MessageEvent"
843+
},
844+
"open": {
845+
"name": "open",
846+
"type": "Event"
800847
}
801-
]
848+
}
802849
}
803850
},
804851
"HTMLBodyElement": {

inputfiles/removedTypes.jsonc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,15 @@
7676
"Element": {
7777
"implements": ["GeometryUtils", "Region"]
7878
},
79+
"EventSource": {
80+
"properties": {
81+
"property": {
82+
"onerror": null,
83+
"onmessage": null,
84+
"onopen": null
85+
}
86+
}
87+
},
7988
"IDBDatabase": {
8089
"methods": {
8190
"method": {

0 commit comments

Comments
 (0)