import * as schema from "../../models";
import { Users } from "../../models/User";
const getAdditionalFields = (schema: PgTable) => {
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
const fields: Record<string, any> = {};
const defaultFields = [
"id",
"email",
"image",
"emailVerified",
"createdAt",
"updatedAt",
];
for (const [key, value] of Object.entries(schema)) {
if (!defaultFields.includes(key)) {
fields[key] = {
type: value.config?.type === "integer" ? "number" : "string",
required: value.notNull ?? false,
};
}
}
return fields;
};
const additionalField = getAdditionalFields(Users);
export const auth = betterAuth({
user: {
additionalFields: additionalField,
},
secret: BETTER_AUTH_SECRET,
baseURL: BETTER_AUTH_URL,
advanced: {
generateId: false,
},
database: drizzleAdapter(db, {
provider: "pg",
schema: {
...schema,
user: schema.Users,
account: schema.Account,
session: schema.Session,
verification: schema.Verification,
organization: schema.Organization,
},
}),
});
import * as schema from "../../models";
import { Users } from "../../models/User";
const getAdditionalFields = (schema: PgTable) => {
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
const fields: Record<string, any> = {};
const defaultFields = [
"id",
"email",
"image",
"emailVerified",
"createdAt",
"updatedAt",
];
for (const [key, value] of Object.entries(schema)) {
if (!defaultFields.includes(key)) {
fields[key] = {
type: value.config?.type === "integer" ? "number" : "string",
required: value.notNull ?? false,
};
}
}
return fields;
};
const additionalField = getAdditionalFields(Users);
export const auth = betterAuth({
user: {
additionalFields: additionalField,
},
secret: BETTER_AUTH_SECRET,
baseURL: BETTER_AUTH_URL,
advanced: {
generateId: false,
},
database: drizzleAdapter(db, {
provider: "pg",
schema: {
...schema,
user: schema.Users,
account: schema.Account,
session: schema.Session,
verification: schema.Verification,
organization: schema.Organization,
},
}),
});