diff --git a/.changeset/eleven-spiders-wonder.md b/.changeset/eleven-spiders-wonder.md new file mode 100644 index 0000000..49b693d --- /dev/null +++ b/.changeset/eleven-spiders-wonder.md @@ -0,0 +1,5 @@ +--- +"better-auth-convex": patch +--- + +fix: map Convex table names to Better Auth model keys in isUniqueField diff --git a/src/adapterUtils.ts b/src/adapterUtils.ts index 3efc3ea..938749a 100644 --- a/src/adapterUtils.ts +++ b/src/adapterUtils.ts @@ -62,14 +62,20 @@ const isUniqueField = ( model: string, field: string ) => { - const fields = - betterAuthSchema[model as keyof typeof betterAuthSchema].fields; - - if (!fields) { + // Map Convex table name (e.g., "users") to Better Auth model key (e.g., "user") + // by finding the key where betterAuthSchema[key].modelName === model + const betterAuthModel = + Object.keys(betterAuthSchema).find( + (key) => betterAuthSchema[key as keyof typeof betterAuthSchema].modelName === model + ) || model; + const modelSchema = + betterAuthSchema[betterAuthModel as keyof typeof betterAuthSchema]; + + if (!modelSchema?.fields) { return false; } - return Object.entries(fields) + return Object.entries(modelSchema.fields) .filter(([, value]) => value.unique) .map(([key]) => key) .includes(field);