mergeCustomSegments method
Extracts the content between beginMarker and endMarker in oldContent
and merges it into newContent between the same markers.
Implementation
String mergeCustomSegments(
String oldContent,
String newContent, {
String beginMarker = '// BEGIN CUSTOM ROUTES',
String endMarker = '// END CUSTOM ROUTES',
}) {
try {
if (!oldContent.contains(beginMarker) || !oldContent.contains(endMarker)) {
return newContent;
}
if (!newContent.contains(beginMarker) || !newContent.contains(endMarker)) {
return newContent;
}
final oldStart = oldContent.indexOf(beginMarker) + beginMarker.length;
final oldEnd = oldContent.indexOf(endMarker);
if (oldEnd <= oldStart) return newContent;
final customSegment = oldContent.substring(oldStart, oldEnd);
final newStart = newContent.indexOf(beginMarker) + beginMarker.length;
final newEnd = newContent.indexOf(endMarker);
if (newEnd <= newStart) return newContent;
return newContent.substring(0, newStart) +
customSegment +
newContent.substring(newEnd);
} catch (e) {
throw TemplateException('Failed to merge custom user segments.', e);
}
}