SupabaseIndexInfo.fromJson constructor
Creates a SupabaseIndexInfo instance from a JSON map.
This is useful for deserialization, for example, when loading schema information from a file. It handles potential missing fields from older versions of serialized data by providing default values.
Implementation
factory SupabaseIndexInfo.fromJson(Map<String, dynamic> json) {
// Handle potential missing original names in older delta files
final cols = List<String>.from(json['columns'] as List? ?? []);
final origCols = List<String>.from(
json['originalColumns'] as List? ?? cols,
);
final name = json['name'] as String? ?? ''; // Provide default if missing
final origName = json['originalName'] as String? ?? name;
return SupabaseIndexInfo(
name: name,
originalName: origName,
localName: json['localName'] as String? ?? _makeSafeDartIdentifier(name),
isUnique: json['isUnique'] as bool? ?? false,
columns: cols,
originalColumns: origCols,
);
}