sdk-javascript/lib/bindings/http/emitter_structured.js

25 lines
703 B
JavaScript

const axios = require("axios");
const Constants = require("./constants.js");
const defaults = {};
defaults[Constants.HEADERS] = {};
defaults[Constants.HEADERS][Constants.HEADER_CONTENT_TYPE] =
Constants.DEFAULT_CE_CONTENT_TYPE;
function StructuredHTTPEmitter(configuration) {
this.config = Object.assign({}, defaults, configuration);
}
StructuredHTTPEmitter.prototype.emit = function(cloudevent) {
// Set the cloudevent payload
this.config[Constants.DATA_ATTRIBUTE] = cloudevent.format();
// Return the Promise
return axios.request(this.config).then((response) => {
delete this.config[Constants.DATA_ATTRIBUTE];
return response;
});
};
module.exports = StructuredHTTPEmitter;