From a07a89fe385c479259d5ab684893cd0e60abfc49 Mon Sep 17 00:00:00 2001 From: turbocrime Date: Mon, 24 Mar 2025 15:01:07 -0700 Subject: [PATCH 1/2] fix: `LockManager.request` promises the return of its callback parameter --- baselines/dom.generated.d.ts | 8 +-- baselines/serviceworker.generated.d.ts | 8 +-- baselines/sharedworker.generated.d.ts | 8 +-- baselines/ts5.5/dom.generated.d.ts | 8 +-- baselines/ts5.5/serviceworker.generated.d.ts | 8 +-- baselines/ts5.5/sharedworker.generated.d.ts | 8 +-- baselines/ts5.5/webworker.generated.d.ts | 8 +-- baselines/webworker.generated.d.ts | 8 +-- inputfiles/overridingTypes.jsonc | 63 ++++++++++++++++++++ 9 files changed, 95 insertions(+), 32 deletions(-) diff --git a/baselines/dom.generated.d.ts b/baselines/dom.generated.d.ts index 0b09311f8..749287a6a 100644 --- a/baselines/dom.generated.d.ts +++ b/baselines/dom.generated.d.ts @@ -15697,8 +15697,8 @@ interface LockManager { /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager/query) */ query(): Promise; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager/request) */ - request(name: string, callback: LockGrantedCallback): Promise; - request(name: string, options: LockOptions, callback: LockGrantedCallback): Promise; + request(name: string, callback: LockGrantedCallback): Promise; + request(name: string, options: LockOptions, callback: LockGrantedCallback): Promise; } declare var LockManager: { @@ -28445,8 +28445,8 @@ interface IntersectionObserverCallback { (entries: IntersectionObserverEntry[], observer: IntersectionObserver): void; } -interface LockGrantedCallback { - (lock: Lock | null): any; +interface LockGrantedCallback { + (lock: Lock | null): T; } interface MediaSessionActionHandler { diff --git a/baselines/serviceworker.generated.d.ts b/baselines/serviceworker.generated.d.ts index d03491c69..9e9187f9d 100644 --- a/baselines/serviceworker.generated.d.ts +++ b/baselines/serviceworker.generated.d.ts @@ -3746,8 +3746,8 @@ interface LockManager { /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager/query) */ query(): Promise; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager/request) */ - request(name: string, callback: LockGrantedCallback): Promise; - request(name: string, options: LockOptions, callback: LockGrantedCallback): Promise; + request(name: string, callback: LockGrantedCallback): Promise; + request(name: string, options: LockOptions, callback: LockGrantedCallback): Promise; } declare var LockManager: { @@ -8522,8 +8522,8 @@ interface Console { declare var console: Console; -interface LockGrantedCallback { - (lock: Lock | null): any; +interface LockGrantedCallback { + (lock: Lock | null): T; } interface OnErrorEventHandlerNonNull { diff --git a/baselines/sharedworker.generated.d.ts b/baselines/sharedworker.generated.d.ts index 80a7896f1..02ce26b81 100644 --- a/baselines/sharedworker.generated.d.ts +++ b/baselines/sharedworker.generated.d.ts @@ -3565,8 +3565,8 @@ interface LockManager { /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager/query) */ query(): Promise; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager/request) */ - request(name: string, callback: LockGrantedCallback): Promise; - request(name: string, options: LockOptions, callback: LockGrantedCallback): Promise; + request(name: string, callback: LockGrantedCallback): Promise; + request(name: string, options: LockOptions, callback: LockGrantedCallback): Promise; } declare var LockManager: { @@ -8460,8 +8460,8 @@ interface Console { declare var console: Console; -interface LockGrantedCallback { - (lock: Lock | null): any; +interface LockGrantedCallback { + (lock: Lock | null): T; } interface OnErrorEventHandlerNonNull { diff --git a/baselines/ts5.5/dom.generated.d.ts b/baselines/ts5.5/dom.generated.d.ts index e1b9525bd..f7cd2658c 100644 --- a/baselines/ts5.5/dom.generated.d.ts +++ b/baselines/ts5.5/dom.generated.d.ts @@ -15677,8 +15677,8 @@ interface LockManager { /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager/query) */ query(): Promise; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager/request) */ - request(name: string, callback: LockGrantedCallback): Promise; - request(name: string, options: LockOptions, callback: LockGrantedCallback): Promise; + request(name: string, callback: LockGrantedCallback): Promise; + request(name: string, options: LockOptions, callback: LockGrantedCallback): Promise; } declare var LockManager: { @@ -28423,8 +28423,8 @@ interface IntersectionObserverCallback { (entries: IntersectionObserverEntry[], observer: IntersectionObserver): void; } -interface LockGrantedCallback { - (lock: Lock | null): any; +interface LockGrantedCallback { + (lock: Lock | null): T; } interface MediaSessionActionHandler { diff --git a/baselines/ts5.5/serviceworker.generated.d.ts b/baselines/ts5.5/serviceworker.generated.d.ts index d03491c69..9e9187f9d 100644 --- a/baselines/ts5.5/serviceworker.generated.d.ts +++ b/baselines/ts5.5/serviceworker.generated.d.ts @@ -3746,8 +3746,8 @@ interface LockManager { /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager/query) */ query(): Promise; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager/request) */ - request(name: string, callback: LockGrantedCallback): Promise; - request(name: string, options: LockOptions, callback: LockGrantedCallback): Promise; + request(name: string, callback: LockGrantedCallback): Promise; + request(name: string, options: LockOptions, callback: LockGrantedCallback): Promise; } declare var LockManager: { @@ -8522,8 +8522,8 @@ interface Console { declare var console: Console; -interface LockGrantedCallback { - (lock: Lock | null): any; +interface LockGrantedCallback { + (lock: Lock | null): T; } interface OnErrorEventHandlerNonNull { diff --git a/baselines/ts5.5/sharedworker.generated.d.ts b/baselines/ts5.5/sharedworker.generated.d.ts index 80a7896f1..02ce26b81 100644 --- a/baselines/ts5.5/sharedworker.generated.d.ts +++ b/baselines/ts5.5/sharedworker.generated.d.ts @@ -3565,8 +3565,8 @@ interface LockManager { /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager/query) */ query(): Promise; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager/request) */ - request(name: string, callback: LockGrantedCallback): Promise; - request(name: string, options: LockOptions, callback: LockGrantedCallback): Promise; + request(name: string, callback: LockGrantedCallback): Promise; + request(name: string, options: LockOptions, callback: LockGrantedCallback): Promise; } declare var LockManager: { @@ -8460,8 +8460,8 @@ interface Console { declare var console: Console; -interface LockGrantedCallback { - (lock: Lock | null): any; +interface LockGrantedCallback { + (lock: Lock | null): T; } interface OnErrorEventHandlerNonNull { diff --git a/baselines/ts5.5/webworker.generated.d.ts b/baselines/ts5.5/webworker.generated.d.ts index 8b2139eb6..196af85d1 100644 --- a/baselines/ts5.5/webworker.generated.d.ts +++ b/baselines/ts5.5/webworker.generated.d.ts @@ -4300,8 +4300,8 @@ interface LockManager { /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager/query) */ query(): Promise; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager/request) */ - request(name: string, callback: LockGrantedCallback): Promise; - request(name: string, options: LockOptions, callback: LockGrantedCallback): Promise; + request(name: string, callback: LockGrantedCallback): Promise; + request(name: string, options: LockOptions, callback: LockGrantedCallback): Promise; } declare var LockManager: { @@ -9627,8 +9627,8 @@ interface FrameRequestCallback { (time: DOMHighResTimeStamp): void; } -interface LockGrantedCallback { - (lock: Lock | null): any; +interface LockGrantedCallback { + (lock: Lock | null): T; } interface OnErrorEventHandlerNonNull { diff --git a/baselines/webworker.generated.d.ts b/baselines/webworker.generated.d.ts index 8b2139eb6..196af85d1 100644 --- a/baselines/webworker.generated.d.ts +++ b/baselines/webworker.generated.d.ts @@ -4300,8 +4300,8 @@ interface LockManager { /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager/query) */ query(): Promise; /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/LockManager/request) */ - request(name: string, callback: LockGrantedCallback): Promise; - request(name: string, options: LockOptions, callback: LockGrantedCallback): Promise; + request(name: string, callback: LockGrantedCallback): Promise; + request(name: string, options: LockOptions, callback: LockGrantedCallback): Promise; } declare var LockManager: { @@ -9627,8 +9627,8 @@ interface FrameRequestCallback { (time: DOMHighResTimeStamp): void; } -interface LockGrantedCallback { - (lock: Lock | null): any; +interface LockGrantedCallback { + (lock: Lock | null): T; } interface OnErrorEventHandlerNonNull { diff --git a/inputfiles/overridingTypes.jsonc b/inputfiles/overridingTypes.jsonc index 417cc458e..4e74e0ee2 100644 --- a/inputfiles/overridingTypes.jsonc +++ b/inputfiles/overridingTypes.jsonc @@ -467,6 +467,16 @@ "overrideSignatures": [ "new (options: any): AudioWorkletProcessorImpl" ] + }, + "LockGrantedCallback": { + "typeParameters": [ + { + "name": "T" + } + ], + "overrideSignatures": [ + "(lock: Lock | null): T" + ] } } }, @@ -3643,6 +3653,59 @@ } } } + }, + "LockManager": { + "methods": { + "method": { + "request": { + "typeParameters": { + "name": "T" + }, + "signature": { + "0": { + "typeParameters": [ + { + "name": "T" + } + ], + "param": [ + { + "name": "name", + "overrideType": "string" + }, + { + "name": "callback", + "overrideType": "LockGrantedCallback" + } + ], + "overrideType": "Promise" + }, + "1": { + "typeParameters": [ + { + "name": "T" + } + ], + "param": [ + { + "name": "name", + "overrideType": "string" + }, + { + "name": "options", + "overrideType": "LockOptions" + }, + { + "name": "callback", + "overrideType": "LockGrantedCallback" + } + ], + "overrideType": "Promise" + } + } + } + } + } } } }, From 5e329ccac6eedeb3e07dfde105ccfea5d472c527 Mon Sep 17 00:00:00 2001 From: the letter L <134443988+turbocrime@users.noreply.github.com> Date: Tue, 25 Mar 2025 17:39:20 -0700 Subject: [PATCH 2/2] Apply suggestions from code review Co-authored-by: Kagami Sascha Rosylight --- inputfiles/overridingTypes.jsonc | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/inputfiles/overridingTypes.jsonc b/inputfiles/overridingTypes.jsonc index 4e74e0ee2..54b76e393 100644 --- a/inputfiles/overridingTypes.jsonc +++ b/inputfiles/overridingTypes.jsonc @@ -474,9 +474,11 @@ "name": "T" } ], - "overrideSignatures": [ - "(lock: Lock | null): T" - ] + "signature": { + "0": { + "overrideType": "T" + } + } } } }, @@ -3669,10 +3671,6 @@ } ], "param": [ - { - "name": "name", - "overrideType": "string" - }, { "name": "callback", "overrideType": "LockGrantedCallback" @@ -3687,14 +3685,6 @@ } ], "param": [ - { - "name": "name", - "overrideType": "string" - }, - { - "name": "options", - "overrideType": "LockOptions" - }, { "name": "callback", "overrideType": "LockGrantedCallback"