Files
immich/server/src/sql-tools/transformers/enum.transformer.ts
2025-07-08 08:17:40 -04:00

27 lines
641 B
TypeScript

import { SqlTransformer } from 'src/sql-tools/transformers/types';
import { DatabaseEnum } from 'src/sql-tools/types';
export const transformEnums: SqlTransformer = (ctx, item) => {
switch (item.type) {
case 'EnumCreate': {
return asEnumCreate(item.enum);
}
case 'EnumDrop': {
return asEnumDrop(item.enumName);
}
default: {
return false;
}
}
};
const asEnumCreate = ({ name, values }: DatabaseEnum): string => {
return `CREATE TYPE "${name}" AS ENUM (${values.map((value) => `'${value}'`)});`;
};
const asEnumDrop = (enumName: string): string => {
return `DROP TYPE "${enumName}";`;
};