convertChangeData function
Takes an array of columns and an object of string values then converts each string value to its mapped type.
columns
All of the columns
record
The map of string values
skipTypes
The array of types that should not be converted
convertChangeData([{name: 'first_name', type: 'text'}, {name: 'age', type: 'int4'}], {'first_name': 'Paul', 'age':'33'}, {})
=> { 'first_name': 'Paul', 'age': 33 }
Implementation
Map<String, dynamic> convertChangeData(
List<Map<String, dynamic>> columns,
Map<String, dynamic> record, {
List<String>? skipTypes,
}) {
final result = <String, dynamic>{};
final parsedColumns = <PostgresColumn>[];
for (final element in columns) {
final name = element['name'] as String?;
final type = element['type'] as String?;
if (name != null && type != null) {
parsedColumns.add(PostgresColumn(name, type));
}
}
record.forEach((key, value) {
result[key] = convertColumn(key, parsedColumns, record, skipTypes ?? []);
});
return result;
}