UNPKG

@middy/sqs-json-body-parser

Version:

SQS batch json body parser middleware for the middy framework

39 lines (30 loc) 845 B
"use strict"; 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;