UNPKG

@enter-at/lambda-handlers

Version:

An opinionated Typescript package that facilitates specifying AWS Lambda handlers including input validation, error handling and response formatting.

68 lines (67 loc) 2.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.noContent = exports.created = exports.ok = exports.conflict = exports.unprocessableEntity = exports.requestTimeout = exports.notFound = exports.internalServerError = exports.unauthorized = exports.forbidden = exports.badRequest = void 0; const http2_1 = require("http2"); const error_1 = require("./error"); const ConflictError_1 = require("./error/ConflictError"); function badRequest(details) { const error = new error_1.BadRequestError(details); return buildResult(error, http2_1.constants.HTTP_STATUS_BAD_REQUEST); } exports.badRequest = badRequest; function forbidden(details) { const error = new error_1.ForbiddenError(details); return buildResult(error, http2_1.constants.HTTP_STATUS_FORBIDDEN); } exports.forbidden = forbidden; function unauthorized(details) { const error = new error_1.UnauthorizedError(details); return buildResult(error, http2_1.constants.HTTP_STATUS_UNAUTHORIZED); } exports.unauthorized = unauthorized; function internalServerError() { const error = new error_1.InternalServerError("InternalServerError"); return buildResult(error, http2_1.constants.HTTP_STATUS_INTERNAL_SERVER_ERROR); } exports.internalServerError = internalServerError; function notFound(details) { const error = new error_1.NotFoundError(details); return buildResult(error, http2_1.constants.HTTP_STATUS_NOT_FOUND); } exports.notFound = notFound; function requestTimeout(details) { const error = new error_1.RequestTimeoutError(details); return buildResult(error, http2_1.constants.HTTP_STATUS_REQUEST_TIMEOUT); } exports.requestTimeout = requestTimeout; function unprocessableEntity(details) { const error = new error_1.UnprocessableEntityError(details); return buildResult(error, http2_1.constants.HTTP_STATUS_UNPROCESSABLE_ENTITY); } exports.unprocessableEntity = unprocessableEntity; function conflict(details) { const error = new ConflictError_1.ConflictError(details); return buildResult(error, http2_1.constants.HTTP_STATUS_CONFLICT); } exports.conflict = conflict; function ok(result) { return buildResult(result, http2_1.constants.HTTP_STATUS_OK); } exports.ok = ok; function created(result) { return buildResult(result, http2_1.constants.HTTP_STATUS_CREATED); } exports.created = created; function noContent() { return buildResult(null, http2_1.constants.HTTP_STATUS_NO_CONTENT); } exports.noContent = noContent; function buildResult(result, statusCode) { const body = result && result instanceof error_1.LambdaHandlerError ? { errors: [{ name: result.name, details: result.details }] } : result; return { body, statusCode, }; }