summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cli/dts/lib.deno.shared_globals.d.ts15
-rw-r--r--cli/dts/lib.deno.worker.d.ts64
-rw-r--r--cli/tests/subdir/worker_types.ts4
-rw-r--r--cli/tests/unit/unit_tests.ts1
-rw-r--r--cli/tests/unit/worker_types.ts14
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();
+ },
+);