mirror of
https://github.com/idanoo/GoScrobble.git
synced 2024-11-25 09:55:15 +00:00
36 lines
815 B
JavaScript
36 lines
815 B
JavaScript
'use strict';
|
|
|
|
var Headers = function() {
|
|
this.clear();
|
|
};
|
|
|
|
Headers.prototype.ALLOWED_DUPLICATES = ['set-cookie', 'set-cookie2', 'warning', 'www-authenticate'];
|
|
|
|
Headers.prototype.clear = function() {
|
|
this._sent = {};
|
|
this._lines = [];
|
|
};
|
|
|
|
Headers.prototype.set = function(name, value) {
|
|
if (value === undefined) return;
|
|
|
|
name = this._strip(name);
|
|
value = this._strip(value);
|
|
|
|
var key = name.toLowerCase();
|
|
if (!this._sent.hasOwnProperty(key) || this.ALLOWED_DUPLICATES.indexOf(key) >= 0) {
|
|
this._sent[key] = true;
|
|
this._lines.push(name + ': ' + value + '\r\n');
|
|
}
|
|
};
|
|
|
|
Headers.prototype.toString = function() {
|
|
return this._lines.join('');
|
|
};
|
|
|
|
Headers.prototype._strip = function(string) {
|
|
return string.toString().replace(/^ */, '').replace(/ *$/, '');
|
|
};
|
|
|
|
module.exports = Headers;
|