mirror of
https://github.com/nestjs/nest.git
synced 2026-02-21 23:11:44 +00:00
35 lines
907 B
TypeScript
35 lines
907 B
TypeScript
import { isUndefined } from '@nestjs/common/utils/shared.utils';
|
|
import { KafkaHeaders } from '../enums/kafka-headers.enum';
|
|
import { Deserializer, IncomingResponse } from '../interfaces';
|
|
|
|
/**
|
|
* @publicApi
|
|
*/
|
|
export class KafkaResponseDeserializer implements Deserializer<
|
|
any,
|
|
IncomingResponse
|
|
> {
|
|
deserialize(message: any, options?: Record<string, any>): IncomingResponse {
|
|
const id = message.headers[KafkaHeaders.CORRELATION_ID].toString();
|
|
if (!isUndefined(message.headers[KafkaHeaders.NEST_ERR])) {
|
|
return {
|
|
id,
|
|
err: message.headers[KafkaHeaders.NEST_ERR],
|
|
isDisposed: true,
|
|
};
|
|
}
|
|
if (!isUndefined(message.headers[KafkaHeaders.NEST_IS_DISPOSED])) {
|
|
return {
|
|
id,
|
|
response: message.value,
|
|
isDisposed: true,
|
|
};
|
|
}
|
|
return {
|
|
id,
|
|
response: message.value,
|
|
isDisposed: false,
|
|
};
|
|
}
|
|
}
|