Files
klz-cables.com/.pnpm-store/v10/files/cc/a69084f83c500f766850bf9e187f6a7ab42acc6acf41e98872f3681eabce72192c958916dbf0a324863de5304bbda62fc3c88c55c8a93ee74fb984ed424145
Marc Mintel 5397309103
Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
fix(products): fix breadcrumbs and product filtering (backport from main)
2026-02-24 16:04:21 +01:00

89 lines
3.2 KiB
Plaintext

export const columnToCodeConverter = ({ adapter, addEnum, addImport, column, tableKey })=>{
let columnBuilderFn = column.type;
if (column.type === 'geometry') {
columnBuilderFn = 'geometryColumn';
addImport(adapter.packageName, columnBuilderFn);
} else if (column.type === 'enum') {
if ('locale' in column) {
columnBuilderFn = `enum__locales`;
} else {
addEnum(column.enumName, column.options);
columnBuilderFn = column.enumName;
}
} else {
addImport(`${adapter.packageName}/drizzle/pg-core`, columnBuilderFn);
}
const columnBuilderArgsArray = [];
switch(column.type){
case 'bit':
case 'halfvec':
case 'sparsevec':
case 'vector':
{
if (column.dimensions) {
columnBuilderArgsArray.push(`dimensions: ${column.dimensions}`);
}
break;
}
case 'numeric':
{
columnBuilderArgsArray.push("mode: 'number'");
break;
}
case 'timestamp':
{
columnBuilderArgsArray.push(`mode: '${column.mode}'`);
if (column.withTimezone) {
columnBuilderArgsArray.push('withTimezone: true');
}
if (typeof column.precision === 'number') {
columnBuilderArgsArray.push(`precision: ${column.precision}`);
}
break;
}
}
let columnBuilderArgs = '';
if (columnBuilderArgsArray.length) {
columnBuilderArgs = `, {${columnBuilderArgsArray.join(',')}}`;
}
let code = `${columnBuilderFn}('${column.name}'${columnBuilderArgs})`;
if (column.type === 'timestamp' && column.defaultNow) {
code = `${code}.defaultNow()`;
}
if (column.type === 'uuid' && column.defaultRandom) {
code = `${code}.defaultRandom()`;
}
if (column.notNull) {
code = `${code}.notNull()`;
}
if (column.primaryKey) {
code = `${code}.primaryKey()`;
}
if (typeof column.default !== 'undefined') {
let sanitizedDefault = column.default;
if (column.type === 'geometry') {
sanitizedDefault = `sql\`${column.default}\``;
} else if (column.type === 'jsonb') {
sanitizedDefault = `sql\`'${JSON.stringify(column.default)}'::jsonb\``;
} else if (column.type === 'numeric') {
sanitizedDefault = `${column.default}`;
} else if (typeof column.default === 'string') {
sanitizedDefault = `${JSON.stringify(column.default)}`;
}
code = `${code}.default(${sanitizedDefault})`;
}
if (column.reference) {
let callback = `()`;
if (column.reference.table === tableKey) {
addImport(`${adapter.packageName}/drizzle/pg-core`, 'type AnyPgColumn');
callback = `${callback}: AnyPgColumn`;
}
callback = `${callback} => ${column.reference.table}.${column.reference.name}`;
code = `${code}.references(${callback}, {
${column.reference.onDelete ? `onDelete: '${column.reference.onDelete}'` : ''}
})`;
}
return code;
};
//# sourceMappingURL=columnToCodeConverter.js.map