diff --git a/packages/grpc-js/src/server-call.ts b/packages/grpc-js/src/server-call.ts index bd992773..1e74b1c5 100644 --- a/packages/grpc-js/src/server-call.ts +++ b/packages/grpc-js/src/server-call.ts @@ -91,10 +91,13 @@ export type ServerWritableStream< RequestType, ResponseType > = ServerSurfaceCall & - ObjectWritable & { request: RequestType | null }; + ObjectWritable & { + request: RequestType | null; + end: (metadata?: Metadata) => void; + }; export type ServerDuplexStream = ServerSurfaceCall & ObjectReadable & - ObjectWritable; + ObjectWritable & { end: (metadata?: Metadata) => void }; export class ServerUnaryCallImpl extends EventEmitter implements ServerUnaryCall { @@ -255,6 +258,15 @@ export class ServerDuplexStreamImpl extends Duplex sendMetadata(responseMetadata: Metadata): void { this.call.sendMetadata(responseMetadata); } + + // eslint-disable-next-line @typescript-eslint/no-explicit-any + end(metadata?: any) { + if (metadata) { + this.trailingMetadata = metadata; + } + + super.end(); + } } ServerDuplexStreamImpl.prototype._read =