INNER CODE UNIT · TypeScript

or

thebigredgeek/apollo-resolvers · src/helper.ts:19

export const or = (...conditions) => resolver => (root, args, context, info) => {
  return new Promise((resolve, reject) => {
    let limit = conditions.length - 1;
    const attempt = (i) =>
      createResolver(conditions[i])(root, args, context, info)
        .then(() => {
          createResolver(resolver)(root, args, context, info)
            .then(res => resolve(res))
            .catch(err => reject(err));
        })
        .catch(err => {
          if(i === limit) reject(err);
          else attempt(i + 1);
        });
    attempt(0);
  });
}

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…