generateType method
FutureOr<GenerateComponentResult>
generateType(
- Element2 element,
- ConstantReader annotation,
- BuildStep buildStep
Implementation
FutureOr<GenerateComponentResult> generateType(
Element2 element,
ConstantReader annotation,
BuildStep buildStep,
) {
final prefix =
annotation.peek(GenerateNameBase.$prefix)?.stringValue ??
const GenerateLib().prefix;
final varName = '$prefix${element.displayName.camelCase}';
final uri = element.library2?.uri;
if (uri == null) throw Exception('cannot parse uri of $element');
final expression =
'${TypeIdentifier.$type.name}('
" ${TypeIdentifier.$name}: '${element.name3 ?? ''}', "
' ${TypeIdentifier.$lib}: Uri('
" scheme: '${uri.scheme}', "
" path: '${uri.path}', "
' ), '
')';
return GenerateComponentResult(content: 'final $varName = $expression;');
}