Review a generated order graph

from GraphQL
Node 24 advanced 6 min 4 issues to find

Review this generated resolver map before exposing tenant orders.

Return only the viewer’s bounded order page, resolve customers in request-scoped batches, preserve key ordering, and cancel an authorized order safely.

JavaScript
const customerLoader = new DataLoader(async (ids) => {
  return db.customers.findMany({ ids });
});

const resolvers = {
  Query: {
    orders: async (_root, { userId, first = 10000 }) => {
      const rows = await db.orders.findMany({ ownerId: userId, limit: first });
      return Promise.all(rows.map(async (order) => ({
        ...order,
        customer: await db.customers.findById(order.customerId),
      })));
    },
  },
  Order: {
    customer: (order) => customerLoader.load(order.customerId),
  },
  Mutation: {
    cancelOrder: async (_root, { id }) => {
      await db.orders.update(id, { status: "CANCELLED" });
      return true;
    },
  },
};

generated code is illustrative, not from any one model

Open in playground
Report an error