remove "as any"

This commit is contained in:
Simon Knott 2025-02-03 14:32:11 +01:00
parent d80f3297aa
commit c2826f0aeb
No known key found for this signature in database
GPG key ID: 8CEDC00028084AEC
2 changed files with 20 additions and 17 deletions

View file

@ -35,23 +35,23 @@ export class MockingProxyDispatcher extends Dispatcher<MockingProxy, channels.Mo
}); });
this.addObjectListener(MockingProxy.Events.Route, (route: Route) => { this.addObjectListener(MockingProxy.Events.Route, (route: Route) => {
const requestDispatcher = RequestDispatcher.from(this as any, route.request()); const requestDispatcher = RequestDispatcher.from(this, route.request());
this._dispatchEvent('route', { route: RouteDispatcher.from(requestDispatcher, route) }); this._dispatchEvent('route', { route: RouteDispatcher.from(requestDispatcher, route) });
}); });
this.addObjectListener(MockingProxy.Events.Request, ({ request, correlation }: { request: Request, correlation: string }) => { this.addObjectListener(MockingProxy.Events.Request, ({ request, correlation }: { request: Request, correlation: string }) => {
this._dispatchEvent('request', { request: RequestDispatcher.from(this as any, request), correlation }); this._dispatchEvent('request', { request: RequestDispatcher.from(this, request), correlation });
}); });
this.addObjectListener(MockingProxy.Events.RequestFailed, (request: Request) => { this.addObjectListener(MockingProxy.Events.RequestFailed, (request: Request) => {
this._dispatchEvent('requestFailed', { this._dispatchEvent('requestFailed', {
request: RequestDispatcher.from(this as any, request), request: RequestDispatcher.from(this, request),
failureText: request._failureText ?? undefined, failureText: request._failureText ?? undefined,
responseEndTiming: request._responseEndTiming, responseEndTiming: request._responseEndTiming,
}); });
}); });
this.addObjectListener(MockingProxy.Events.RequestFinished, (request: Request) => { this.addObjectListener(MockingProxy.Events.RequestFinished, (request: Request) => {
this._dispatchEvent('requestFinished', { this._dispatchEvent('requestFinished', {
request: RequestDispatcher.from(this as any, request), request: RequestDispatcher.from(this, request),
response: ResponseDispatcher.fromNullable(this as any, request._existingResponse()), response: ResponseDispatcher.fromNullable(this, request._existingResponse()),
responseEndTiming: request._responseEndTiming, responseEndTiming: request._responseEndTiming,
}); });
}); });

View file

