chore: added message types to PubSub Service

This commit is contained in:
ankitsridhar16
2023-01-20 14:55:26 +05:30
parent 60e2ef7cda
commit a0006f73ac
3 changed files with 19 additions and 1 deletions

View File

@@ -4,6 +4,7 @@ import { default as Redis, RedisOptions } from 'ioredis';
import { RedisPubSub } from 'graphql-redis-subscriptions';
import { PubSub as LocalPubSub } from 'graphql-subscriptions';
import { MessageType } from './subscriptionTopicsDefs';
/**
* RedisPubSub uses JSON parsing for back and forth conversion, which loses Date objects, hence this reviver brings them back
@@ -70,7 +71,10 @@ export class PubSubService implements OnModuleInit {
return this.pubsub.asyncIterator(topic, options);
}
async publish(topic: string, payload: any) {
async publish<T extends keyof MessageType>(
topic: T,
payload: MessageType[T],
) {
await this.pubsub.publish(topic, payload);
}
}