UNPKG

@aws-lambda-powertools/parser

Version:
47 lines (46 loc) 1.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.EventBridgeEnvelope = void 0; const errors_js_1 = require("../errors.js"); const index_js_1 = require("../schemas/index.js"); const envelope_js_1 = require("./envelope.js"); /** * Envelope for EventBridge schema that extracts and parses data from the `detail` key. */ exports.EventBridgeEnvelope = { /** * This is a discriminator to differentiate whether an envelope returns an array or an object * @hidden */ [envelope_js_1.envelopeDiscriminator]: 'object', parse(data, schema) { try { return index_js_1.EventBridgeSchema.extend({ detail: schema, }).parse(data).detail; } catch (error) { throw new errors_js_1.ParseError('Failed to parse EventBridge envelope', { cause: error, }); } }, safeParse(data, schema) { const parsedResult = index_js_1.EventBridgeSchema.extend({ detail: schema, }).safeParse(data); if (!parsedResult.success) { return { success: false, error: new errors_js_1.ParseError('Failed to parse EventBridge envelope', { cause: parsedResult.error, }), originalEvent: data, }; } return { success: true, data: parsedResult.data.detail, }; }, };