File tree Expand file tree Collapse file tree 1 file changed +20
-0
lines changed Expand file tree Collapse file tree 1 file changed +20
-0
lines changed Original file line number Diff line number Diff 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
44export 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+ }
You can’t perform that action at this time.
0 commit comments