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;
}