diff --git a/lib/bindings/http/unmarshaller.js b/lib/bindings/http/unmarshaller.js index a45c21cb..4476f25a 100644 --- a/lib/bindings/http/unmarshaller.js +++ b/lib/bindings/http/unmarshaller.js @@ -4,22 +4,14 @@ const Commons = require("./commons.js"); const STRUCTURED = "structured"; const BINARY = "binary"; -const allowedBinaryContentTypes = []; -allowedBinaryContentTypes.push(Constants.MIME_JSON); -allowedBinaryContentTypes.push(Constants.MIME_OCTET_STREAM); +const allowedBinaryContentTypes = [ + Constants.MIME_JSON, + Constants.MIME_OCTET_STREAM +]; -const allowedStructuredContentTypes = []; -allowedStructuredContentTypes.push(Constants.MIME_CE_JSON); - -function validateArgs(payload, headers) { - if (!payload) { - throw new TypeError("payload is null or undefined"); - } - - if (!headers) { - throw new TypeError("headers is null or undefined"); - } -} +const allowedStructuredContentTypes = [ + Constants.MIME_CE_JSON +]; // Is it binary or structured? function resolveBindingName(payload, headers) { @@ -47,18 +39,22 @@ function resolveBindingName(payload, headers) { } } -const Unmarshaller = function(receiverByBinding) { - this.receiverByBinding = receiverByBinding; -}; - -Unmarshaller.prototype.unmarshall = function(payload, headers) { - return new Promise((resolve, reject) => { - try { - validateArgs(payload, headers); +class Unmarshaller { + constructor(receiverByBinding) { + this.receiverByBinding = receiverByBinding; + } - const sanityHeaders = Commons.sanityAndClone(headers); + unmarshall(payload, headers) { + return new Promise((resolve, reject) => { + if (!payload) { + return reject(new TypeError("payload is null or undefined")); + } + if (!headers) { + return reject(new TypeError("headers is null or undefined")); + } // Validation level 1 + const sanityHeaders = Commons.sanityAndClone(headers); if (!sanityHeaders[Constants.HEADER_CONTENT_TYPE]) { throw new TypeError("content-type header not found"); } @@ -69,10 +65,8 @@ Unmarshaller.prototype.unmarshall = function(payload, headers) { .parse(payload, sanityHeaders); resolve(cloudevent); - } catch (e) { - reject(e); - } - }); -}; + }); + } +} module.exports = Unmarshaller;