3.0.0 • Published 2 years ago

@millihq/sammy v3.0.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
2 years ago

Sammy

A Node.js wrapper for AWS SAM CLI for local testing of Lambda functions.

Usage

npm i -D @millihq/sammy     # npm
yarn add -D @millihq/sammy  # or yarn

Assuming you have a Lambda function with the following content:

// handler.js
exports.handler = async function (event, context) {
  return {
    isBase64Encoded: false,
    statusCode: 200,
    body: 'Hello World!',
    headers: {
      'content-type': 'application/json',
    },
  };
};

which is packaged into a compressed zip file called lambda.zip.

Run lambda locally with API-Gateway

You can now start the Lambda function locally and access it through an API-Endpoint:

import * as path from 'path';

import { generateAPISAM, APISAMGenerator } from '@millihq/sammy';

const lambdaSAM = await generateAPISAM({
  lambdas: {
    first: {
      filename: 'lambda.zip',
      handler: 'handler.handler',
      runtime: 'nodejs16.x',
      route: '/test',
      method: 'get',
    },
  },
  cwd: process.cwd(),
});

const response = await lambdaSAM.sendApiGwRequest('/test');
console.log(await response.text());
// => Hello World!

License

Apache-2.0 - see LICENSE for details.