src/lib/incoming-request.deserializer.ts
ConsumerDeserializer
Methods |
| deserialize | |||||||||
deserialize(value: any, options?: literal type)
|
|||||||||
|
Defined in src/lib/incoming-request.deserializer.ts:9
|
|||||||||
|
Parameters :
Returns :
IncomingRequest | IncomingEvent
|
| isExternal | ||||||
isExternal(value: any)
|
||||||
|
Defined in src/lib/incoming-request.deserializer.ts:16
|
||||||
|
Parameters :
Returns :
boolean
|
| mapToSchema | |||||||||
mapToSchema(value: any, options?: literal type)
|
|||||||||
|
Defined in src/lib/incoming-request.deserializer.ts:33
|
|||||||||
|
Parameters :
Returns :
IncomingRequest | IncomingEvent
|
import { isUndefined } from '@nestjs/common/utils/shared.utils';
import {
ConsumerDeserializer,
IncomingEvent,
IncomingRequest,
} from '@nestjs/microservices';
export class RabbitMqIncomingRequestDeserializer implements ConsumerDeserializer {
deserialize(
value: any,
options?: { properties: Record<string, any>, fields: Record<string, any> },
): IncomingRequest | IncomingEvent {
return this.isExternal(value) ? this.mapToSchema(value, options) : value;
}
isExternal(value: any): boolean {
if (!value) {
return true;
}
if (
!isUndefined((
value as IncomingRequest
).pattern) ||
!isUndefined((
value as IncomingRequest
).data)
) {
return false;
}
return true;
}
mapToSchema(
value: any,
options?: { properties: Record<string, any>, fields: Record<string, any> },
): IncomingRequest | IncomingEvent {
if (!options) {
return {
pattern: undefined,
data: undefined,
};
}
return {
id: options.properties['correlationId'],
pattern: options.fields['routingKey'],
data: value,
};
}
}