generate method

  1. @override
FutureOr<GenerateComponentResult> generate(
  1. Element2 element,
  2. ConstantReader annotation,
  3. BuildStep buildStep
)
override

Implementation

@override
FutureOr<GenerateComponentResult> generate(
  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 = "Uri(scheme: '${uri.scheme}', path: '${uri.path}')";
  return GenerateComponentResult(content: 'final $varName = $expression;');
}