Skip to content

Commit 734be4c

Browse files
committed
Adding and/or
1 parent 47ce04a commit 734be4c

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

src/helper.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,23 @@ import * as merge from "deepmerge";
33
// Helper function to combine multiple resolver definition hashes into a single hash for consumption by Apollostack's graphql-server
44
export const combineResolvers = (resolvers = []) => resolvers
55
.reduce((combined, resolver) => merge(combined, resolver));
6+
7+
export const and = (...conditions) => resolver => {
8+
return conditions.reduceRight((p, c) => {
9+
return c.createResolver(p);
10+
}, resolver)
11+
}
12+
13+
export const or = (...conditions) => resolver => (...query) => {
14+
return new Promise((resolve, reject) => {
15+
let limit = conditions.length - 1;
16+
const attempt = (i) =>
17+
conditions[limit - i].createResolver(resolver)(...query)
18+
.then(res => resolve(res))
19+
.catch(err => {
20+
if(i === limit) reject(err);
21+
else attempt(i + 1);
22+
});
23+
attempt(0);
24+
});
25+
}

0 commit comments

Comments
 (0)