Skip to content

Commit 963cbb6

Browse files
authored
Merge pull request #19 from shlyamster/main
feat: added NextFetchEvent support
2 parents 5f70442 + 64ffff3 commit 963cbb6

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

package/src/chain.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import { type NextRequest } from "next/server";
1+
import type { NextRequest, NextFetchEvent } from "next/server";
22
import { collectData } from "./lib/collect-data";
33
import { ChainItem } from "./lib/types";
44
import { formatResponse } from "./lib/format-response";
55
export { FinalNextResponse } from "./lib/final-next-response";
66

7-
export const chain = (middlewares: ChainItem[]) => async (req: NextRequest) => {
8-
const summary = await collectData(req, middlewares);
7+
export const chain = (middlewares: ChainItem[]) => async (req: NextRequest, event: NextFetchEvent) => {
8+
const summary = await collectData(req, event, middlewares);
99
const next = formatResponse(summary);
1010

1111
return next;

package/src/lib/collect-data.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import { NextResponse, type NextRequest } from "next/server";
1+
import { NextResponse, type NextRequest, type NextFetchEvent } from "next/server";
22
import { ChainItem, Middleware, type ChainNextResponse, type Summary } from "./types";
33
import { FinalSymbol } from "./final-next-response";
44
import { INTERNAL_HEADERS } from "./constants";
55

6-
export const collectData = async (req: NextRequest, chainItems: ChainItem[]) => {
6+
export const collectData = async (req: NextRequest, event: NextFetchEvent, chainItems: ChainItem[]) => {
77
const summary: Summary = {
88
type: "none",
99
destination: req.nextUrl,
@@ -28,7 +28,7 @@ export const collectData = async (req: NextRequest, chainItems: ChainItem[]) =>
2828
} else {
2929
middleware = chainItem;
3030
}
31-
const middlewareNext = await middleware(Object.assign(req, { summary: Object.freeze({ ...summary }) }));
31+
const middlewareNext = await middleware(Object.assign(req, { summary: Object.freeze({ ...summary }) }), event);
3232

3333
if (!middlewareNext) continue;
3434

package/src/lib/types.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { type ResponseCookie } from "next/dist/compiled/@edge-runtime/cookies";
22
import { type NextURL } from "next/dist/server/web/next-url";
3-
import { NextResponse, type NextRequest } from "next/server";
3+
import { NextResponse, type NextRequest, type NextFetchEvent } from "next/server";
44
import { FinalNextResponse, FinalSymbol } from "./final-next-response";
55

66
export type NextType = "rewrite" | "redirect" | "json" | "none" | undefined;
@@ -23,6 +23,6 @@ export type ChainNextResponse = FinalNextResponse | (NextResponse & { [FinalSymb
2323

2424
export type MiddlewareResult = ChainNextResponse | Response | void | undefined | null | Promise<MiddlewareResult>;
2525

26-
export type Middleware = (req: ChainNextRequest) => MiddlewareResult;
26+
export type Middleware = (req: ChainNextRequest, event: NextFetchEvent) => MiddlewareResult;
2727

2828
export type ChainItem = Middleware | [Middleware, { include?: RegExp; exclude?: RegExp }?];

0 commit comments

Comments
 (0)