Skip to content

Commit 557f585

Browse files
fix(platform-fastify) wrap native response object for exception filter
1 parent 892df6c commit 557f585

1 file changed

Lines changed: 13 additions & 1 deletion

File tree

packages/platform-fastify/adapters/fastify-adapter.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
import { RequestMethod, HttpStatus } from '@nestjs/common';
1+
import { HttpStatus, RequestMethod } from '@nestjs/common';
22
import { CorsOptions } from '@nestjs/common/interfaces/external/cors-options.interface';
33
import { NestApplicationOptions } from '@nestjs/common/interfaces/nest-application-options.interface';
44
import { loadPackage } from '@nestjs/common/utils/load-package.util';
55
import { AbstractHttpAdapter } from '@nestjs/core/adapters/http-adapter';
66
import * as fastify from 'fastify';
77
import * as cors from 'fastify-cors';
88
import * as formBody from 'fastify-formbody';
9+
import * as Reply from 'fastify/lib/Reply';
910
import * as pathToRegexp from 'path-to-regexp';
1011

1112
export class FastifyAdapter extends AbstractHttpAdapter {
@@ -35,6 +36,17 @@ export class FastifyAdapter extends AbstractHttpAdapter {
3536
}
3637

3738
public reply(response: any, body: any, statusCode?: number) {
39+
const isNativeResponse = typeof response.status !== 'function';
40+
if (isNativeResponse) {
41+
const fastifyContext = {
42+
preSerialization: null,
43+
preValidation: [],
44+
preHandler: [],
45+
onSend: [],
46+
onError: [],
47+
};
48+
response = new Reply(response, fastifyContext, {});
49+
}
3850
if (statusCode) {
3951
response.status(statusCode);
4052
}

0 commit comments

Comments
 (0)