Socket
Book a DemoInstallSign in
Socket

lambda-dev

Package Overview
Dependencies
Maintainers
1
Versions
67
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

lambda-dev

Develop and Bundle Your Lambda Functions With Ease

1.8.22
latest
Source
npmnpm
Version published
Weekly downloads
83
591.67%
Maintainers
1
Weekly downloads
 
Created
Source

λ-dev

GitHub Actions version code size dependencies devDependencies

Develop and Bundle Your Lambda Functions With Ease.

Installation

npm install --save-dev lambda-dev

yarn add --dev lambda-dev

Usage

Development

Use lambda-dev to develop lambda functions locally. lambda-dev serve starts an Express server that proxies http requests to your lambda functions. They are transpiled with @babel/core and @babel/preset-env, with the node target set to --node [target] (default 6.10). This is done through webpack with the help of babel-loader.

lambda-dev serve --help
lambda-dev serve src/functions --node 8.10 --port 9000 --basePath /lambda

Now a given function src/functions/test.js will be invoked with requests to http://localhost:9000/lambda/test.

Build

lambda-dev build --help
lambda-dev serve src/functions build/functions --node 8.10

Bundled functions will be at build/functions.

Custom Webpack configuration

It is possible to supply a custom Webpack configuration for serving and building your Lambda functions:

lambda-dev serve src/functions --webpack-config ./my-webpack.config.js

where the default export of my-webpack.config.js should be either and object or a function. If it's an object, it will be merged with the default configuration using merge.smart from webpack-merge. If it's a function, it will receive the default configuration as its argument and should return a full valid configuration.

Custom babel configuration

It's not possible to directly supply a custom babel configuration, but you can override the webpack configuration's babel-loader options:

const myBabelOptions = require('./my-babel.config.js');

module.exports = {
  module: {
    rules: [
      {
        test: /\.js$/,
        use: {
          loader: require.resolve('babel-loader'),
          options: {
            babelrc: false,
            options: myBabelOptions
          }
        }
      }
    ]
  }
};

Lambda Function Specification

Read the official docs

Lambda functions should export a handler function that receives the following arguments:

import { Request } from 'express';

type Event = {
  path: Request.path,
  httpMethod: Request.method,
  queryStringParameters: Request.query,
  headers: Request.headers,
  body: Request.body
};

type Context = {} // Empty with `lambda-dev serve`

exports.handler: (event: Event, context: Context, callback) => callback(error: Error | null, response: Response | null);

Keywords

babel

FAQs

Package last updated on 30 Dec 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.