MethodResolveBuilder function

Method MethodResolveBuilder({
  1. required String resolveToType,
  2. required List<FieldInfo> fields,
})

Implementation

Method MethodResolveBuilder({
  required String resolveToType,
  required List<FieldInfo> fields,
}) {
  return Method((builder) {
    builder
      ..name = 'resolve'
      ..annotations.add(refer('override'))
      ..returns = refer(resolveToType)
      ..requiredParameters.add(Parameter((b) => b
        ..name = 'mix'
        ..type = MixTypes.mixData));
    builder.body = Code('''
      return $resolveToType(
        ${fields.map((field) {
      final fieldName = field.name;
      if (field.hasDto) {
        return '$fieldName: $fieldName?.resolve(mix)';
      }

      return '$fieldName: $fieldName';
    }).join(', ')},
      );
    ''');
  });
}