Skip to content

Commit

Permalink
fix: infer unioned handles (#8562)
Browse files Browse the repository at this point in the history
  • Loading branch information
jrandolf committed Jun 24, 2022
1 parent 23622c8 commit 8100cbb
Show file tree
Hide file tree
Showing 14 changed files with 116 additions and 106 deletions.
40 changes: 20 additions & 20 deletions src/api-docs-entry.ts
Expand Up @@ -41,43 +41,43 @@ import {CustomQueryHandler} from './common/QueryHandler.js';
*/
export * from './common/Accessibility.js';
export * from './common/Browser.js';
export * from './node/BrowserFetcher.js';
export * from './node/Puppeteer.js';
export * from './common/Coverage.js';
export * from './common/BrowserConnector.js';
export * from './common/Connection.js';
export * from './common/ConsoleMessage.js';
export * from './common/Coverage.js';
export * from './common/Coverage.js';
export * from './common/DeviceDescriptors.js';
export * from './common/Dialog.js';
export * from './common/DOMWorld.js';
export * from './common/JSHandle.js';
export * from './common/ExecutionContext.js';
export * from './common/Errors.js';
export * from './common/EventEmitter.js';
export * from './common/ExecutionContext.js';
export * from './common/FileChooser.js';
export * from './common/FrameManager.js';
export * from './common/PuppeteerViewport.js';
export * from './common/HTTPRequest.js';
export * from './common/HTTPResponse.js';
export * from './common/Input.js';
export * from './common/JSHandle.js';
export * from './common/LifecycleWatcher.js';
export * from './common/NetworkConditions.js';
export * from './common/NetworkManager.js';
export * from './common/Page.js';
export * from './common/PDFOptions.js';
export * from './common/Product.js';
export * from './common/Puppeteer.js';
export * from './common/BrowserConnector.js';
export * from './node/ProductLauncher.js';
export * from './node/LaunchOptions.js';
export * from './common/HTTPRequest.js';
export * from './common/HTTPResponse.js';
export * from './common/PuppeteerViewport.js';
export * from './common/QueryHandler.js';
export * from './common/SecurityDetails.js';
export * from './common/Target.js';
export * from './common/Errors.js';
export * from './common/TimeoutSettings.js';
export * from './common/Tracing.js';
export * from './common/NetworkManager.js';
export * from './common/WebWorker.js';
export * from './common/USKeyboardLayout.js';
export * from './common/types.js';
export * from './common/PDFOptions.js';
export * from './common/TimeoutSettings.js';
export * from './common/LifecycleWatcher.js';
export * from './common/QueryHandler.js';
export * from './common/NetworkConditions.js';
export * from './common/USKeyboardLayout.js';
export * from './common/WebWorker.js';
export * from './node/BrowserFetcher.js';
export * from './node/LaunchOptions.js';
export * from './node/ProductLauncher.js';
export * from './node/Puppeteer.js';
export * from 'devtools-protocol/types/protocol';

/*
Expand Down
18 changes: 9 additions & 9 deletions src/common/DOMWorld.ts
Expand Up @@ -26,7 +26,7 @@ import {JSHandle} from './JSHandle.js';
import {LifecycleWatcher, PuppeteerLifeCycleEvent} from './LifecycleWatcher.js';
import {_getQueryHandlerAndSelector} from './QueryHandler.js';
import {TimeoutSettings} from './TimeoutSettings.js';
import {EvaluateFunc, EvaluateParams, HandleFor} from './types.js';
import {EvaluateFunc, HandleFor} from './types.js';
import {
debugError,
isNumber,
Expand Down Expand Up @@ -183,7 +183,7 @@ export class DOMWorld {
Func extends EvaluateFunc<Params> = EvaluateFunc<Params>
>(
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<HandleFor<Awaited<ReturnType<Func>>>> {
const context = await this.executionContext();
return context.evaluateHandle(pageFunction, ...args);
Expand All @@ -194,7 +194,7 @@ export class DOMWorld {
Func extends EvaluateFunc<Params> = EvaluateFunc<Params>
>(
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<Awaited<ReturnType<Func>>> {
const context = await this.executionContext();
return context.evaluate(pageFunction, ...args);
Expand Down Expand Up @@ -253,7 +253,7 @@ export class DOMWorld {
>(
selector: Selector,
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<Awaited<ReturnType<Func>>>;
async $eval<
Params extends unknown[],
Expand All @@ -263,7 +263,7 @@ export class DOMWorld {
>(
selector: string,
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<Awaited<ReturnType<Func>>>;
async $eval<
Params extends unknown[],
Expand All @@ -273,7 +273,7 @@ export class DOMWorld {
>(
selector: string,
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<Awaited<ReturnType<Func>>> {
const document = await this._document();
return document.$eval(selector, pageFunction, ...args);
Expand All @@ -288,7 +288,7 @@ export class DOMWorld {
>(
selector: Selector,
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<Awaited<ReturnType<Func>>>;
async $$eval<
Params extends unknown[],
Expand All @@ -298,7 +298,7 @@ export class DOMWorld {
>(
selector: string,
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<Awaited<ReturnType<Func>>>;
async $$eval<
Params extends unknown[],
Expand All @@ -308,7 +308,7 @@ export class DOMWorld {
>(
selector: string,
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<Awaited<ReturnType<Func>>> {
const document = await this._document();
const value = await document.$$eval(selector, pageFunction, ...args);
Expand Down
14 changes: 7 additions & 7 deletions src/common/ElementHandle.ts
Expand Up @@ -16,7 +16,7 @@ import {
} from './JSHandle.js';
import {Page, ScreenshotOptions} from './Page.js';
import {_getQueryHandlerAndSelector} from './QueryHandler.js';
import {EvaluateFunc, EvaluateParams} from './types.js';
import {EvaluateFunc} from './types.js';
import {KeyInput} from './USKeyboardLayout.js';
import {debugError, isString} from './util.js';

Expand Down Expand Up @@ -898,7 +898,7 @@ export class ElementHandle<
>(
selector: Selector,
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<Awaited<ReturnType<Func>>>;
async $eval<
Params extends unknown[],
Expand All @@ -908,7 +908,7 @@ export class ElementHandle<
>(
selector: string,
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<Awaited<ReturnType<Func>>>;
async $eval<
Params extends unknown[],
Expand All @@ -918,7 +918,7 @@ export class ElementHandle<
>(
selector: string,
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<Awaited<ReturnType<Func>>> {
const elementHandle = await this.$(selector);
if (!elementHandle) {
Expand Down Expand Up @@ -963,7 +963,7 @@ export class ElementHandle<
>(
selector: Selector,
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<Awaited<ReturnType<Func>>>;
async $$eval<
Params extends unknown[],
Expand All @@ -973,7 +973,7 @@ export class ElementHandle<
>(
selector: string,
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<Awaited<ReturnType<Func>>>;
async $$eval<
Params extends unknown[],
Expand All @@ -983,7 +983,7 @@ export class ElementHandle<
>(
selector: string,
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<Awaited<ReturnType<Func>>> {
const {updatedSelector, queryHandler} =
_getQueryHandlerAndSelector(selector);
Expand Down
16 changes: 8 additions & 8 deletions src/common/ExecutionContext.ts
Expand Up @@ -18,15 +18,15 @@ import {Protocol} from 'devtools-protocol';
import {assert} from './assert.js';
import {CDPSession} from './Connection.js';
import {DOMWorld} from './DOMWorld.js';
import {EvaluateFunc, HandleFor, EvaluateParams} from './types.js';
import {ElementHandle} from './ElementHandle.js';
import {Frame} from './FrameManager.js';
import {JSHandle} from './JSHandle.js';
import {ElementHandle} from './ElementHandle.js';
import {EvaluateFunc, HandleFor} from './types.js';
import {
getExceptionMessage,
_createJSHandle,
isString,
valueFromRemoteObject,
_createJSHandle,
} from './util.js';

/**
Expand Down Expand Up @@ -145,7 +145,7 @@ export class ExecutionContext {
Func extends EvaluateFunc<Params> = EvaluateFunc<Params>
>(
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<Awaited<ReturnType<Func>>> {
return await this.#evaluate(true, pageFunction, ...args);
}
Expand Down Expand Up @@ -197,7 +197,7 @@ export class ExecutionContext {
Func extends EvaluateFunc<Params> = EvaluateFunc<Params>
>(
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<HandleFor<Awaited<ReturnType<Func>>>> {
return this.#evaluate(false, pageFunction, ...args);
}
Expand All @@ -208,23 +208,23 @@ export class ExecutionContext {
>(
returnByValue: true,
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<Awaited<ReturnType<Func>>>;
async #evaluate<
Params extends unknown[],
Func extends EvaluateFunc<Params> = EvaluateFunc<Params>
>(
returnByValue: false,
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<HandleFor<Awaited<ReturnType<Func>>>>;
async #evaluate<
Params extends unknown[],
Func extends EvaluateFunc<Params> = EvaluateFunc<Params>
>(
returnByValue: boolean,
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<HandleFor<Awaited<ReturnType<Func>>> | Awaited<ReturnType<Func>>> {
const suffix = `//# sourceURL=${EVALUATION_SCRIPT_URL}`;

Expand Down
20 changes: 10 additions & 10 deletions src/common/FrameManager.ts
Expand Up @@ -27,7 +27,7 @@ import {LifecycleWatcher, PuppeteerLifeCycleEvent} from './LifecycleWatcher.js';
import {NetworkManager} from './NetworkManager.js';
import {Page} from './Page.js';
import {TimeoutSettings} from './TimeoutSettings.js';
import {EvaluateFunc, EvaluateParams, HandleFor} from './types.js';
import {EvaluateFunc, HandleFor} from './types.js';
import {debugError, isErrorLike} from './util.js';

const UTILITY_WORLD_NAME = '__puppeteer_utility_world__';
Expand Down Expand Up @@ -889,7 +889,7 @@ export class Frame {
Func extends EvaluateFunc<Params> = EvaluateFunc<Params>
>(
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<HandleFor<Awaited<ReturnType<Func>>>> {
return this._mainWorld.evaluateHandle(pageFunction, ...args);
}
Expand All @@ -908,7 +908,7 @@ export class Frame {
Func extends EvaluateFunc<Params> = EvaluateFunc<Params>
>(
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<Awaited<ReturnType<Func>>> {
return this._mainWorld.evaluate(pageFunction, ...args);
}
Expand Down Expand Up @@ -979,7 +979,7 @@ export class Frame {
>(
selector: Selector,
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<Awaited<ReturnType<Func>>>;
async $eval<
Params extends unknown[],
Expand All @@ -989,7 +989,7 @@ export class Frame {
>(
selector: string,
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<Awaited<ReturnType<Func>>>;
async $eval<
Params extends unknown[],
Expand All @@ -999,7 +999,7 @@ export class Frame {
>(
selector: string,
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<Awaited<ReturnType<Func>>> {
return this._mainWorld.$eval(selector, pageFunction, ...args);
}
Expand Down Expand Up @@ -1032,7 +1032,7 @@ export class Frame {
>(
selector: Selector,
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<Awaited<ReturnType<Func>>>;
async $$eval<
Params extends unknown[],
Expand All @@ -1042,7 +1042,7 @@ export class Frame {
>(
selector: string,
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<Awaited<ReturnType<Func>>>;
async $$eval<
Params extends unknown[],
Expand All @@ -1052,7 +1052,7 @@ export class Frame {
>(
selector: string,
pageFunction: Func | string,
...args: EvaluateParams<Params>
...args: Params
): Promise<Awaited<ReturnType<Func>>> {
return this._mainWorld.$$eval(selector, pageFunction, ...args);
}
Expand Down Expand Up @@ -1440,7 +1440,7 @@ export class Frame {
>(
pageFunction: Func | string,
options: FrameWaitForFunctionOptions = {},
...args: EvaluateParams<Params>
...args: Params
): Promise<HandleFor<Awaited<ReturnType<Func>>>> {
// TODO: Fix when NodeHandle has been added.
return this._mainWorld.waitForFunction(
Expand Down

0 comments on commit 8100cbb

Please sign in to comment.