Slide 11
Slide 11 text
Copyright (C) 2023 Toranoana Lab Inc. All Rights Reserved.
プラグイン実装
import {type Plugin, type MiddlewareHandlerContext, type MiddlewareHandler} from "../deps.ts";
import {LogModule, type Logger, type RemoteLogSenderFunction} from "./loggerModule.ts";
export function getLoggerHandler(logSender?: RemoteLogSenderFunction): Plugin {
const handler: MiddlewareHandler = async function (
_req: Request,
ctx: MiddlewareHandlerContext
) {
ctx.state.logger = new LogModule(logSender);
return await ctx.next();
};
return {
name: "loggerPlugin",
middlewares: [
{
middleware: {
handler: handler as MiddlewareHandler>,
},
path: "/",
},
],
};
}