46 lines
1.3 KiB
TypeScript
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;
|
|
};
|