Skip to content

Commit eca5e4f

Browse files
committed
feat: Add res.redirect().
fix #286
1 parent 9b81505 commit eca5e4f

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

src/core/ExegesisResponseImpl.ts

+15
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,21 @@ export default class ExegesisResponseImpl implements types.ExegesisResponse {
8989
this.ended = true;
9090
}
9191

92+
redirect(status: number, url: string): this;
93+
redirect(url: string): this;
94+
redirect(a: number | string, b?: string): this {
95+
if (typeof a === 'string' && !b) {
96+
this.writeHead(302, { Location: a });
97+
} else if (typeof a === 'number' && typeof b === 'string') {
98+
this.writeHead(a, { Location: b });
99+
} else {
100+
throw new Error('Invalid arguments to redirect');
101+
}
102+
this.end();
103+
104+
return this;
105+
}
106+
92107
setHeader(name: string, value: number | string | string[]) {
93108
if (this.ended && !this._afterController) {
94109
throw new Error('Trying to set header after response has been ended.');

src/types/core.ts

+2
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ export interface ExegesisResponse {
5151
*/
5252
pureJson(json: any): this;
5353
end(): void;
54+
redirect(status: number, url: string): this;
55+
redirect(url: string): this;
5456
setHeader(name: string, value: number | string | string[] | undefined): void;
5557
getHeader(name: string): number | string | string[] | undefined;
5658
getHeaderNames(): string[];

0 commit comments

Comments
 (0)