updateD1Binding function
対象bindingだけを更新し、既存の別bindingを保持する。
Implementation
String updateD1Binding(String source,
{required String binding, required String id, required String name}) {
final pattern = RegExp(r'"d1_databases"\s*:\s*(\[[\s\S]*?\])');
final match = pattern.firstMatch(source);
final entries =
match == null ? <dynamic>[] : jsonDecode(match.group(1)!) as List;
entries.removeWhere((e) => e["binding"] == binding);
entries.add({"binding": binding, "database_id": id, "database_name": name});
final property = '"d1_databases":${jsonEncode(entries)}';
if (match != null) {
return source.replaceRange(match.start, match.end, property);
}
return source.replaceFirst("{", "{$property,");
}