import type { IncomingMessage } from 'http'; import type { NextServer, RequestHandler } from 'next/dist/server/next'; type Crowi = { nextApp: NextServer, } type CrowiReq = IncomingMessage & { crowi: Crowi, } type NextDelegatorResult = { delegateToNext: RequestHandler, }; const delegator = (crowi: Crowi): NextDelegatorResult => { const { nextApp } = crowi; const handle = nextApp.getRequestHandler(); const delegateToNext: RequestHandler = (req: CrowiReq, res): Promise => { req.crowi = crowi; return handle(req, res); }; return { delegateToNext, }; }; export default delegator;