1
- import { MemoryCache } from '@/lib/cache/MemoryCache' ;
1
+ import { RedisCache } from './cache/RedisCache' ;
2
+ import { MemoryCache } from './cache/MemoryCache' ;
2
3
import { getResolver as getCommentsResolver } from '@/resolvers/comments' ;
3
4
import { getResolver as getJobsResolver } from '@/resolvers/jobs' ;
4
5
import { getResolver as getStoriesResolver } from '@/resolvers/stories' ;
@@ -7,49 +8,51 @@ import { getResolver as getCommentCountResolver } from '@/resolvers/Story/commen
7
8
import { getResolver as getUserResolver } from '@/resolvers/user' ;
8
9
import { getScalarType as getDateScalar } from '@/scalars/Date' ;
9
10
10
- const storyIds : number [ ] = [ ] ;
11
- const stories : Record < string , any > [ ] = [ ] ;
12
- const jobIds : number [ ] = [ ] ;
13
- const jobs : Record < string , any > [ ] = [ ] ;
14
- const cache = new MemoryCache ( ) ;
11
+ export const getResolvers = ( cacheDriver : string ) => {
12
+ const storyIds : number [ ] = [ ] ;
13
+ const stories : Record < string , any > [ ] = [ ] ;
14
+ const jobIds : number [ ] = [ ] ;
15
+ const jobs : Record < string , any > [ ] = [ ] ;
16
+ const cache = cacheDriver === 'redis' ? new RedisCache ( ) : new MemoryCache ( ) ;
15
17
16
- const dateScalar = getDateScalar ( ) ;
18
+ const dateScalar = getDateScalar ( ) ;
17
19
18
- const resolvers = {
19
- query : {
20
- stories : getStoriesResolver ( storyIds , stories , cache ) ,
21
- jobs : getJobsResolver ( jobIds , jobs , cache ) ,
22
- user : getUserResolver ( cache ) ,
23
- } ,
24
- job : {
25
- author : getStoryAuthorResolver ( cache ) ,
26
- } ,
27
- story : {
28
- author : getStoryAuthorResolver ( cache ) ,
29
- comments : getCommentsResolver ( cache ) ,
30
- commentCount : getCommentCountResolver ( cache ) ,
31
- } ,
32
- comment : {
33
- author : getStoryAuthorResolver ( cache ) ,
34
- } ,
35
- } ;
20
+ const resolvers = {
21
+ query : {
22
+ stories : getStoriesResolver ( storyIds , stories , cache ) ,
23
+ jobs : getJobsResolver ( jobIds , jobs , cache ) ,
24
+ user : getUserResolver ( cache ) ,
25
+ } ,
26
+ job : {
27
+ author : getStoryAuthorResolver ( cache ) ,
28
+ } ,
29
+ story : {
30
+ author : getStoryAuthorResolver ( cache ) ,
31
+ comments : getCommentsResolver ( cache ) ,
32
+ commentCount : getCommentCountResolver ( cache ) ,
33
+ } ,
34
+ comment : {
35
+ author : getStoryAuthorResolver ( cache ) ,
36
+ } ,
37
+ } ;
36
38
37
- export default {
38
- Date : dateScalar ,
39
- Query : {
40
- jobs : resolvers . query . jobs ,
41
- stories : resolvers . query . stories ,
42
- user : resolvers . query . user ,
43
- } ,
44
- Job : {
45
- author : resolvers . job . author ,
46
- } ,
47
- Story : {
48
- author : resolvers . story . author ,
49
- comments : resolvers . story . comments ,
50
- commentCount : resolvers . story . commentCount ,
51
- } ,
52
- Comment : {
53
- author : resolvers . comment . author ,
54
- } ,
39
+ return {
40
+ Date : dateScalar ,
41
+ Query : {
42
+ jobs : resolvers . query . jobs ,
43
+ stories : resolvers . query . stories ,
44
+ user : resolvers . query . user ,
45
+ } ,
46
+ Job : {
47
+ author : resolvers . job . author ,
48
+ } ,
49
+ Story : {
50
+ author : resolvers . story . author ,
51
+ comments : resolvers . story . comments ,
52
+ commentCount : resolvers . story . commentCount ,
53
+ } ,
54
+ Comment : {
55
+ author : resolvers . comment . author ,
56
+ } ,
57
+ } ;
55
58
} ;
0 commit comments