diff --git a/packages/hoppscotch-backend/src/pubsub/pubsub.service.ts b/packages/hoppscotch-backend/src/pubsub/pubsub.service.ts index 854ef2e92..ba86342e1 100644 --- a/packages/hoppscotch-backend/src/pubsub/pubsub.service.ts +++ b/packages/hoppscotch-backend/src/pubsub/pubsub.service.ts @@ -4,7 +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'; +import { TopicDef } from './subscriptionTopicsDefs'; /** * RedisPubSub uses JSON parsing for back and forth conversion, which loses Date objects, hence this reviver brings them back @@ -71,10 +71,7 @@ export class PubSubService implements OnModuleInit { return this.pubsub.asyncIterator(topic, options); } - async publish( - topic: T, - payload: MessageType[T], - ) { + async publish(topic: T, payload: TopicDef[T]) { await this.pubsub.publish(topic, payload); } } diff --git a/packages/hoppscotch-backend/src/pubsub/subscriptionTopicsDefs.ts b/packages/hoppscotch-backend/src/pubsub/subscriptionTopicsDefs.ts index c860d55a4..4a1fbcb27 100644 --- a/packages/hoppscotch-backend/src/pubsub/subscriptionTopicsDefs.ts +++ b/packages/hoppscotch-backend/src/pubsub/subscriptionTopicsDefs.ts @@ -1,14 +1,10 @@ import { UserEnvironment } from '../user-environment/user-environments.model'; -import { PrimitiveTypes } from '../types/primitiveTypes'; // A custom message type that defines the topic and the corresponding payload. // For every module that publishes a subscription add its type def and the possible subscription type. -export type MessageType = { +export type TopicDef = { [ - topic: `user_environment/${string}/${ - | 'created' - | 'updated' - | 'deleted' - | 'deleted_many'}` - ]: UserEnvironment | PrimitiveTypes; // Returning a number hence having a union with `PrimitiveTypes`. + topic: `user_environment/${string}/${'created' | 'updated' | 'deleted'}` + ]: UserEnvironment; + [topic: `user_environment/${string}/deleted_many`]: number; };