Skip to content

Commit f59cf5e

Browse files
committed
feat: update handler to be protected and only handle errors once
1 parent 18c27cd commit f59cf5e

2 files changed

Lines changed: 7 additions & 9 deletions

File tree

packages/common/file-stream/streamable-file.ts

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,19 @@ import { types } from 'util';
33
import { isFunction } from '../utils/shared.utils';
44
import { StreamableFileOptions } from './streamable-options.interface';
55

6-
interface StreamableHandlerResponse {
6+
export interface StreamableHandlerResponse {
77
statusCode: number;
88
send: (msg: string) => void;
99
}
1010

1111
export class StreamableFile {
1212
private readonly stream: Readable;
1313

14-
private handler: (err: Error, response: StreamableHandlerResponse) => void = (
15-
err: Error,
16-
res,
17-
) => {
18-
res.statusCode = 400;
19-
res.send(err.message);
20-
};
14+
protected handler: (err: Error, response: StreamableHandlerResponse) => void =
15+
(err: Error, res) => {
16+
res.statusCode = 400;
17+
res.send(err.message);
18+
};
2119

2220
constructor(buffer: Uint8Array, options?: StreamableFileOptions);
2321
constructor(readable: Readable, options?: StreamableFileOptions);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ export class ExpressAdapter extends AbstractHttpAdapter {
8181
response.setHeader('Content-Length', streamHeaders.length);
8282
}
8383
return pipeline(
84-
body.getStream().on('error', (err: Error) => {
84+
body.getStream().once('error', (err: Error) => {
8585
body.errorHandler(err, response);
8686
}),
8787
response,

0 commit comments

Comments
 (0)