@ -26,30 +26,33 @@ import type { BrowserContextDispatcher } from './browserContextDispatcher';
import type { PageDispatcher } from './pageDispatcher'; import type { PageDispatcher } from './pageDispatcher';
import { FrameDispatcher } from './frameDispatcher'; import { FrameDispatcher } from './frameDispatcher';
import { WorkerDispatcher } from './pageDispatcher'; import { WorkerDispatcher } from './pageDispatcher';
import type { MockingProxyDispatcher } from './mockingProxyDispatcher';
export class RequestDispatcher extends Dispatcher<Request, channels.RequestChannel, BrowserContextDispatcher | PageDispatcher | FrameDispatcher> implements channels.RequestChannel { type NetworkScope = BrowserContextDispatcher | MockingProxyDispatcher;
export class RequestDispatcher extends Dispatcher<Request, channels.RequestChannel, NetworkScope | PageDispatcher | FrameDispatcher> implements channels.RequestChannel {
_type_Request: boolean; _type_Request: boolean;
private _browserContextDispatcher: BrowserContextDispatcher; private _networkScope: NetworkScope;
static from(scope: BrowserContextDispatcher, request: Request): RequestDispatcher { static from(scope: NetworkScope, request: Request): RequestDispatcher {
const result = existingDispatcher<RequestDispatcher>(request); const result = existingDispatcher<RequestDispatcher>(request);
return result || new RequestDispatcher(scope, request); return result || new RequestDispatcher(scope, request);
} }
static fromNullable(scope: BrowserContextDispatcher, request: Request | null): RequestDispatcher | undefined { static fromNullable(scope: NetworkScope, request: Request | null): RequestDispatcher | undefined {
return request ? RequestDispatcher.from(scope, request) : undefined; return request ? RequestDispatcher.from(scope, request) : undefined;
} }
private constructor(scope: BrowserContextDispatcher, request: Request) { private constructor(scope: NetworkScope, request: Request) {
const postData = request.postDataBuffer(); const postData = request.postDataBuffer();
// Always try to attach request to the page, if not, frame. // Always try to attach request to the page, if not, frame.
const frame = request.frame(); const frame = request.frame();
const page = request.frame()?._page; const page = request.frame()?._page;
const pageDispatcher = page ? existingDispatcher<PageDispatcher>(page) : null; const pageDispatcher = page ? existingDispatcher<PageDispatcher>(page) : null;
const frameDispatcher = frame ? FrameDispatcher.from(scope, frame) : null; const frameDispatcher = frame ? FrameDispatcher.from(scope as BrowserContextDispatcher, frame) : null;
super(pageDispatcher || frameDispatcher || scope, request, 'Request', { super(pageDispatcher || frameDispatcher || scope, request, 'Request', {
frame: FrameDispatcher.fromNullable(scope, request.frame()), frame: FrameDispatcher.fromNullable(scope as BrowserContextDispatcher, request.frame()),
serviceWorker: WorkerDispatcher.fromNullable(scope, request.serviceWorker()), serviceWorker: WorkerDispatcher.fromNullable(scope as BrowserContextDispatcher, request.serviceWorker()),
url: request.url(), url: request.url(),
resourceType: request.resourceType(), resourceType: request.resourceType(),
method: request.method(), method: request.method(),
@ -59,7 +62,7 @@ export class RequestDispatcher extends Dispatcher<Request, channels.RequestChann
redirectedFrom: RequestDispatcher.fromNullable(scope, request.redirectedFrom()), redirectedFrom: RequestDispatcher.fromNullable(scope, request.redirectedFrom()),
}); });
this._type_Request = true; this._type_Request = true;
this._browserContextDispatcher = scope; this._networkScope = scope;
} }
async rawRequestHeaders(params?: channels.RequestRawRequestHeadersParams): Promise<channels.RequestRawRequestHeadersResult> { async rawRequestHeaders(params?: channels.RequestRawRequestHeadersParams): Promise<channels.RequestRawRequestHeadersResult> {
@ -67,20 +70,20 @@ export class RequestDispatcher extends Dispatcher<Request, channels.RequestChann
} }
async response(): Promise<channels.RequestResponseResult> { async response(): Promise<channels.RequestResponseResult> {
return { response: ResponseDispatcher.fromNullable(this._browserContextDispatcher, await this._object.response()) }; return { response: ResponseDispatcher.fromNullable(this._networkScope, await this._object.response()) };
} }
} }
export class ResponseDispatcher extends Dispatcher<Response, channels.ResponseChannel, RequestDispatcher> implements channels.ResponseChannel { export class ResponseDispatcher extends Dispatcher<Response, channels.ResponseChannel, RequestDispatcher> implements channels.ResponseChannel {
_type_Response = true; _type_Response = true;
static from(scope: BrowserContextDispatcher, response: Response): ResponseDispatcher { static from(scope: NetworkScope, response: Response): ResponseDispatcher {
const result = existingDispatcher<ResponseDispatcher>(response); const result = existingDispatcher<ResponseDispatcher>(response);
const requestDispatcher = RequestDispatcher.from(scope, response.request()); const requestDispatcher = RequestDispatcher.from(scope, response.request());
return result || new ResponseDispatcher(requestDispatcher, response); return result || new ResponseDispatcher(requestDispatcher, response);
} }
static fromNullable(scope: BrowserContextDispatcher, response: Response | null): ResponseDispatcher | undefined { static fromNullable(scope: NetworkScope, response: Response | null): ResponseDispatcher | undefined {
return response ? ResponseDispatcher.from(scope, response) : undefined; return response ? ResponseDispatcher.from(scope, response) : undefined;
} }