mirror of
https://github.com/puppeteer/puppeteer
synced 2024-06-14 14:02:48 +00:00
Drop Headers class in favor of a Map object
This patch removes Header class and substitutes it with a simple Map object. The map is chosen over the vanilla object since it has explicit order of headers which we'd like to preserve. References #106.
This commit is contained in:
@@ -136,91 +136,6 @@ class NetworkManager extends EventEmitter {
|
||||
}
|
||||
}
|
||||
|
||||
class Headers {
|
||||
/**
|
||||
* @param {?Object} payload
|
||||
* @return {!Headers}
|
||||
*/
|
||||
static fromPayload(payload) {
|
||||
let headers = new Headers();
|
||||
if (!payload)
|
||||
return headers;
|
||||
for (let key in payload)
|
||||
headers.set(key, payload[key]);
|
||||
return headers;
|
||||
}
|
||||
|
||||
constructor() {
|
||||
/** @type {!Map<string, string>} */
|
||||
this._headers = new Map();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} name
|
||||
* @param {string} value
|
||||
*/
|
||||
append(name, value) {
|
||||
name = name.toLowerCase();
|
||||
this._headers.set(name, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} name
|
||||
*/
|
||||
delete(name) {
|
||||
name = name.toLowerCase();
|
||||
this._headers.delete(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return {!Iterator}
|
||||
*/
|
||||
entries() {
|
||||
return this._headers.entries();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} name
|
||||
* @return {?string}
|
||||
*/
|
||||
get(name) {
|
||||
name = name.toLowerCase();
|
||||
return this._headers.get(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} name
|
||||
* @return {boolean}
|
||||
*/
|
||||
has(name) {
|
||||
name = name.toLowerCase();
|
||||
return this._headers.has(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return {!Iterator}
|
||||
*/
|
||||
keys() {
|
||||
return this._headers.keys();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return {!Iterator}
|
||||
*/
|
||||
values() {
|
||||
return this._headers.values();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} name
|
||||
* @param {string} value
|
||||
*/
|
||||
set(name, value) {
|
||||
name = name.toLowerCase();
|
||||
this._headers.set(name, value);
|
||||
}
|
||||
}
|
||||
|
||||
class Body {
|
||||
/**
|
||||
* @param {function():!Promise<!Buffer>} contentCallback
|
||||
@@ -282,7 +197,7 @@ class Request extends Body {
|
||||
this._response = null;
|
||||
this.url = payload.url;
|
||||
this.method = payload.method;
|
||||
this.headers = Headers.fromPayload(payload.headers);
|
||||
this.headers = new Map(Object.entries(payload.headers));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -303,7 +218,7 @@ class Response extends Body {
|
||||
constructor(request, payload, contentCallback) {
|
||||
super(contentCallback);
|
||||
this._request = request;
|
||||
this.headers = Headers.fromPayload(payload.headers);
|
||||
this.headers = new Map(Object.entries(payload.headers));
|
||||
this.ok = payload.status >= 200 && payload.status <= 299;
|
||||
this.status = payload.status;
|
||||
this.statusText = payload.statusText;
|
||||
@@ -332,7 +247,7 @@ class InterceptedRequest {
|
||||
|
||||
this.url = payload.url;
|
||||
this.method = payload.method;
|
||||
this.headers = Headers.fromPayload(payload.headers);
|
||||
this.headers = new Map(Object.entries(payload.headers));
|
||||
this.postData = payload.postData;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user