Kevintyj
Kevintyj
Explore posts from servers
BABetter Auth
Created by Kevintyj on 3/27/2025 in #help
Infer additional fields for admin?
Is admin not able to infer types for additional fields like so when the types come from a plugin? I have added the InferTypes on the client plugin.
await admin.createUser({
name,
email,
password,
role: 'admin',
status, // causes type error?
});
await admin.createUser({
name,
email,
password,
role: 'admin',
status, // causes type error?
});
type UserStatusPlugin = typeof userStatusPlugin;

export const userStatusClientPlugin = () => {
return {
id: 'userStatusPlugin',
$InferServerPlugin: {} as ReturnType<UserStatusPlugin>,
} satisfies BetterAuthClientPlugin;
};
type UserStatusPlugin = typeof userStatusPlugin;

export const userStatusClientPlugin = () => {
return {
id: 'userStatusPlugin',
$InferServerPlugin: {} as ReturnType<UserStatusPlugin>,
} satisfies BetterAuthClientPlugin;
};
export const {
signIn,
signUp,
signOut,
useSession,
emailOtp,
admin,
} = createAuthClient({
plugins: [
usernameClient(),
adminClient({
ac,
roles: {
user: userRole,
doctor: doctorRole,
nurse: nurseRole,
admin: adminRole,
},
}),
emailOTPClient(),
userStatusClientPlugin(),
inferAdditionalFields<typeof auth>(),
],
});
export const {
signIn,
signUp,
signOut,
useSession,
emailOtp,
admin,
} = createAuthClient({
plugins: [
usernameClient(),
adminClient({
ac,
roles: {
user: userRole,
doctor: doctorRole,
nurse: nurseRole,
admin: adminRole,
},
}),
emailOTPClient(),
userStatusClientPlugin(),
inferAdditionalFields<typeof auth>(),
],
});
5 replies
DTDrizzle Team
Created by Kevintyj on 3/25/2025 in #help
Relationships not working? (Simplest one-one relationship)
I can't seem to have Drizzle return the correct query when using the relationship syntax. I have the following relationship defined: user-schema.ts
export const manager = mysqlTable('manager', {
userId: varchar('user_id', { length: 36 }).notNull().references(() => user.id, { onDelete: 'cascade' }),
});
export const manager = mysqlTable('manager', {
userId: varchar('user_id', { length: 36 }).notNull().references(() => user.id, { onDelete: 'cascade' }),
});
auth-schema.ts
export const user = mysqlTable('user', {
id: varchar('id', { length: 36 }).primaryKey(),
export const user = mysqlTable('user', {
id: varchar('id', { length: 36 }).primaryKey(),
relationship-schema.ts
export const userRelations = relations(user, ({ one }) => ({
manager: one(manager, {
fields: [user.id],
references: [manager.userId],
}),
}));
export const userRelations = relations(user, ({ one }) => ({
manager: one(manager, {
fields: [user.id],
references: [manager.userId],
}),
}));
but however when I query:
await db.query.user.findMany({
with: {
manager: true,
},
});
await db.query.user.findMany({
with: {
manager: true,
},
});
It returns users with no managers associated. Am I doing something wrong here? First time using drizzle! Tysm ❤️
1 replies