Skip to content

Commit 318f464

Browse files
committed
fix(Bug): Fixed crashes when multiple findMany used.
Also added Promise to all overrides
1 parent 8e2856d commit 318f464

File tree

1 file changed

+32
-29
lines changed

1 file changed

+32
-29
lines changed

src/composeWithDataLoader.js

Lines changed: 32 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,11 @@ export function composeWithDataLoader(
3030
* Add DataLoader to FindById
3131
*/
3232
let findByIdResolver = typeComposer.get('$findById')
33-
let findByIdLoader = new DataLoader( (resolveParamsArray) => {
34-
if (options.debug) console.log('New db request (findById)')
35-
//response
36-
return findByIdResolver.resolve(resolveParamsArray[0]).then(res => [res])
37-
},
33+
let findByIdLoader = new DataLoader( (resolveParamsArray) =>
34+
new Promise((resolve, reject) => {
35+
if (options.debug) console.log('New db request (findById)')
36+
resolve(resolveParamsArray.map(rp => findByIdResolver.resolve(rp)))
37+
}),
3838
{ cacheKeyFn: key => {
3939
let newKey = getHashKey(key)
4040
return newKey
@@ -53,10 +53,11 @@ export function composeWithDataLoader(
5353
* Add DataLoader to FindByIds
5454
*/
5555
let findByIdsResolver = typeComposer.get('$findByIds')
56-
let findByIdsLoader = new DataLoader( (resolveParamsArray) => {
57-
if (options.debug) console.log('New db request (findByIds)')
58-
return findByIdsResolver.resolve(resolveParamsArray[0]).then(res => [res])
59-
},
56+
let findByIdsLoader = new DataLoader( (resolveParamsArray) =>
57+
new Promise((resolve, reject) => {
58+
if (options.debug) console.log('New db request (findByIds)')
59+
resolve(resolveParamsArray.map(rp => findByIdResolver.resolve(rp)))
60+
}),
6061
{ cacheKeyFn: key => getHashKey(key) })
6162

6263
typeComposer.setResolver(
@@ -72,10 +73,11 @@ export function composeWithDataLoader(
7273
* Add DataLoader to Count
7374
*/
7475
let countResolver = typeComposer.get('$count')
75-
let countLoader = new DataLoader( (resolveParamsArray) => {
76-
if (options.debug) console.log('New db request (count)')
77-
return countResolver.resolve(resolveParamsArray[0]).then(res => [res])
78-
},
76+
let countLoader = new DataLoader( (resolveParamsArray) =>
77+
new Promise((resolve, reject) => {
78+
if (options.debug) console.log('New db request (count)')
79+
resolve(resolveParamsArray.map(rp => countResolver.resolve(rp)))
80+
}),
7981
{ cacheKeyFn: key => getHashKey(key) })
8082

8183
typeComposer.setResolver(
@@ -91,10 +93,11 @@ export function composeWithDataLoader(
9193
* Add DataLoader to FindOne
9294
*/
9395
let findOneResolver = typeComposer.get('$findOne')
94-
let findOneLoader = new DataLoader( (resolveParamsArray) => {
95-
if (options.debug) console.log('New db request (findOne)')
96-
return findOneResolver.resolve(resolveParamsArray[0]).then(res => [res])
97-
},
96+
let findOneLoader = new DataLoader( (resolveParamsArray) =>
97+
new Promise((resolve, reject) => {
98+
if (options.debug) console.log('New db request (findOne)')
99+
resolve(resolveParamsArray.map(rp => findOneResolver.resolve(rp)))
100+
}),
98101
{ cacheKeyFn: key => getHashKey(key) })
99102

100103
typeComposer.setResolver(
@@ -109,12 +112,12 @@ export function composeWithDataLoader(
109112
* Add DataLoader to FindMany
110113
*/
111114
let findManyResolver = typeComposer.get('$findMany')
112-
let findManyLoader = new DataLoader( (resolveParamsArray) => {
113-
if (options.debug) console.log('New db request (findMany)')
114-
//response
115-
return findManyResolver.resolve(resolveParamsArray[0]).then(res => [res])
116-
},
117-
{ cacheKeyFn: key => getHashKey(key)})
115+
let findManyLoader = new DataLoader( resolveParamsArray =>
116+
new Promise((resolve, reject) => {
117+
if (options.debug) console.log('New db request (findMany)')
118+
resolve(resolveParamsArray.map(rp => findManyResolver.resolve(rp)))
119+
}),
120+
{ cacheKeyFn: key => getHashKey(key)} )
118121

119122
typeComposer.setResolver(
120123
'findMany',
@@ -131,17 +134,17 @@ export function composeWithDataLoader(
131134
*/
132135
let connectionResolver = typeComposer.get('$connection')
133136
let connectionFieldNames = typeComposer.getFieldNames()
134-
let connectionLoader = new DataLoader( (resolveParamsArray) => {
135-
if (options.debug) console.log('New db request (connection)')
136-
//response
137-
return connectionResolver.resolve(resolveParamsArray[0]).then(res => [res])
138-
},
137+
let connectionLoader = new DataLoader( resolveParamsArray =>
138+
new Promise((resolve, reject) => {
139+
if (options.debug) console.log('New db request (connection)')
140+
resolve(resolveParamsArray.map(rp => connectionResolver.resolve(rp)))
141+
}),
139142
{ cacheKeyFn: key => getHashKey(key) })
140143

141144
typeComposer.setResolver( 'connection',
142145
connectionResolver.wrapResolve(next => rp => {
143146
if(options.removeProjection){
144-
let projection ={ edges: { node: {} } }
147+
let projection = { edges: { node: {} } }
145148
connectionFieldNames.map( field => projection.edges.node[field] = true)
146149
rp.projection = projection
147150
}

0 commit comments

Comments
 (0)