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