typescript-lambda-api-local
Test typescript AWS Lambda API's locally using express.
Last updated a year ago by djfdyuruiry .
MIT · Repository · Original npm · Tarball · package.json
$ cnpm install typescript-lambda-api-local 
SYNC missed versions from official npm registry.

typescript-lambda-api-local

Extension module for the typescript-lambda-api package which enables running lambda REST API's locally using express.

This module also provides Swagger UI support, powered by the swagger-ui-express npm package.


Getting Started


Note: These steps modify an existing typescript-lambda-api app. If you don't have one, see the package documentation.

  • Install this package and types for Node.js as dev dependencies:
npm install -D typescript-lambda-api-local
npm install -D @types/node
  • Create a new typescript file, add the following:
import * as path from "path"

import { ApiConsoleApp } from "typescript-lambda-api-local"

// if you use a different directory, point to it here instead of 'controllers'
let app = new ApiConsoleApp(path.join(__dirname, "controllers"))

app.runServer(process.argv)
  • Compile your application and run the new JS file using Node.js

  • You can now call your API locally:

wget -qO - http://localhost:8080/api/v1/some-controller/

Command Line Arguments


ApiConsoleApp supports several optional command line parameters.

  • -p or --port: Port to listen on, defaults to 8080
  • -h or --host: Host to accept requests on, defaults to * (any hostname/ip)
  • -c or --cors-origin: CORS origins to allow, defaults to * (any origin)

Configuration


Both the configureApp and configureApi methods documented in typescript-lambda-api are available in the ApiConsoleApp class.


Swagger UI


To enable the Swagger UI page, simply enable open-api in your application config. The interface will then be available from the /swagger endpoint. For example, if you configured your app like below:

import * as path from "path"

import { AppConfig } from "typescript-lambda-api"
import { ApiConsoleApp } from "typescript-lambda-api-local"

let appConfig = new AppConfig()

appConfig.base = "/api/v1"
appConfig.version = "v1"
appConfig.openApi.enabled = true

let app = new ApiConsoleApp(path.join(__dirname, "controllers"))

app.runServer(process.argv)

Then, the Swagger UI interface will be available @ http://localhost:8080/api/v1/swagger


Packaging for Release


When you are packing up your lambda API for release to AWS, ensure that you have installed this package as a development dependency only, otherwise it will significantly slow down and bloat your lambda.

Current Tags

  • 0.4.1                                ...           latest (a year ago)

23 Versions

  • 0.4.1                                ...           a year ago
  • 0.4.0                                ...           a year ago
  • 0.3.1                                ...           a year ago
  • 0.3.0                                ...           a year ago
  • 0.2.0                                ...           a year ago
  • 0.1.8                                ...           a year ago
  • 0.1.7                                ...           a year ago
  • 0.1.6                                ...           a year ago
  • 0.1.5-rc                                ...           a year ago
  • 0.1.5                                ...           a year ago
  • 0.1.4                                ...           a year ago
  • 0.1.3                                ...           a year ago
  • 0.1.2                                ...           a year ago
  • 0.1.1                                ...           a year ago
  • 0.1.0                                ...           a year ago
  • 0.0.9                                ...           a year ago
  • 0.0.8                                ...           a year ago
  • 0.0.7                                ...           2 years ago
  • 0.0.6                                ...           2 years ago
  • 0.0.5                                ...           2 years ago
  • 0.0.4                                ...           2 years ago
  • 0.0.3                                ...           2 years ago
  • 0.0.2                                ...           2 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (6)
Dev Dependencies (14)
Dependents (0)
None

Copyright 2014 - 2016 © taobao.org |