============
Use ScalablyTyped instead 🙇
A set of type definition and utility to implement AWS Lambda functions.
This is NOT a type definition for AWS Lambda API in aws-sdk-js. It can be found in aws-sdk-scalajs-facade.
exoego/scala-js-nodejs offers type definition and utilities for Node.js API.
ScalaJS 0.6.28+ | ScalaJS 1.x | |
---|---|---|
Scala 2.13 | ✔️ (0.9.0 was final) | ✔️ |
Scala 2.12 | ✔️ (0.9.0 was final) | ✔️ (0.11.0 was final) |
Scala 2.11 | N/A | N/A |
Scala 2.10 | N/A | N/A |
- ✔️ Supported
- 🚧 Not supported but planned
Add dependency in build.sbt
.
libraryDependencies += "net.exoego" %%% "aws-lambda-scalajs-facade" % "0.12.1"
Import and code.
import scala.concurrent.{ExecutionContext, Future} import scala.scalajs.js import scala.scalajs.js.JSConverters._ import scala.scalajs.js.annotation._ import net.exoego.facade.aws_lambda._ object Main { @JSExportTopLevel("handler") val handler: AsyncAPIGatewayProxyHandler = (event, context) => { val json = js.JSON.stringify(event) js.Dynamic.global.console.log(json) implicit val ec = ExecutionContext.global handle(event).toJSPromise } private def handle(event: APIGatewayProxyEvent)(implicit ec: ExecutionContext): Future[APIGatewayProxyResult] = Future { APIGatewayProxyResult( statusCode = 200, body = "hello " + event.body, headers = js.defined(js.Dictionary("Content-Type" -> "text/plain")) ) } }
Some of pre-defined handler traits:
- APIGatewayProxyHandlerV2
- AppSyncResolverHandler
- DynamoDBStreamHandler
- S3Handler
- SNSHandler
Each has Async~
variant that returns js.Promise
instead of accepting callback.
- Apache License version 2.0
- Basically generated from https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/aws-lambda/index.d.ts which is under MIT License