"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(module, "exports", { enumerable: true, get: ()=>_default }); const _util = require("@middy/util"); const defaults = { eventSchema: undefined, contextSchema: undefined, responseSchema: undefined, defaultLanguage: 'en', languages: {} }; const validatorMiddleware = (opts = {})=>{ const { eventSchema , contextSchema , responseSchema , defaultLanguage , languages } = { ...defaults, ...opts }; const validatorMiddlewareBefore = async (request)=>{ if (eventSchema) { const validEvent = await eventSchema(request.event); if (!validEvent) { const localize = languages[request.event.preferredLanguage] ?? languages[defaultLanguage]; localize?.(eventSchema.errors); throw (0, _util.createError)(400, 'Event object failed validation', { cause: eventSchema.errors }); } } if (contextSchema) { const validContext = await contextSchema(request.context); if (!validContext) { throw (0, _util.createError)(500, 'Context object failed validation', { cause: contextSchema.errors }); } } }; const validatorMiddlewareAfter = async (request)=>{ const validResponse = await responseSchema(request.response); if (!validResponse) { throw (0, _util.createError)(500, 'Response object failed validation', { cause: responseSchema.errors }); } }; return { before: eventSchema ?? contextSchema ? validatorMiddlewareBefore : undefined, after: responseSchema ? validatorMiddlewareAfter : undefined }; }; const _default = validatorMiddleware; //# sourceMappingURL=index.cjs.map