123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- module.exports = Headers;
- function Headers(headers) {
- var self = this;
- this._headers = {};
-
- if (headers instanceof Headers) {
- headers = headers.raw();
- }
-
- for (var prop in headers) {
- if (!headers.hasOwnProperty(prop)) {
- continue;
- }
- if (typeof headers[prop] === 'string') {
- this.set(prop, headers[prop]);
- } else if (typeof headers[prop] === 'number' && !isNaN(headers[prop])) {
- this.set(prop, headers[prop].toString());
- } else if (Array.isArray(headers[prop])) {
- headers[prop].forEach(function(item) {
- self.append(prop, item.toString());
- });
- }
- }
- }
- Headers.prototype.get = function(name) {
- var list = this._headers[name.toLowerCase()];
- return list ? list[0] : null;
- };
- Headers.prototype.getAll = function(name) {
- if (!this.has(name)) {
- return [];
- }
- return this._headers[name.toLowerCase()];
- };
- Headers.prototype.forEach = function(callback, thisArg) {
- Object.getOwnPropertyNames(this._headers).forEach(function(name) {
- this._headers[name].forEach(function(value) {
- callback.call(thisArg, value, name, this)
- }, this)
- }, this)
- }
- Headers.prototype.set = function(name, value) {
- this._headers[name.toLowerCase()] = [value];
- };
- Headers.prototype.append = function(name, value) {
- if (!this.has(name)) {
- this.set(name, value);
- return;
- }
- this._headers[name.toLowerCase()].push(value);
- };
- Headers.prototype.has = function(name) {
- return this._headers.hasOwnProperty(name.toLowerCase());
- };
- Headers.prototype['delete'] = function(name) {
- delete this._headers[name.toLowerCase()];
- };
- Headers.prototype.raw = function() {
- return this._headers;
- };
|