From d632cce129cb7025a34cf0aa7262a38fb12f47c4 Mon Sep 17 00:00:00 2001 From: ud2 Date: Tue, 4 Jul 2023 02:36:55 +0800 Subject: fix(dts): make globals available on globalThis (#19438) This PR changes Web IDL interfaces to be declared with `var` instead of `class`, so that accessing them via `globalThis` does not raise type errors. Closes #13390. --- cli/tsc/dts/lib.deno.worker.d.ts | 46 +++++++++++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 8 deletions(-) (limited to 'cli/tsc/dts/lib.deno.worker.d.ts') diff --git a/cli/tsc/dts/lib.deno.worker.d.ts b/cli/tsc/dts/lib.deno.worker.d.ts index 752a427c9..b165f2086 100644 --- a/cli/tsc/dts/lib.deno.worker.d.ts +++ b/cli/tsc/dts/lib.deno.worker.d.ts @@ -7,13 +7,13 @@ /// /** @category Web Workers */ -interface WorkerGlobalScopeEventMap { +declare interface WorkerGlobalScopeEventMap { "error": ErrorEvent; "unhandledrejection": PromiseRejectionEvent; } /** @category Web Workers */ -declare class WorkerGlobalScope extends EventTarget { +declare interface WorkerGlobalScope extends EventTarget { readonly location: WorkerLocation; readonly navigator: WorkerNavigator; onerror: ((this: WorkerGlobalScope, ev: ErrorEvent) => any) | null; @@ -54,26 +54,38 @@ declare class WorkerGlobalScope extends EventTarget { caches: CacheStorage; } +/** @category Web Workers */ +declare var WorkerGlobalScope: { + readonly prototype: WorkerGlobalScope; + new (): never; +}; + /** @category Web APIs */ -declare class WorkerNavigator { - constructor(); +declare interface WorkerNavigator { readonly hardwareConcurrency: number; readonly userAgent: string; readonly language: string; readonly languages: string[]; } +/** @category Web APIs */ +declare var WorkerNavigator: { + readonly prototype: WorkerNavigator; + new (): never; +}; + /** @category Web APIs */ declare var navigator: WorkerNavigator; /** @category Web Workers */ -interface DedicatedWorkerGlobalScopeEventMap extends WorkerGlobalScopeEventMap { +declare interface DedicatedWorkerGlobalScopeEventMap + extends WorkerGlobalScopeEventMap { "message": MessageEvent; "messageerror": MessageEvent; } /** @category Web APIs */ -declare class DedicatedWorkerGlobalScope extends WorkerGlobalScope { +declare interface DedicatedWorkerGlobalScope extends WorkerGlobalScope { readonly name: string; onmessage: | ((this: DedicatedWorkerGlobalScope, ev: MessageEvent) => any) @@ -112,6 +124,12 @@ declare class DedicatedWorkerGlobalScope extends WorkerGlobalScope { ): void; } +/** @category Web APIs */ +declare var DedicatedWorkerGlobalScope: { + readonly prototype: DedicatedWorkerGlobalScope; + new (): never; +}; + /** @category Web Workers */ declare var name: string; /** @category Web Workers */ @@ -186,8 +204,7 @@ declare function removeEventListener( * * @category Web APIs */ -declare class WorkerLocation { - constructor(); +declare interface WorkerLocation { readonly hash: string; readonly host: string; readonly hostname: string; @@ -200,6 +217,19 @@ declare class WorkerLocation { readonly search: string; } +// TODO(nayeemrmn): Move this to `extensions/web` where its implementation is. +// The types there must first be split into window, worker and global types. +/** The absolute location of the script executed by the Worker. Such an object + * is initialized for each worker and is available via the + * WorkerGlobalScope.location property obtained by calling self.location. + * + * @category Web APIs + */ +declare var WorkerLocation: { + readonly prototype: WorkerLocation; + new (): never; +}; + // TODO(nayeemrmn): Move this to `extensions/web` where its implementation is. // The types there must first be split into window, worker and global types. /** @category Web APIs */ -- cgit v1.2.3