UNPKG

vulpes

Version:
64 lines (55 loc) 1.97 kB
"use strict"; var dataURIToBuffer = require("data-uri-to-buffer"); var parseDataURI = require("parse-data-uri"); var _require = require("./symbols.js"), ATTACHMENT_PREFIX = _require.ATTACHMENT_PREFIX, ATTACHMENT_REXP = _require.ATTACHMENT_REXP; function extractAttachments(resultSet) { var results = Object.assign({}, resultSet); var attachments = []; var attachmentKeys = Object.keys(results).filter(function (key) { return ATTACHMENT_REXP.test(key); }); var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = attachmentKeys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var attachmentKey = _step.value; var id = attachmentKey.replace(ATTACHMENT_PREFIX, ""); var attachment = results[attachmentKey]; attachment.id = id; var data = attachment.data, mime = attachment.mime; if (/^text\//.test(mime)) { var _parseDataURI = parseDataURI(data), textBuffer = _parseDataURI.data; attachment.data = textBuffer.toString("utf8"); } else { attachment.data = dataURIToBuffer(data); } attachments.push(attachment); delete results[attachmentKey]; } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } return { results: results, attachments: attachments }; } module.exports = { extractAttachments: extractAttachments };