blob: b6fe1242e5b4776b2f5f72338022a82596cf1e30 [file] [log] [blame]
var isStream = require('is-stream');
/**
* Creates an Attachment object.
* @param options Buffer representing attachment data
* data - one of:
* - string representing the full file path
* - buffer of the data
* - readable interface (stream)
* filename - optionally the filename to be used for the attachment, should be used if passing
* buffer or stream in the data param
* contentType - the content type for header info. Should be passed in if using stream for data
* knownLength - the known length of the data. Should be passed in if using stream for data
* @constructor
*/
var Attachment = module.exports = function Attachment(options) {
var data = options.data;
if (data) {
if (typeof data === 'string' || Buffer.isBuffer(data) || isStream(data)) {
this.data = data;
}
}
this.filename = options.filename;
this.contentType = options.contentType;
this.knownLength = options.knownLength;
};
Attachment.prototype.getType = function () {
if (this.data) {
if (typeof this.data === 'string') {
return 'path';
}
else if (Buffer.isBuffer(this.data)) {
return 'buffer';
}
else if (isStream(this.data)) {
return 'stream';
}
}
return 'unknown';
};