import {Request} from '../Request.ts' import Kernel from './Kernel.ts' import AppClass from '../../lifecycle/AppClass.ts' /** * Base class for HTTP kernel modules. * @extends AppClass */ export default class Module extends AppClass { /** * Returns true if the given module should be applied to the incoming request. * @param {Request} request * @return Promise */ public async match(request: Request): Promise { return true } /** * Apply the module to the incoming request. * @param {Request} request * @return Promise */ public async apply(request: Request): Promise { return request } /** * Register this module with the given HTTP kernel. * @param {Kernel} kernel */ public static register(kernel: Kernel) { kernel.register(this).before() } }