1.0.1 • Published 9 months ago

@marplex/hono-azurefunc-adapter v1.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
9 months ago

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)
1.0.1

9 months ago

1.0.0

1 year ago