@faceteer/cdk
Version:
CDK 2.0 constructs and helpers that make composing a Lambda powered service easier.
25 lines (24 loc) • 751 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EventHandler = EventHandler;
const handler_1 = require("./handler");
function EventHandler(options, handler) {
const { validator, ...definition } = options;
const wrappedHandler = async (event, context) => {
try {
const validDetail = validator(event);
if (!validDetail) {
throw new Error('Invalid event detail');
}
await handler(validDetail, context);
}
catch (error) {
console.error(error);
return;
}
};
return Object.assign(wrappedHandler, {
type: handler_1.HandlerTypes.Event,
definition: definition,
});
}