feat: add additionalFields option in verification table schema (#6747)

This commit is contained in:
noctarius aka Christoph Engelbert
2025-12-15 08:41:10 +01:00
committed by GitHub
parent 78dc6f8a88
commit eab5b4a04f
3 changed files with 31 additions and 1 deletions

View File

@@ -47,7 +47,8 @@ export const getAuthTables = (
},
} satisfies BetterAuthDBSchema;
const { user, session, account, ...pluginTables } = pluginSchema;
const { user, session, account, verification, ...pluginTables } =
pluginSchema;
const sessionTable = {
session: {
@@ -267,6 +268,8 @@ export const getAuthTables = (
onUpdate: () => new Date(),
fieldName: options.verification?.fields?.updatedAt || "updatedAt",
},
...verification?.fields,
...options.verification?.additionalFields,
},
order: 4,
},

View File

@@ -59,4 +59,25 @@ describe("getAuthTables", () => {
expect(refreshTokenExpiresAtField.fieldName).toBe("refreshTokenExpiresAt");
expect(accessTokenExpiresAtField.fieldName).toBe("accessTokenExpiresAt");
});
it("should merge additionalFields into verification table metadata", () => {
const tables = getAuthTables({
verification: {
additionalFields: {
newField: {
fieldName: "new_field",
type: "string",
},
},
},
});
const verificationTable = tables.verification;
const newField = verificationTable!.fields.newField!;
console.log(newField);
expect(newField).not.toBeUndefined();
expect(newField.fieldName).toBe("new_field");
expect(newField.type).toBe("string");
});
});

View File

@@ -954,6 +954,12 @@ export type BetterAuthOptions = {
* Map verification fields
*/
fields?: Partial<Record<keyof OmitId<Verification>, string>>;
/**
* Additional fields for the verification
*/
additionalFields?: {
[key: string]: DBFieldAttribute;
};
/**
* disable cleaning up expired values when a verification value is
* fetched