@middy/sqs-json-body-parser
Version:
SQS batch json body parser middleware for the middy framework
39 lines (30 loc) • 845 B
JavaScript
;
const {
jsonSafeParse
} = require('@middy/util');
const defaults = {
reviver: undefined
};
const sqsJsonBodyParserMiddleware = (opts = {}) => {
const options = { ...defaults,
...opts
};
const parseEvent = event => {
const records = event === null || event === void 0 ? void 0 : event.Records;
if (!Array.isArray(records)) return;
for (const record of records) {
if (record.eventSource === 'aws:sqs') {
record.body = jsonSafeParse(record.body, options.reviver);
} else if (record.EventSource === 'aws:sns') {
parseEvent(record.Sns.Message);
}
}
};
const sqsJsonBodyParserMiddlewareBefore = async request => {
parseEvent(request.event);
};
return {
before: sqsJsonBodyParserMiddlewareBefore
};
};
module.exports = sqsJsonBodyParserMiddleware;