Skip to content

Commit df5ea26

Browse files
authored
feat: add type guard (#502)
Resolves #501
1 parent 8685c7a commit df5ea26

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

context_test.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@ import {
1111
import type { Application, State } from "./application.ts";
1212
import { Context } from "./context.ts";
1313
import { errors, SecureCookieMap } from "./deps.ts";
14-
import { NativeRequest } from "./http_server_native_request.ts";
14+
import {
15+
isNativeRequest,
16+
NativeRequest,
17+
} from "./http_server_native_request.ts";
1518
import type {} from "./http_server_native.ts";
1619
import { Request as OakRequest } from "./request.ts";
1720
import { Response as OakResponse } from "./response.ts";
@@ -107,6 +110,7 @@ Deno.test({
107110
assertStrictEquals(context.app, app);
108111
assert(context.cookies instanceof SecureCookieMap);
109112
assert(context.request instanceof OakRequest);
113+
assert(isNativeRequest(context.request.originalRequest));
110114
assert(context.response instanceof OakResponse);
111115
},
112116
});

http_server_native_request.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ const maybeUpgradeWebSocket: UpgradeWebSocketFn | undefined =
1818
? (Deno as any).upgradeWebSocket.bind(Deno)
1919
: undefined;
2020

21+
export function isNativeRequest(r: ServerRequest): r is NativeRequest {
22+
return r instanceof NativeRequest;
23+
}
24+
2125
export interface NativeRequestOptions {
2226
conn?: Deno.Conn;
2327
upgradeWebSocket?: UpgradeWebSocketFn;

0 commit comments

Comments
 (0)