Cross-proxy

An isolated core abstraction layer for integrating various messaging systems such as Kafka, RabbitMQ, etc., enabling seamless communication and interchangeability based on the @nestjs/microservices.
To install the project:
npm install cross-proxy
How to use
There will be a class that must be extended by your core. There will be ready-made public methods and there will also be abstract methods that must be implemented in their core. this.routingMap
is used to store asynchronous message callbacks and this.handlers
is used to store callbacks that will be executed when a particular topic is called.
import {
IMessageOptionsDTO,
IPatternDTO,
IReadPacketDTO,
IWritePacketDTO,
Proxy,
} from 'cross-proxy';
export class YourCore extends Proxy<unknown> {
public constructor() {
super(30000);
}
protected connect(): Promise<unknown> {}
protected closeConnections(): Promise<unknown> {}
protected subscribe(pattern: IPatternDTO): void {}
protected serializeMessageOptions(options?: IMessageOptionsDTO): unknown {}
protected deserializeMessage<Input>(
value: Input,
message: unknown,
): IWritePacketDTO<Input> & { id: string } {}
protected decode<Input, Val>(value: Val): Input | string | null | Buffer {}
protected setListener<T, X>(data: {
pattern: IPatternDTO;
handlers: Array<(data: IWritePacketDTO<T>) => X>;
}): void {}
protected publish<Input, Output>(data: {
partialPacket: IReadPacketDTO<Input, IMessageOptionsDTO>;
callback: (packet: IWritePacketDTO<Output>) => void;
}): () => void | undefined {}
protected dispatchEvent<Input>(
packet: IReadPacketDTO<Input, IMessageOptionsDTO>,
): Promise<unknown> {}
}