inferColumnType function
ColumnType
inferColumnType(
- 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;
}