Openstatus www.openstatus.dev
at 552ff64ccfdc1d64cbb4ed6bec9b157e937e2ed3 18 lines 507 B view raw
1import type { Column } from "drizzle-orm"; 2import { sql } from "drizzle-orm"; 3import type { 4 SQLiteTable, 5 SQLiteUpdateSetSource, 6} from "drizzle-orm/sqlite-core"; 7 8export function conflictUpdateSet<TTable extends SQLiteTable>( 9 table: TTable, 10 columns: (keyof TTable["_"]["columns"] & keyof TTable)[], 11): SQLiteUpdateSetSource<TTable> { 12 return Object.assign( 13 {}, 14 ...columns.map((k) => ({ 15 [k]: sql`excluded.${(table[k] as Column).name}`, 16 })), 17 ) as SQLiteUpdateSetSource<TTable>; 18}