cleanUpCustomFields static method
Implementation
static String cleanUpCustomFields(
String queryTemplate, Map<String, List<dynamic>> customFieldsConfig) {
queryTemplate = queryTemplate.replaceAll(
RegExp(r'fragment\s+\w+CustomFields\s+on\s+\w+\s*\{[^}]*\}',
multiLine: true),
'');
queryTemplate = queryTemplate.replaceAll(
RegExp(r'\.\.\.\w+CustomFields\s*', multiLine: true), '');
customFieldsConfig.forEach((typeName, customFields) {
if (customFields.isNotEmpty) {
String generatedFragment =
generateFragmentWithTypename(typeName, customFields);
queryTemplate += '\n\n$generatedFragment';
queryTemplate = queryTemplate.replaceAllMapped(
RegExp(r'(\b' + typeName + r'\b)(\s*\{)', multiLine: true),
(match) =>
'${match.group(1)}${match.group(2)}\n ...${typeName.capitalize()}CustomFields');
}
});
queryTemplate = queryTemplate
.replaceAll(RegExp(r'\n\s*\n', multiLine: true), '\n')
.trim();
return queryTemplate;
}