How to use the @laconia/event.apigateway function in @laconia/event

To help you get started, we’ve selected a few @laconia/event examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github laconiajs / laconia / packages / laconia-acceptance-test / src / disconnect-websocket.js View on Github external
// @ts-check
const laconia = require("@laconia/core");
const { res } = require("@laconia/event").apigateway;
const DynamoDbWebSocketServer = require("./DynamoDbWebSocketServer");

const app = async (connectionId, { webSocketServer }) => {
  return webSocketServer.removeConnection(connectionId);
};

const adapter = app => async (event, laconiaContext) => {
  await app(event.requestContext.connectionId, laconiaContext);
  return res("success", 200);
};

exports.handler = laconia(adapter(app)).register(
  "webSocketServer",
  () => new DynamoDbWebSocketServer(process.env.CONNECTION_TABLE_NAME)
);
github laconiajs / laconia / packages / laconia-acceptance-test / src / connect-websocket.js View on Github external
// @ts-check
const laconia = require("@laconia/core");
const { res } = require("@laconia/event").apigateway;
const DynamoDbWebSocketServer = require("./DynamoDbWebSocketServer");

const app = async (connectionId, { webSocketServer }) => {
  return webSocketServer.addConnection(connectionId);
};

const adapter = app => async (event, laconiaContext) => {
  await app(event.requestContext.connectionId, laconiaContext);
  return res("success", 200);
};

exports.handler = laconia(adapter(app)).register(
  "webSocketServer",
  () => new DynamoDbWebSocketServer(process.env.CONNECTION_TABLE_NAME)
);
github laconiajs / laconia / packages / laconia-acceptance-test / src / accept-order.js View on Github external
// @ts-check
const laconia = require("@laconia/core");
const { req, res } = require("@laconia/event").apigateway;
const KinesisOrderStream = require("./KinesisOrderStream");

const instances = ({ env }) => ({
  orderStream: new KinesisOrderStream(env.ORDER_STREAM_NAME)
});

const withCors = next => async (...args) => {
  const response = await next(...args);
  response.headers["Access-Control-Allow-Origin"] = "*";
  return response;
};

const adapter = app =>
  withCors(async (event, dependencies) => {
    try {
      const id = req(event).params.id;
github laconiajs / laconia / packages / laconia-adapter-api / src / ApiGatewayNameMappingErrorConverter.js View on Github external
const { res } = require("@laconia/event").apigateway;

const getMappingEntries = mappings =>
  mappings instanceof Map ? mappings.entries() : Object.entries(mappings);

const getMappingResponse = (mappings, error) => {
  let mappingResponse = {};
  for (const [errorRegex, mapping] of getMappingEntries(mappings)) {
    if (error.name.match(errorRegex)) {
      mappingResponse = mapping(error);
      break;
    }
  }
  return mappingResponse;
};

module.exports = class ApiGatewayNameMappingErrorConverter {
github laconiajs / laconia / packages / laconia-adapter-api / src / createWebSocketAdapter.js View on Github external
const { res, parseWebSocket } = require("@laconia/event").apigateway;

const createWebSocketAdapter = () => app => async (event, laconiaContext) => {
  try {
    const output = await app(parseWebSocket(event), laconiaContext);
    return res(output);
  } catch (err) {
    return res(err.message, 500);
  }
};

module.exports = createWebSocketAdapter;
github laconiajs / laconia / packages / laconia-adapter-api / src / ApiGatewayParamsInputConverter.js View on Github external
const { req } = require("@laconia/event").apigateway;

module.exports = class ApiGatewayParamsInputConverter {
  convert(event) {
    const apiGatewayEvent = req(event);
    return {
      payload: Object.assign(
        { body: apiGatewayEvent.body },
        apiGatewayEvent.params
      ),
      headers: apiGatewayEvent.headers
    };
  }
};
github laconiajs / laconia / packages / laconia-adapter-api / src / ApiGatewayBodyInputConverter.js View on Github external
const { req } = require("@laconia/event").apigateway;

module.exports = class ApiGatewayBodyInputConverter {
  convert(event) {
    const apiGatewayEvent = req(event);
    return {
      payload: apiGatewayEvent.body,
      headers: Object.assign(
        {},
        apiGatewayEvent.headers,
        apiGatewayEvent.params
      )
    };
  }
};
github laconiajs / laconia / packages / laconia-adapter-api / src / ApiGatewayOutputConverter.js View on Github external
const { res } = require("@laconia/event").apigateway;

module.exports = class ApiGatewayOutputConverter {
  constructor({ statusCode = 200, additionalHeaders = {} } = {}) {
    this.statusCode = statusCode;
    this.additionalHeaders = additionalHeaders;
  }

  convert(output) {
    return res(output, this.statusCode, this.additionalHeaders);
  }
};