diff options
Diffstat (limited to 'cli')
-rw-r--r-- | cli/dts/lib.deno.shared_globals.d.ts | 15 | ||||
-rw-r--r-- | cli/dts/lib.deno.worker.d.ts | 64 | ||||
-rw-r--r-- | cli/tests/subdir/worker_types.ts | 4 | ||||
-rw-r--r-- | cli/tests/unit/unit_tests.ts | 1 | ||||
-rw-r--r-- | cli/tests/unit/worker_types.ts | 14 |
5 files changed, 69 insertions, 29 deletions
diff --git a/cli/dts/lib.deno.shared_globals.d.ts b/cli/dts/lib.deno.shared_globals.d.ts index 6b6a1bf85..03b85f50d 100644 --- a/cli/dts/lib.deno.shared_globals.d.ts +++ b/cli/dts/lib.deno.shared_globals.d.ts @@ -606,15 +606,20 @@ declare class URL { toJSON(): string; } -interface MessageEventInit extends EventInit { - data?: any; +interface MessageEventInit<T = any> extends EventInit { + data?: T; origin?: string; lastEventId?: string; } -declare class MessageEvent extends Event { - readonly data: any; - readonly origin: string; +declare class MessageEvent<T = any> extends Event { + /** + * Returns the data of the message. + */ + readonly data: T; + /** + * Returns the last event ID string, for server-sent events. + */ readonly lastEventId: string; constructor(type: string, eventInitDict?: MessageEventInit); } diff --git a/cli/dts/lib.deno.worker.d.ts b/cli/dts/lib.deno.worker.d.ts index 9f8845f4a..3fc95a97e 100644 --- a/cli/dts/lib.deno.worker.d.ts +++ b/cli/dts/lib.deno.worker.d.ts @@ -9,35 +9,51 @@ declare interface DedicatedWorkerGlobalScope { self: DedicatedWorkerGlobalScope & typeof globalThis; - onmessage: (e: MessageEvent) => void; - onmessageerror: (e: MessageEvent) => void; - onerror: undefined | typeof onerror; - name: typeof __workerMain.name; - close: typeof __workerMain.close; - postMessage: typeof __workerMain.postMessage; + onmessage: + | (( + this: DedicatedWorkerGlobalScope & typeof globalThis, + ev: MessageEvent, + ) => any) + | null; + onmessageerror: + | (( + this: DedicatedWorkerGlobalScope & typeof globalThis, + ev: MessageEvent, + ) => any) + | null; + onerror: + | (( + this: DedicatedWorkerGlobalScope & typeof globalThis, + ev: ErrorEvent, + ) => any) + | null; + name: string; + close: () => void; + postMessage: (message: any) => void; Deno: typeof Deno; } declare var self: DedicatedWorkerGlobalScope & typeof globalThis; -declare var onmessage: ((e: { data: any }) => Promise<void> | void) | undefined; +declare var onmessage: + | (( + this: DedicatedWorkerGlobalScope & typeof globalThis, + ev: MessageEvent, + ) => any) + | null; +declare var onmessageerror: + | (( + this: DedicatedWorkerGlobalScope & typeof globalThis, + ev: MessageEvent, + ) => any) + | null; declare var onerror: | (( - msg: string, - source: string, - lineno: number, - colno: number, - e: Event, - ) => boolean | void) - | undefined; -declare var close: typeof __workerMain.close; -declare var name: typeof __workerMain.name; -declare var postMessage: typeof __workerMain.postMessage; - -declare namespace __workerMain { - export let onmessage: (e: { data: any }) => void; - export function postMessage(data: any): void; - export function close(): void; - export const name: string; -} + this: DedicatedWorkerGlobalScope & typeof globalThis, + ev: ErrorEvent, + ) => any) + | null; +declare var close: () => void; +declare var name: string; +declare var postMessage: (message: any) => void; /* eslint-enable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any */ diff --git a/cli/tests/subdir/worker_types.ts b/cli/tests/subdir/worker_types.ts new file mode 100644 index 000000000..7a651e35a --- /dev/null +++ b/cli/tests/subdir/worker_types.ts @@ -0,0 +1,4 @@ +// eslint-disable-next-line require-await +self.onmessage = async (_msg: MessageEvent) => { + self.postMessage("hello"); +}; diff --git a/cli/tests/unit/unit_tests.ts b/cli/tests/unit/unit_tests.ts index e97c485a8..f545e55fa 100644 --- a/cli/tests/unit/unit_tests.ts +++ b/cli/tests/unit/unit_tests.ts @@ -74,6 +74,7 @@ import "./umask_test.ts"; import "./url_test.ts"; import "./url_search_params_test.ts"; import "./utime_test.ts"; +import "./worker_types.ts"; import "./write_file_test.ts"; import "./write_text_file_test.ts"; import "./performance_test.ts"; diff --git a/cli/tests/unit/worker_types.ts b/cli/tests/unit/worker_types.ts new file mode 100644 index 000000000..e8bc7eb78 --- /dev/null +++ b/cli/tests/unit/worker_types.ts @@ -0,0 +1,14 @@ +// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. +import { assert, unitTest } from "./test_util.ts"; + +unitTest( + { perms: { read: true } }, + function utimeSyncFileSuccess() { + const w = new Worker( + new URL("../subdir/worker_types.ts", import.meta.url).href, + { type: "module" }, + ); + assert(w); + w.terminate(); + }, +); |