UNPKG

flinter

Version:

A wrapper around the InterFAX REST API for sending and receiving faxes.

74 lines (57 loc) 6.72 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _image = require('./image'); var _image2 = _interopRequireDefault(_image); var _location = require('./location'); var _location2 = _interopRequireDefault(_location); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var ResponseHandler = function ResponseHandler(emitter, debug) { _classCallCheck(this, ResponseHandler); return function (response) { if (debug) { console.log(response); } // eslint-disable-line no-console var isJson = response.headers['content-type'] == 'text/json'; var isTiff = response.headers['content-type'] == 'image/tiff'; var isPdf = response.headers['content-type'] == 'application/pdf'; var isImage = isTiff || isPdf; var result = isImage ? [] : ''; var isLocation = response.headers['location'] !== undefined; response.on('data', function (chunk) { if (isImage) { result.push(chunk); } else { result += chunk; } }); response.on('end', function () { if (debug) { console.log(result); } // eslint-disable-line no-console if (isLocation) { result = new _location2.default(response.headers['location']); } else if (isJson && result.length > 0) { result = JSON.parse(result); } else if (isJson && result.length == 0) { result = null; } else if (isImage) { var data = Buffer.concat(result); result = new _image2.default(data, response.headers['content-type']); } if (response.statusCode >= 300) { emitter.emit('reject', result); } else { emitter.emit('resolve', result); } }); response.on('close', function (error) { emitter.emit('reject', error); }); }; }; exports.default = ResponseHandler; module.exports = exports['default']; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZXNwb25zZS1oYW5kbGVyLmpzIl0sIm5hbWVzIjpbIlJlc3BvbnNlSGFuZGxlciIsImVtaXR0ZXIiLCJkZWJ1ZyIsInJlc3BvbnNlIiwiY29uc29sZSIsImxvZyIsImlzSnNvbiIsImhlYWRlcnMiLCJpc1RpZmYiLCJpc1BkZiIsImlzSW1hZ2UiLCJyZXN1bHQiLCJpc0xvY2F0aW9uIiwidW5kZWZpbmVkIiwib24iLCJjaHVuayIsInB1c2giLCJMb2NhdGlvbiIsImxlbmd0aCIsIkpTT04iLCJwYXJzZSIsImRhdGEiLCJCdWZmZXIiLCJjb25jYXQiLCJJbWFnZSIsInN0YXR1c0NvZGUiLCJlbWl0IiwiZXJyb3IiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7Ozs7O0lBRU1BLGUsR0FDSix5QkFBWUMsT0FBWixFQUFxQkMsS0FBckIsRUFBNEI7QUFBQTs7QUFDMUIsU0FBTyxVQUFDQyxRQUFELEVBQWM7QUFDbkIsUUFBSUQsS0FBSixFQUFXO0FBQUVFLGNBQVFDLEdBQVIsQ0FBWUYsUUFBWjtBQUF3QixLQURsQixDQUNtQjs7QUFFdEMsUUFBSUcsU0FBY0gsU0FBU0ksT0FBVCxDQUFpQixjQUFqQixLQUFvQyxXQUF0RDtBQUNBLFFBQUlDLFNBQWNMLFNBQVNJLE9BQVQsQ0FBaUIsY0FBakIsS0FBb0MsWUFBdEQ7QUFDQSxRQUFJRSxRQUFjTixTQUFTSSxPQUFULENBQWlCLGNBQWpCLEtBQW9DLGlCQUF0RDtBQUNBLFFBQUlHLFVBQWNGLFVBQVVDLEtBQTVCO0FBQ0EsUUFBSUUsU0FBY0QsVUFBVSxFQUFWLEdBQWUsRUFBakM7O0FBRUEsUUFBSUUsYUFBY1QsU0FBU0ksT0FBVCxDQUFpQixVQUFqQixNQUFpQ00sU0FBbkQ7O0FBRUFWLGFBQVNXLEVBQVQsQ0FBWSxNQUFaLEVBQW9CLFVBQVNDLEtBQVQsRUFBZ0I7QUFDbEMsVUFBSUwsT0FBSixFQUFhO0FBQ1hDLGVBQU9LLElBQVAsQ0FBWUQsS0FBWjtBQUNELE9BRkQsTUFFTztBQUNMSixrQkFBVUksS0FBVjtBQUNEO0FBQ0YsS0FORDs7QUFRQVosYUFBU1csRUFBVCxDQUFZLEtBQVosRUFBbUIsWUFBVztBQUM1QixVQUFJWixLQUFKLEVBQVc7QUFBRUUsZ0JBQVFDLEdBQVIsQ0FBWU0sTUFBWjtBQUFzQixPQURQLENBQ1E7O0FBRXBDLFVBQUlDLFVBQUosRUFBZ0I7QUFBRUQsaUJBQVMsSUFBSU0sa0JBQUosQ0FBYWQsU0FBU0ksT0FBVCxDQUFpQixVQUFqQixDQUFiLENBQVQ7QUFBc0QsT0FBeEUsTUFDSyxJQUFJRCxVQUFVSyxPQUFPTyxNQUFQLEdBQWdCLENBQTlCLEVBQWlDO0FBQUVQLGlCQUFTUSxLQUFLQyxLQUFMLENBQVdULE1BQVgsQ0FBVDtBQUE4QixPQUFqRSxNQUNBLElBQUlMLFVBQVVLLE9BQU9PLE1BQVAsSUFBaUIsQ0FBL0IsRUFBa0M7QUFBRVAsaUJBQVMsSUFBVDtBQUFnQixPQUFwRCxNQUNBLElBQUlELE9BQUosRUFBYTtBQUNoQixZQUFNVyxPQUFPQyxPQUFPQyxNQUFQLENBQWNaLE1BQWQsQ0FBYjtBQUNBQSxpQkFBUyxJQUFJYSxlQUFKLENBQVVILElBQVYsRUFBZ0JsQixTQUFTSSxPQUFULENBQWlCLGNBQWpCLENBQWhCLENBQVQ7QUFDRDs7QUFFRCxVQUFJSixTQUFTc0IsVUFBVCxJQUF1QixHQUEzQixFQUFnQztBQUM5QnhCLGdCQUFReUIsSUFBUixDQUFhLFFBQWIsRUFBdUJmLE1BQXZCO0FBQ0QsT0FGRCxNQUVPO0FBQ0xWLGdCQUFReUIsSUFBUixDQUFhLFNBQWIsRUFBd0JmLE1BQXhCO0FBQ0Q7QUFDRixLQWhCRDs7QUFrQkFSLGFBQVNXLEVBQVQsQ0FBWSxPQUFaLEVBQXFCLFVBQVNhLEtBQVQsRUFBZ0I7QUFDbkMxQixjQUFReUIsSUFBUixDQUFhLFFBQWIsRUFBdUJDLEtBQXZCO0FBQ0QsS0FGRDtBQUdELEdBeENEO0FBeUNELEM7O2tCQUdZM0IsZSIsImZpbGUiOiJyZXNwb25zZS1oYW5kbGVyLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEltYWdlICAgIGZyb20gJy4vaW1hZ2UnO1xuaW1wb3J0IExvY2F0aW9uIGZyb20gJy4vbG9jYXRpb24nO1xuXG5jbGFzcyBSZXNwb25zZUhhbmRsZXIge1xuICBjb25zdHJ1Y3RvcihlbWl0dGVyLCBkZWJ1Zykge1xuICAgIHJldHVybiAocmVzcG9uc2UpID0+IHtcbiAgICAgIGlmIChkZWJ1ZykgeyBjb25zb2xlLmxvZyhyZXNwb25zZSk7IH0gLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG5cbiAgICAgIGxldCBpc0pzb24gICAgICA9IHJlc3BvbnNlLmhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddID09ICd0ZXh0L2pzb24nO1xuICAgICAgbGV0IGlzVGlmZiAgICAgID0gcmVzcG9uc2UuaGVhZGVyc1snY29udGVudC10eXBlJ10gPT0gJ2ltYWdlL3RpZmYnO1xuICAgICAgbGV0IGlzUGRmICAgICAgID0gcmVzcG9uc2UuaGVhZGVyc1snY29udGVudC10eXBlJ10gPT0gJ2FwcGxpY2F0aW9uL3BkZic7XG4gICAgICBsZXQgaXNJbWFnZSAgICAgPSBpc1RpZmYgfHwgaXNQZGY7XG4gICAgICBsZXQgcmVzdWx0ICAgICAgPSBpc0ltYWdlID8gW10gOiAnJztcblxuICAgICAgbGV0IGlzTG9jYXRpb24gID0gcmVzcG9uc2UuaGVhZGVyc1snbG9jYXRpb24nXSAhPT0gdW5kZWZpbmVkO1xuXG4gICAgICByZXNwb25zZS5vbignZGF0YScsIGZ1bmN0aW9uKGNodW5rKSB7XG4gICAgICAgIGlmIChpc0ltYWdlKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goY2h1bmspO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCArPSBjaHVuaztcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJlc3BvbnNlLm9uKCdlbmQnLCBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKGRlYnVnKSB7IGNvbnNvbGUubG9nKHJlc3VsdCk7IH0gLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1jb25zb2xlXG5cbiAgICAgICAgaWYgKGlzTG9jYXRpb24pIHsgcmVzdWx0ID0gbmV3IExvY2F0aW9uKHJlc3BvbnNlLmhlYWRlcnNbJ2xvY2F0aW9uJ10pOyB9XG4gICAgICAgIGVsc2UgaWYgKGlzSnNvbiAmJiByZXN1bHQubGVuZ3RoID4gMCkgeyByZXN1bHQgPSBKU09OLnBhcnNlKHJlc3VsdCk7IH1cbiAgICAgICAgZWxzZSBpZiAoaXNKc29uICYmIHJlc3VsdC5sZW5ndGggPT0gMCkgeyByZXN1bHQgPSBudWxsOyB9XG4gICAgICAgIGVsc2UgaWYgKGlzSW1hZ2UpIHtcbiAgICAgICAgICBjb25zdCBkYXRhID0gQnVmZmVyLmNvbmNhdChyZXN1bHQpO1xuICAgICAgICAgIHJlc3VsdCA9IG5ldyBJbWFnZShkYXRhLCByZXNwb25zZS5oZWFkZXJzWydjb250ZW50LXR5cGUnXSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzQ29kZSA+PSAzMDApIHtcbiAgICAgICAgICBlbWl0dGVyLmVtaXQoJ3JlamVjdCcsIHJlc3VsdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZW1pdHRlci5lbWl0KCdyZXNvbHZlJywgcmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJlc3BvbnNlLm9uKCdjbG9zZScsIGZ1bmN0aW9uKGVycm9yKSB7XG4gICAgICAgIGVtaXR0ZXIuZW1pdCgncmVqZWN0JywgZXJyb3IpO1xuICAgICAgfSk7XG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBSZXNwb25zZUhhbmRsZXI7XG4iXX0=