Check for boolean true in headers.fields for fetch()

fork
mscdex 12 years ago
parent 6b6bfb6bc1
commit beda1283bf

@ -961,19 +961,26 @@ ImapConnection.prototype._fetch = function(which, uids, options, what, cb) {
headers = wp.headers; headers = wp.headers;
else if (typeof wp.headers === 'object') { else if (typeof wp.headers === 'object') {
if (!Array.isArray(wp.headers.fields) if (!Array.isArray(wp.headers.fields)
&& typeof wp.headers.fields !== 'string') && typeof wp.headers.fields !== 'string'
&& wp.headers.fields !== true)
throw new Error('Invalid `fields` property'); throw new Error('Invalid `fields` property');
if (Array.isArray(wp.headers.fields)) if (Array.isArray(wp.headers.fields))
headers = wp.headers.fields; headers = wp.headers.fields;
else if (wp.headers.fields === true)
headers = true;
else else
headers = [wp.headers.fields]; headers = [wp.headers.fields];
if (wp.headers.parse === false) if (wp.headers.parse === false)
parse = false; parse = false;
} else } else
throw new Error('Invalid `headers` value: ' + wp.headers); throw new Error('Invalid `headers` value: ' + wp.headers);
key += 'HEADER.FIELDS ('; if (headers === true)
key += headers.join(' ').toUpperCase(); key += 'HEADER]';
key += ')]'; else {
key += 'HEADER.FIELDS (';
key += headers.join(' ').toUpperCase();
key += ')]';
}
} }
} else if (wp.headersNot) { } else if (wp.headersNot) {
key = pprefix.trim(); key = pprefix.trim();
@ -984,19 +991,26 @@ ImapConnection.prototype._fetch = function(which, uids, options, what, cb) {
headers = wp.headersNot; headers = wp.headersNot;
else if (typeof wp.headersNot === 'object') { else if (typeof wp.headersNot === 'object') {
if (!Array.isArray(wp.headersNot.fields) if (!Array.isArray(wp.headersNot.fields)
&& typeof wp.headersNot.fields !== 'string') && typeof wp.headersNot.fields !== 'string'
&& wp.headersNot.fields !== true)
throw new Error('Invalid `fields` property'); throw new Error('Invalid `fields` property');
if (Array.isArray(wp.headersNot.fields)) if (Array.isArray(wp.headersNot.fields))
headers = wp.headersNot.fields; headers = wp.headersNot.fields;
else if (wp.headersNot.fields)
headers = true;
else else
headers = [wp.headersNot.fields]; headers = [wp.headersNot.fields];
if (wp.headersNot.parse === false) if (wp.headersNot.parse === false)
parse = false; parse = false;
} else } else
throw new Error('Invalid `headersNot` value: ' + wp.headersNot); throw new Error('Invalid `headersNot` value: ' + wp.headersNot);
key += 'HEADER.FIELDS.NOT ('; if (headers === true)
key += headers.join(' ').toUpperCase(); key += 'HEADER]';
key += ')]'; else {
key += 'HEADER.FIELDS.NOT (';
key += headers.join(' ').toUpperCase();
key += ')]';
}
} }
} }
if (key) { if (key) {

Loading…
Cancel
Save