@marplex/hono-azurefunc-adapter
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

hono-azurefunc-adapter

Azure Functions V4 adapter for Hono. Run Hono on Azure Functions.


License GitHub CI NPM NPM Downloads Github

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

//host.json
{
    [...]

    "extensions": {
        "http": {
            "routePrefix": ""
        }
    }
}

Crypto

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)

Package Sidebar

Install

npm i @marplex/hono-azurefunc-adapter

Weekly Downloads

16

Version

1.0.0

License

MIT

Unpacked Size

7.37 kB

Total Files

11

Last publish

Collaborators

  • marplex