• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Nikorag / iplayarr / 14968700743

12 May 2025 09:27AM UTC coverage: 72.351% (-0.4%) from 72.779%
14968700743

push

github

web-flow
Merge pull request #138 from Nikorag/save-search-history

Save search history

354 of 581 branches covered (60.93%)

Branch coverage included in aggregate %.

13 of 25 new or added lines in 4 files covered. (52.0%)

1428 of 1882 relevant lines covered (75.88%)

8.97 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

20.0
/src/types/utils/RedisFIFOQueue.ts
1
import { redis } from '../../service/redisService'
4✔
2
import { AbstractFIFOQueue } from './AbstractFIFOQueue';
3

4
export class RedisFIFOQueue<T> implements AbstractFIFOQueue<T> {
4✔
5
    private key: string;
6
    private maxSize: number;
7

8
    constructor(key: string, maxSize: number) {
9
        this.key = key;
4✔
10
        this.maxSize = maxSize;
4✔
11
    }
12

13
    async enqueue(item: T): Promise<void> {
NEW
14
        const serialized = JSON.stringify(item);
×
NEW
15
        await redis.lpush(this.key, serialized);
×
NEW
16
        await redis.ltrim(this.key, 0, this.maxSize - 1);
×
17
    }
18

19
    async dequeue(): Promise<T | undefined> {
NEW
20
        const item = await redis.rpop(this.key);
×
NEW
21
        return item ? (JSON.parse(item) as T) : undefined;
×
22
    }
23

24
    async peek(): Promise<T | undefined> {
NEW
25
        const item = await redis.lindex(this.key, -1);
×
NEW
26
        return item ? (JSON.parse(item) as T) : undefined;
×
27
    }
28

29
    async size(): Promise<number> {
NEW
30
        return redis.llen(this.key);
×
31
    }
32

33
    async isEmpty(): Promise<boolean> {
NEW
34
        return (await this.size()) === 0;
×
35
    }
36

37
    async getItems(): Promise<T[]> {
NEW
38
        const items = await redis.lrange(this.key, 0, -1);
×
NEW
39
        return items.map((item) => JSON.parse(item) as T);
×
40
    }
41

42
    async clear(): Promise<void> {
NEW
43
        await redis.del(this.key);
×
44
    }
45
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc