From a8bfe2b2e51855b1bd5ad2158ff2c18ecd23633c Mon Sep 17 00:00:00 2001 From: Bereket Engida Date: Fri, 24 Jan 2025 14:46:15 +0300 Subject: [PATCH] fix: mssql returning should use outputAll --- .../src/adapters/kysely-adapter/kysely-adapter.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/better-auth/src/adapters/kysely-adapter/kysely-adapter.ts b/packages/better-auth/src/adapters/kysely-adapter/kysely-adapter.ts index 532465e9bf..45afc26a16 100644 --- a/packages/better-auth/src/adapters/kysely-adapter/kysely-adapter.ts +++ b/packages/better-auth/src/adapters/kysely-adapter/kysely-adapter.ts @@ -210,9 +210,7 @@ const createTransform = ( where: Where[], ) { let res: any; - if (config?.type !== "mysql" && config?.type !== "mssql") { - res = await builder.returningAll().executeTakeFirst(); - } else { + if (config?.type === "mysql") { //this isn't good, but kysely doesn't support returning in mysql and it doesn't return the inserted id. Change this if there is a better way. await builder.execute(); const field = values.id ? "id" : where[0].field ? where[0].field : "id"; @@ -222,7 +220,13 @@ const createTransform = ( .selectAll() .where(getField(model, field), "=", value) .executeTakeFirst(); + return res; } + if (config?.type === "mssql") { + res = await builder.outputAll("inserted").executeTakeFirst(); + return res; + } + res = await builder.returningAll().executeTakeFirst(); return res; }, getModelName,