type Param = { columnData: import("../../types").DSQL_FieldSchemaType; primaryKeySet?: boolean; }; type Return = { fieldEntryText: string; newPrimaryKeySet: boolean; }; /** * # Generate Table Column Description */ export default function generateColumnDescription({ columnData, primaryKeySet, }: Param): Return { /** * Format tableInfoArray * * @description Format tableInfoArray */ const { fieldName, dataType, nullValue, primaryKey, autoIncrement, defaultValue, defaultValueLiteral, onUpdateLiteral, notNullValue, } = columnData; let fieldEntryText = ""; fieldEntryText += `\`${fieldName}\` ${dataType}`; //////////////////////////////////////// if (nullValue) { fieldEntryText += " DEFAULT NULL"; } else if (defaultValueLiteral) { fieldEntryText += ` DEFAULT ${defaultValueLiteral}`; } else if (defaultValue) { if (String(defaultValue).match(/uuid\(\)/i)) { fieldEntryText += ` DEFAULT UUID()`; } else { fieldEntryText += ` DEFAULT '${defaultValue}'`; } } else if (notNullValue) { fieldEntryText += ` NOT NULL`; } //////////////////////////////////////// if (onUpdateLiteral) { fieldEntryText += ` ON UPDATE ${onUpdateLiteral}`; } //////////////////////////////////////// if (primaryKey && !primaryKeySet) { fieldEntryText += " PRIMARY KEY"; primaryKeySet = true; } //////////////////////////////////////// if (autoIncrement) { fieldEntryText += " AUTO_INCREMENT"; primaryKeySet = true; } //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// return { fieldEntryText, newPrimaryKeySet: primaryKeySet || false, }; }