beermanB
Convex Community14mo ago
5 replies
beerman

Not getting indexRange callback type

Hey all, I'm having an issue with one of my queries where the type of
q
inside
withIndex
is not being inferred.
Did I miss something?
export const getSpins = query({
  args: {
    limit: v.optional(v.number()),
    before: v.optional(v.number()),
    after: v.optional(v.number()),
  },
  handler: async (ctx, args) => {
    // base query using timestamp index
    const query = await ctx.db
      .query("spins")
      .withIndex("by_timestamp", (q) => {
        // Build query based on provided arguments
        if (args.after && args.before) {
          // Range query
          q = q.gte("timestamp", args.after).lt("timestamp", args.before);
        } else if (args.after) {
          q = q.gte("timestamp", args.after);
        } else if (args.before) {
          q = q.lt("timestamp", args.before);
        }
      })
      .order("desc")
      .take(args.limit || 10000);

    return query;
  },
});
Was this page helpful?