@marplex/hono-azurefunc-adapter
v1.0.1
Published
Azure Functions adapter for Hono. Run Hono on Azure Functions.
Downloads
1,659
Maintainers
Readme
Install
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.
//app.ts
import { Hono } from "hono";
const app = new Hono();
...
export default app
//httpTrigger.ts
import 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
{
"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)