Skip to content

Commit 5777dbf

Browse files
authored
Merge pull request #33 from alexdln/nmc-32
nmc-32 configure default generic types for chain
2 parents 2dd55e0 + b1e783c commit 5777dbf

4 files changed

Lines changed: 10 additions & 10 deletions

File tree

examples/auth5-intl/src/middleware.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { auth } from "@/auth";
22
import createMiddleware from "next-intl/middleware";
3-
import { chain, FinalNextResponse } from "@nimpl/middleware-chain";
4-
import { Middleware } from "@nimpl/middleware-chain/dist/lib/types";
3+
import { chain, FinalNextResponse, type Middleware } from "@nimpl/middleware-chain";
54

65
const intlMiddleware = createMiddleware({
76
locales: ["en", "dk"],

package/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@nimpl/middleware-chain",
3-
"version": "0.5.1",
3+
"version": "0.5.2",
44
"description": "The package allows you to create a chain of native next.js middlewares without any modifications",
55
"main": "./dist/chain.js",
66
"files": [

package/src/chain.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1-
import { type NextFetchEvent } from "next/server";
1+
import { type NextFetchEvent, type NextRequest, type NextResponse } from "next/server";
22
import { type ChainItem, type ChainConfig, type BaseRequest } from "./lib/types";
33
import { collectData } from "./lib/collect-data";
44
import { formatResponse } from "./lib/format-response";
55
import { Logger } from "./lib/logger";
66

7+
export { type ChainItem, type ChainConfig, type BaseRequest, type Middleware } from "./lib/types";
78
export { FinalNextResponse } from "./lib/final-next-response";
89

910
export const chain =
10-
<RequestType extends Request & BaseRequest, ResponseType extends Response>(
11+
<RequestType extends Request & BaseRequest = NextRequest, ResponseType extends Response = NextResponse>(
1112
middlewares: ChainItem<RequestType, ResponseType>[],
1213
config?: ChainConfig,
1314
) =>

package/src/lib/types.ts

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

@@ -23,24 +23,24 @@ export interface ChainNextRequest extends BaseRequest {
2323
summary: Readonly<Summary>;
2424
}
2525

26-
export type ChainNextResponse<ResponseType extends Response> =
26+
export type ChainNextResponse<ResponseType extends Response = Response> =
2727
| FinalNextResponse
2828
| (ResponseType & { [FinalSymbol]?: undefined });
2929

30-
export type MiddlewareResult<ResponseType extends Response> =
30+
export type MiddlewareResult<ResponseType extends Response = Response> =
3131
| ChainNextResponse<ResponseType>
3232
| Response
3333
| void
3434
| undefined
3535
| null
3636
| Promise<MiddlewareResult<ResponseType>>;
3737

38-
export type Middleware<T extends BaseRequest, ResponseType extends Response> = (
38+
export type Middleware<T extends BaseRequest = NextRequest, ResponseType extends Response = NextResponse> = (
3939
req: ChainNextRequest & T,
4040
event: NextFetchEvent,
4141
) => MiddlewareResult<ResponseType>;
4242

43-
export type ChainItem<T extends BaseRequest, ResponseType extends Response> =
43+
export type ChainItem<T extends BaseRequest = NextRequest, ResponseType extends Response = NextResponse> =
4444
| Middleware<T, ResponseType>
4545
| [Middleware<T, ResponseType>, { include?: RegExp; exclude?: RegExp }?];
4646

0 commit comments

Comments
 (0)