Type safety for nested objects on patch
Is there any way to get type safety on patch operations in convex?
schema:
myfunction
This does not show any type errors
schema:
import { defineSchema, defineTable } from "convex/server";
import { v } from "convex/values";
const reactiveText = v.object({
stateId: v.string(),
text: v.string(),
});
export default defineSchema({
myData: defineTable({
text1: reactiveText,
text2: reactiveText,
}),
});import { defineSchema, defineTable } from "convex/server";
import { v } from "convex/values";
const reactiveText = v.object({
stateId: v.string(),
text: v.string(),
});
export default defineSchema({
myData: defineTable({
text1: reactiveText,
text2: reactiveText,
}),
});myfunction
import { v } from "convex/values";
import { query, mutation, action } from "./_generated/server";
import { api } from "./_generated/api";
export const update = mutation({
args: {
text: v.string(),
id: v.id("myData"),
stateId: v.string(),
field: v.union(v.literal("text1"), v.literal("text2")),
},
handler: async (ctx, args) => {
await ctx.db.patch(args.id, {
[args.field]: { text: args.text },
// should have been
[args.field]: { text: args.text, stateId: args.stateId },
});
},
});import { v } from "convex/values";
import { query, mutation, action } from "./_generated/server";
import { api } from "./_generated/api";
export const update = mutation({
args: {
text: v.string(),
id: v.id("myData"),
stateId: v.string(),
field: v.union(v.literal("text1"), v.literal("text2")),
},
handler: async (ctx, args) => {
await ctx.db.patch(args.id, {
[args.field]: { text: args.text },
// should have been
[args.field]: { text: args.text, stateId: args.stateId },
});
},
});This does not show any type errors
