@ultirequiem/hono-di
v1.0.1
Published
Simple dependency injection for Hono
Downloads
6
Readme
hono-di
Simple dependency injection for Hono.
Usage
List your dependencies:
export interface MyRouterDependencies {
myService: IService;
}Call them in your router:
import { Hono } from "hono";
import type { MyRouterDeps } from "./myrouter.dependencies";
const myRouter = new Hono<{ Variables: MyRouterDeps }>();
pageRouter.get("/", (c) => {
const myService = c.get("myService");
// Do stuff...
});Create a middleware to inject them:
import { createDepsMiddleware } from "@mappa/hono-di";
import type { MyRouterDependencies } from "./myrouter.dependencies";
const myService = new MyService();
// Type safe!
export const insertMyRouterDependencies =
createDepsMiddleware<MyRouterDependencies>({
myService,
});Use the middleware in your app:
import { Hono } from "hono";
import { insertMyRouterDependencies } from "./myrouter.middleware";
const app = new Hono();
app.use("/myrouter/*", insertMyRouterDependencies);
app.route("/myrouter", myRouter);