Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/marplex/hono-azurefunc-adapter
Azure Functions adapter for Hono. Run Hono on Azure Functions.
https://github.com/marplex/hono-azurefunc-adapter
Last synced: about 1 month ago
JSON representation
Azure Functions adapter for Hono. Run Hono on Azure Functions.
- Host: GitHub
- URL: https://github.com/marplex/hono-azurefunc-adapter
- Owner: Marplex
- License: mit
- Created: 2024-03-06T17:53:30.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-05-08T16:30:17.000Z (8 months ago)
- Last Synced: 2024-05-08T17:59:16.427Z (8 months ago)
- Language: TypeScript
- Size: 7.81 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
hono-azurefunc-adapter
Azure Functions V4 adapter for Hono. Run Hono on Azure Functions.
# Install
```bash
npm i @marplex/hono-azurefunc-adapter
```# Getting started
The adapter exposes an handler that converts between standard web Request/Response (used by Hono) and HttpRequest/HttpResponse (used by Azure Functions). This handler is then called by the function http trigger.```typescript
//app.tsimport { Hono } from "hono";
const app = new Hono();...
export default app
``````typescript
//httpTrigger.tsimport honoApp from "./app";
import { azureHonoHandler } from "@marplex/hono-azurefunc-adapter";
import { app } from "@azure/functions";app.http("httpTrigger", {
methods: [
"GET",
"POST",
"DELETE",
"HEAD",
"PATCH",
"PUT",
"OPTIONS",
"TRACE",
"CONNECT",
],
authLevel: "anonymous",
route: "{*proxy}",
handler: azureHonoHandler(honoApp.fetch),
});
```# Limitations
There are some limitations and other things you should keep in mind when running Hono inside Azure Functions.
### Route Prefix
The default Azure Functions route prefix is `/api`. Be sure to start all your Hono routes with `/api` or change the default Azure Functions route prefix in `host.json`
```json
{
"extensions": {
"http": {
"routePrefix": ""
}
}
}
```### Crypto
In Node <=18 environments, if you are using `hono/bearer-auth` or any other library that uses crypto, be sure to define `global.crypto = require("crypto");` before registering the http trigger.
### Request signal
Azure Functions does not expose any signal or event for listening to http request interruptions. `c.req.raw.signal` is useless and its never aborted.
# Untested scenarios
- SSE (streaming response)