import { expectError, expectType } from 'tsd' import { Redis } from 'ioredis' import mqEmitterRedis, { Message, MQEmitterRedis } from './mqemitter-redis.js' expectType(mqEmitterRedis()) expectType( mqEmitterRedis({ concurrency: 200, matchEmptyLevels: true }) ) expectType( mqEmitterRedis({ concurrency: 10, matchEmptyLevels: true, separator: '/', wildcardOne: '+', wildcardSome: '#', connectionString: 'redis://:authpassword@127.0.0.1:6380/4', }) ) expectType( mqEmitterRedis({ concurrency: 10, matchEmptyLevels: true, host: 'localhost', port: 6379, // eslint-disable-next-line n/handle-callback-err reconnectOnError: (error: Error) => true, retryStrategy: (times: number) => times * 1.5, }) ) expectType( mqEmitterRedis({ maxLRUCache: 100, ttlLRUCache: 10000, }) ) expectType( mqEmitterRedis({ subConn: new Redis(), pubConn: new Redis(), }) ) function listener (message: Message, done: () => void) {} expectType(mqEmitterRedis().on('topic', listener)) expectType(mqEmitterRedis().removeListener('topic', listener)) expectError(mqEmitterRedis().emit(null)) expectType(mqEmitterRedis().emit({ topic: 'test', prop1: 'prop1' })) expectType(mqEmitterRedis().close(() => null))