inferColumnType function

ColumnType inferColumnType(
  1. DartType type
)

Detect and return the correct column type

Implementation

ColumnType inferColumnType(DartType type) {
  if (const TypeChecker.fromRuntime(String).isAssignableFromType(type)) {
    return ColumnType.varChar;
  }
  if (const TypeChecker.fromRuntime(int).isAssignableFromType(type)) {
    return ColumnType.int;
  }
  if (const TypeChecker.fromRuntime(double).isAssignableFromType(type)) {
    return ColumnType.double;
  }
  if (const TypeChecker.fromRuntime(num).isAssignableFromType(type)) {
    return ColumnType.float;
  }
  if (const TypeChecker.fromRuntime(bool).isAssignableFromType(type)) {
    return ColumnType.boolean;
  }
  if (const TypeChecker.fromRuntime(DateTime).isAssignableFromType(type)) {
    return ColumnType.timeStamp;
  }
  if (const TypeChecker.fromRuntime(Map).isAssignableFromType(type)) {
    return ColumnType.jsonb;
  }
  if (const TypeChecker.fromRuntime(List).isAssignableFromType(type)) {
    return ColumnType.jsonb;
  }
  if (type is InterfaceType && type.element is EnumElement) {
    return ColumnType.int;
  }

  // Default to varChar
  return ColumnType.varChar;
}