UNPKG

serverless-local

Version:

A serverless framework plugin for running your serverless stack locally.

36 lines (35 loc) 1.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SnsEventRequest = void 0; class SnsEventRequest { constructor(rawRequest) { this.action = rawRequest.Action; this.topicArn = rawRequest.TopicArn; this.subject = rawRequest.Subject; this.messageStructure = rawRequest.MessageStructure; this.message = rawRequest.Message; this.version = rawRequest.Version; this.parseMessageAttributes(rawRequest); } parseMessageAttributes(rawRequest) { this.messageAttributes = Object.keys(rawRequest) .filter((k) => k.startsWith("MessageAttributes.entry")) .reduce((prev, curr) => { const mai = curr[curr.search(/\d/)]; if (prev.includes(mai)) return prev; return [...prev, mai]; }, []) .reduce((prev, mai) => { const base = `MessageAttributes.entry.${mai}`; return { ...prev, [rawRequest[`${base}.Name`]]: { type: rawRequest[`${base}.DataType`], value: rawRequest[`${base}.Value.BinaryValue`] || rawRequest[`${base}.Value.StringValue`], }, }; }, {}); } } exports.SnsEventRequest = SnsEventRequest;