Files
drizzle-team--drizzle-orm/drizzle-kit/src/serializer/utils.ts
T
2026-07-13 12:10:05 +08:00

46 lines
1.3 KiB
TypeScript

import { SQL } from 'drizzle-orm';
import { CasingCache, toCamelCase, toSnakeCase } from 'drizzle-orm/casing';
import { CasingType } from '../cli/validations/common';
export function getColumnCasing(
column: { keyAsName: boolean; name: string | undefined },
casing: CasingType | undefined,
) {
if (!column.name) return '';
return !column.keyAsName || casing === undefined
? column.name
: casing === 'camelCase'
? toCamelCase(column.name)
: toSnakeCase(column.name);
}
export const sqlToStr = (sql: SQL, casing: CasingType | undefined) => {
return sql.toQuery({
escapeName: () => {
throw new Error("we don't support params for `sql` default values");
},
escapeParam: () => {
throw new Error("we don't support params for `sql` default values");
},
escapeString: () => {
throw new Error("we don't support params for `sql` default values");
},
casing: new CasingCache(casing),
}).sql;
};
export const sqlToStrGenerated = (sql: SQL, casing: CasingType | undefined) => {
return sql.toQuery({
escapeName: () => {
throw new Error("we don't support params for `sql` default values");
},
escapeParam: () => {
throw new Error("we don't support params for `sql` default values");
},
escapeString: () => {
throw new Error("we don't support params for `sql` default values");
},
casing: new CasingCache(casing),
}).sql;
};