JSPM

@aprendizap/aws-lambda-responses

1.0.2
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 94
  • Score
    100M100P100Q73881F
  • License MIT

This module contains some wrappers to create the response object for AWS Lambda functions.

Package Exports

  • @aprendizap/aws-lambda-responses
  • @aprendizap/aws-lambda-responses/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@aprendizap/aws-lambda-responses) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@aprendizap/aws-lambda-responses

Um pequeno pacote para facilitar a criação de respostas para funções lambda. Retorna a saída em string com headers para compatibilidade com CORS.

Instalação

npm install @aprendizap/aws-lambda-responses

Uso

Importe o módulo e utilize a função correspondente ao código para gerar a saída da sua função lambda.

import Responses from '@aprendizap/aws-lambda-responses';

exports.handler = async (event) => {
  return Responses._200({ message: 'Hello World!' });
};
// output: {
//   headers: {
//     'Content-Type': 'application/json',
//     'Access-Control-Allow-Origin': '*',
//     'Access-Control-Allow-Methods': '*',
//     'Access-Control-Allow-Credentials': true
//   },
//   statusCode: 200,
//   body: '{"error":false,"message":"Hello World!"}'
// }

Funciona também como um módulo CommonJS:

const Responses = require('@aprendizap/aws-lambda-responses');

export const handler = async (event) => {
  return Responses._200({ message: 'Hello World!' });
};

Você pode passar mensagens de erro para os métodos que implementam o código de status 4xx:

import Responses from '@aprendizap/aws-lambda-responses';

export const handler = async (event) => {
  return Responses._400('My bad!');
};
//output: {
//   headers: {
//     'Content-Type': 'application/json',
//     'Access-Control-Allow-Origin': '*',
//     'Access-Control-Allow-Methods': '*',
//     'Access-Control-Allow-Credentials': true
//   },
//   statusCode: 400,
//   body: '{"error":true,"message":"My bad!"}'
// }

Métodos disponíveis

Os métodos disponíveis e suas respectivas mensagens padrão são:

  • _200 -> (sem mensagem)
  • _303 -> (sem mensagem)
  • _400 -> There are missing or invalid parameters.
  • _429 -> Too many requests.
  • _403 -> Forbidden.
  • _404 -> Resource not found.
  • _500 -> Internal server error occurred.

200

O método aceita 2 tipos de parâmetros:

  • Arrays: que serão emitidos na propriedade 'items'
  • Objetos: que serão emitidos diretamente no objeto de resposta

A propriedade error é sempre false.

Responses._200(); // Padrão sem mensagem
Responses._200({ message: 'Hello World!' }); // Objeto com propriedades
Responses._200(['Hello', 'World']); // Array

Erros

Os métodos de erro aceitam strings para substituir a mensagem padrão e dados para serem adicionados ao body final.

Responses._400(); // Padrão sem mensagem
Responses._400('My bad!'); // Substitui a mensagem padrão 'There are missing or invalid parameters'
Responses._400('My bad!', { foo: 'bar' }); // Adiciona a propriedade foo ao body

As outras respostas de erro funcionam da mesma forma.