62 lines
1.5 KiB
JavaScript
62 lines
1.5 KiB
JavaScript
var _ = require('../util').lodash,
|
|
PropertyList = require('./property-list').PropertyList,
|
|
Header = require('./header').Header,
|
|
|
|
PROP_NAME = '_postman_propertyName',
|
|
|
|
HeaderList;
|
|
|
|
_.inherit((
|
|
|
|
/**
|
|
* Contains a list of header elements
|
|
*
|
|
* @constructor
|
|
* @param {Object} parent -
|
|
* @param {Header[]} headers -
|
|
* @extends {PropertyList}
|
|
*/
|
|
HeaderList = function (parent, headers) {
|
|
// this constructor is intended to inherit and as such the super constructor is required to be executed
|
|
HeaderList.super_.call(this, Header, parent, headers);
|
|
}), PropertyList);
|
|
|
|
_.assign(HeaderList.prototype, /** @lends HeaderList.prototype */ {
|
|
/**
|
|
* Gets size of a list of headers excluding standard header prefix.
|
|
*
|
|
* @returns {Number}
|
|
*/
|
|
contentSize () {
|
|
if (!this.count()) { return 0; }
|
|
|
|
return Header.unparse(this).length;
|
|
}
|
|
});
|
|
|
|
_.assign(HeaderList, /** @lends HeaderList */ {
|
|
/**
|
|
* Defines the name of this property for internal use.
|
|
*
|
|
* @private
|
|
* @readOnly
|
|
* @type {String}
|
|
*/
|
|
_postman_propertyName: 'HeaderList',
|
|
|
|
/**
|
|
* Checks if the given object is a HeaderList
|
|
*
|
|
* @param {*} obj -
|
|
* @returns {Boolean}
|
|
*/
|
|
isHeaderList: function (obj) {
|
|
return Boolean(obj) && ((obj instanceof HeaderList) ||
|
|
_.inSuperChain(obj.constructor, PROP_NAME, HeaderList._postman_propertyName));
|
|
}
|
|
});
|
|
|
|
module.exports = {
|
|
HeaderList
|
|
};
|