From e803cee3d3fe4a2e7de8cc9d0ecdc383f0ad668e Mon Sep 17 00:00:00 2001 From: Ali Afroozeh Date: Thu, 17 May 2018 23:36:24 +0200 Subject: [PATCH 1/2] Update EventSource definitions to be compatible with lib.es6.d.ts --- types/eventsource/eventsource-tests.ts | 26 +++++++++++++------ types/eventsource/index.d.ts | 18 +++++++------ .../lib/eventsource-polyfill/index.d.ts | 15 ++++++----- 3 files changed, 36 insertions(+), 23 deletions(-) diff --git a/types/eventsource/eventsource-tests.ts b/types/eventsource/eventsource-tests.ts index 62f867926f..3cef9cfc78 100644 --- a/types/eventsource/eventsource-tests.ts +++ b/types/eventsource/eventsource-tests.ts @@ -1,17 +1,27 @@ import EventSource = require("eventsource"); const eventSource = new EventSource("http://foobar"); -eventSource.onmessage = (x: any) => {}; -eventSource.onerror = (x: any) => {}; -eventSource.onopen = (x: any) => {}; -eventSource.addEventListener = (type: string, x: any) => {}; +let readyState: number = eventSource.readyState; +let url: string = eventSource.url; +let withCredentials: boolean = eventSource.withCredentials; +eventSource.onmessage = (event: Event) => {}; +eventSource.onerror = (event: Event) => {}; +eventSource.onopen = (event: Event) => {}; +eventSource.addEventListener = (type: string, listener: (e: Event) => void) => {}; +eventSource.dispatchEvent = (event: Event) => true; +eventSource.removeEventListener = (type: string, listener: (e: Event) => void) => {}; eventSource.close(); import EventSourcePolyfill = require("eventsource/lib/eventsource-polyfill"); const eventSourcePolyfill = new EventSourcePolyfill("http://foobar"); -eventSourcePolyfill.onmessage = (x: any) => {}; -eventSourcePolyfill.onerror = (x: any) => {}; -eventSourcePolyfill.onopen = (x: any) => {}; -eventSourcePolyfill.addEventListener = (type: string, x: any) => {}; +readyState = eventSourcePolyfill.readyState; +url = eventSourcePolyfill.url; +withCredentials = eventSource.withCredentials; +eventSourcePolyfill.onmessage = (event: Event) => {}; +eventSourcePolyfill.onerror = (event: Event) => {}; +eventSourcePolyfill.onopen = (event: Event) => {}; +eventSourcePolyfill.addEventListener = (type: string, listener: (e: Event) => void) => {}; +eventSourcePolyfill.dispatchEvent = (event: Event) => true; +eventSourcePolyfill.removeEventListener = (type: string, listener: (e: Event) => void) => {}; eventSourcePolyfill.close(); diff --git a/types/eventsource/index.d.ts b/types/eventsource/index.d.ts index 62859d037b..613745e7a5 100644 --- a/types/eventsource/index.d.ts +++ b/types/eventsource/index.d.ts @@ -1,22 +1,24 @@ // Type definitions for eventsource 1.0 // Project: http://github.com/EventSource/eventsource // Definitions by: Scott Lee Davis +// Ali Afroozeh // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -// TypeScript Version: 2.2 +// TypeScript Version: 2.8 declare class EventSource { constructor(url: string, eventSourceInitDict?: EventSource.EventSourceInitDict); - - static CLOSED: EventSource.ReadyState; - static CONNECTING: EventSource.ReadyState; - static OPEN: EventSource.ReadyState; - - url: string; - readyState: EventSource.ReadyState; + readonly CLOSED: number; + readonly CONNECTING: number; + readonly OPEN: number; + readonly url: string; + readonly readyState: number; + readonly withCredentials: boolean; onopen: EventListener; onmessage: EventListener; onerror: EventListener; addEventListener(type: string, listener: EventListener): void; + dispatchEvent(evt: Event): boolean; + removeEventListener(type: string, listener?: EventListener): void; close(): void; } diff --git a/types/eventsource/lib/eventsource-polyfill/index.d.ts b/types/eventsource/lib/eventsource-polyfill/index.d.ts index 3e4ad378e4..1d4347d0aa 100644 --- a/types/eventsource/lib/eventsource-polyfill/index.d.ts +++ b/types/eventsource/lib/eventsource-polyfill/index.d.ts @@ -1,16 +1,17 @@ declare class EventSource { constructor(url: string, eventSourceInitDict?: EventSource.EventSourceInitDict); - - static CLOSED: EventSource.ReadyState; - static CONNECTING: EventSource.ReadyState; - static OPEN: EventSource.ReadyState; - - url: string; - readyState: EventSource.ReadyState; + readonly CLOSED: number; + readonly CONNECTING: number; + readonly OPEN: number; + readonly url: string; + readonly readyState: number; + readonly withCredentials: boolean; onopen: EventListener; onmessage: EventListener; onerror: EventListener; addEventListener(type: string, listener: EventListener): void; + dispatchEvent(evt: Event): boolean; + removeEventListener(type: string, listener?: EventListener): void; close(): void; } From a761e4477db0d7ab909a8f58acd44af217839fb9 Mon Sep 17 00:00:00 2001 From: Ali Afroozeh Date: Tue, 22 May 2018 22:02:52 +0200 Subject: [PATCH 2/2] Add ReadyState typing as static fields --- types/eventsource/eventsource-tests.ts | 12 ++++++++++++ types/eventsource/index.d.ts | 5 +++++ .../eventsource/lib/eventsource-polyfill/index.d.ts | 5 +++++ 3 files changed, 22 insertions(+) diff --git a/types/eventsource/eventsource-tests.ts b/types/eventsource/eventsource-tests.ts index 3cef9cfc78..c1b53030cd 100644 --- a/types/eventsource/eventsource-tests.ts +++ b/types/eventsource/eventsource-tests.ts @@ -2,6 +2,12 @@ import EventSource = require("eventsource"); const eventSource = new EventSource("http://foobar"); let readyState: number = eventSource.readyState; +let closedState: number = eventSource.CLOSED; +closedState = EventSource.CLOSED; +let connectingState: number = eventSource.CONNECTING; +connectingState = EventSource.CONNECTING; +let openState: number = eventSource.OPEN; +openState = EventSource.OPEN; let url: string = eventSource.url; let withCredentials: boolean = eventSource.withCredentials; eventSource.onmessage = (event: Event) => {}; @@ -16,6 +22,12 @@ import EventSourcePolyfill = require("eventsource/lib/eventsource-polyfill"); const eventSourcePolyfill = new EventSourcePolyfill("http://foobar"); readyState = eventSourcePolyfill.readyState; +closedState = eventSource.CLOSED; +closedState = EventSource.CLOSED; +connectingState = eventSource.CONNECTING; +connectingState = EventSource.CONNECTING; +openState = eventSource.OPEN; +openState = EventSource.OPEN; url = eventSourcePolyfill.url; withCredentials = eventSource.withCredentials; eventSourcePolyfill.onmessage = (event: Event) => {}; diff --git a/types/eventsource/index.d.ts b/types/eventsource/index.d.ts index 613745e7a5..1308515917 100644 --- a/types/eventsource/index.d.ts +++ b/types/eventsource/index.d.ts @@ -6,7 +6,12 @@ // TypeScript Version: 2.8 declare class EventSource { + static readonly CLOSED: number; + static readonly CONNECTING: number; + static readonly OPEN: number; + constructor(url: string, eventSourceInitDict?: EventSource.EventSourceInitDict); + readonly CLOSED: number; readonly CONNECTING: number; readonly OPEN: number; diff --git a/types/eventsource/lib/eventsource-polyfill/index.d.ts b/types/eventsource/lib/eventsource-polyfill/index.d.ts index 1d4347d0aa..86b82105cc 100644 --- a/types/eventsource/lib/eventsource-polyfill/index.d.ts +++ b/types/eventsource/lib/eventsource-polyfill/index.d.ts @@ -1,5 +1,10 @@ declare class EventSource { + static readonly CLOSED: number; + static readonly CONNECTING: number; + static readonly OPEN: number; + constructor(url: string, eventSourceInitDict?: EventSource.EventSourceInitDict); + readonly CLOSED: number; readonly CONNECTING: number; readonly OPEN: number;