MCPcopy Create free account
hub / github.com/clintonwoo/hackernews-react-graphql / HnCache

Class HnCache

server/database/cache.ts:12–112  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

10// The cache is a singleton
11
12export class HnCache {
13 isReady = false;
14
15 /* Feeds - Arrays of post ids in descending rank order */
16 [FeedType.TOP]: number[] = sampleData.top;
17
18 [FeedType.NEW]: number[] = sampleData.new;
19
20 [FeedType.BEST]: number[] = [];
21
22 [FeedType.SHOW]: number[] = [];
23
24 [FeedType.ASK]: number[] = [];
25
26 [FeedType.JOB]: number[] = [];
27
28 /* Pre constructed cache of news feeds with news item objects */
29 topNewsItems: NewsItemModel[] = sampleData.topStoriesCache;
30
31 newNewsItems: NewsItemModel[] = sampleData.topStoriesCache;
32
33 bestNewsItems: NewsItemModel[] = sampleData.topStoriesCache;
34
35 showNewsItems: NewsItemModel[] = sampleData.topStoriesCache;
36
37 askNewsItems: NewsItemModel[] = sampleData.topStoriesCache;
38
39 jobNewsItems: NewsItemModel[] = sampleData.topStoriesCache;
40
41 /* BEGIN NEWS ITEMS */
42
43 getNewsItem(id: number): NewsItemModel | undefined {
44 return this.newsItemsCache.get(id.toString());
45 }
46
47 setNewsItem(id: number, newsItem: NewsItemModel): boolean {
48 return this.newsItemsCache.set(id.toString(), newsItem);
49 }
50
51 /* END NEWS ITEMS */
52
53 /* BEGIN USERS */
54
55 getUser(id: string): UserModel | undefined {
56 return this.userCache.get(id);
57 }
58
59 getUsers(): Array<LRU.Entry<string, UserModel>> {
60 return this.userCache.dump();
61 }
62
63 setUser(id: string, user: UserModel): UserModel {
64 logger('Cache set user:', user);
65
66 this.userCache.set(id, user);
67
68 return user;
69 }

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected