Skip to content

NamesMT/hono-adapter-aws-lambda

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c955d81 · Sep 4, 2024

History

96 Commits
Aug 24, 2024
Aug 24, 2024
Aug 24, 2024
Sep 4, 2024
Sep 4, 2024
Mar 22, 2024
Mar 22, 2024
Sep 4, 2024
Mar 22, 2024
Jul 25, 2024
Jun 22, 2024
Sep 4, 2024
Sep 4, 2024
Aug 24, 2024
Mar 22, 2024
Mar 28, 2024
Mar 22, 2024
Mar 22, 2024
Mar 22, 2024

Repository files navigation

hono-adapter-aws-lambda TypeScript heart icon

npm version npm downloads Codecov Bundlejs jsDocs.io

hono-adapter-aws-lambda is a fork of hono's aws-lambda adapter, experimenting and adding some extra features

Features, Changes & Roadmap

  • Codebase is refactored quite a bit.
  • Add routing support for trigger events.
    • I.e, support for S3, SQS, etc. triggers, which would also support a simpler cross-function call interface.

    • Multiple routes on the same eventSource support.
    • Uses a factory pattern, the internal trigger context (middlewares, env bindings) is decoupled from the main Hono app.
    • See #10 for more information.
  • Support returning a Lambda response result directly, useful for returning the response of another invoked function.

Usage

Install package:

# pnpm (recommended)
pnpm install hono-adapter-aws-lambda

Import:

// ESM
import { handle, streamHandle } from 'hono-adapter-aws-lambda'

Examples:

Fast example of accepting an S3 trigger event

import type { S3Event } from 'aws-lambda' // You need to install `@types/aws-lambda`
import { createTriggerFactory, handle, streamHandle } from 'hono-adapter-aws-lambda'

interface Bindings {
  event: { Records: Array<{ eventName: string }> }
}
const app = new Hono<{ Bindings: Bindings }>()
const triggerFactory = createTriggerFactory(app)

triggerFactory.on('aws:s3', '$!', c => c.text((c.env.event as S3Event).Records[0].eventName))

See some more examples in the test file: test/index.test.ts

License

MIT License © 2024 NamesMT