Skip to content

Commit

Permalink
fix: explicit HTTPRequest.resourceType type defs
Browse files Browse the repository at this point in the history
Fixes #6854.
  • Loading branch information
jackfranklin committed Feb 12, 2021
1 parent 29c0594 commit 2b6add0
Showing 1 changed file with 23 additions and 12 deletions.
35 changes: 23 additions & 12 deletions src/common/HTTPRequest.ts
Expand Up @@ -45,6 +45,26 @@ export interface ResponseForRequest {
body: string | Buffer;
}

/**
* Resource types for HTTPRequests as perceived by the rendering engine.
*
* @public
*/
export type ResourceType =
| 'document'
| 'stylesheet'
| 'image'
| 'media'
| 'font'
| 'script'
| 'texttrack'
| 'xhr'
| 'fetch'
| 'eventsource'
| 'websocket'
| 'manifest'
| 'other';

/**
*
* Represents an HTTP request sent by a page.
Expand Down Expand Up @@ -108,7 +128,7 @@ export class HTTPRequest {
private _allowInterception: boolean;
private _interceptionHandled = false;
private _url: string;
private _resourceType: string;
private _resourceType: ResourceType;

private _method: string;
private _postData?: string;
Expand All @@ -133,7 +153,7 @@ export class HTTPRequest {
this._interceptionId = interceptionId;
this._allowInterception = allowInterception;
this._url = event.request.url;
this._resourceType = event.type.toLowerCase();
this._resourceType = event.type.toLowerCase() as ResourceType;
this._method = event.request.method;
this._postData = event.request.postData;
this._frame = frame;
Expand All @@ -153,17 +173,8 @@ export class HTTPRequest {
/**
* Contains the request's resource type as it was perceived by the rendering
* engine.
* @remarks
* @returns one of the following: `document`, `stylesheet`, `image`, `media`,
* `font`, `script`, `texttrack`, `xhr`, `fetch`, `eventsource`, `websocket`,
* `manifest`, `other`.
*/
resourceType(): string {
// TODO (@jackfranklin): protocol.d.ts has a type for this, but all the
// string values are uppercase. The Puppeteer docs explicitly say the
// potential values are all lower case, and the constructor takes the event
// type and calls toLowerCase() on it, so we can't reuse the type from the
// protocol.d.ts. Why do we lower case?
resourceType(): ResourceType {
return this._resourceType;
}

Expand Down

0 comments on commit 2b6add0

Please sign in to comment.