import { Service } from 'typedi'; import { WORKER_RESPONSE_REDIS_LIST } from './RedisServiceHelper'; import type { RedisServiceWorkerResponseObject } from './RedisServiceCommands'; import { RedisServiceBaseSender } from './RedisServiceBaseClasses'; @Service() export class RedisServiceListSender extends RedisServiceBaseSender { async init(senderId?: string): Promise { await super.init('list-sender'); this.setSenderId(senderId); } async prepend(list: string, message: string): Promise { if (!this.redisClient) { await this.init(); } await this.redisClient?.lpush(list, message); } async append(list: string, message: string): Promise { if (!this.redisClient) { await this.init(); } await this.redisClient?.rpush(list, message); } async appendWorkerResponse(message: RedisServiceWorkerResponseObject): Promise { await this.prepend(WORKER_RESPONSE_REDIS_LIST, JSON.stringify(message)); } }