metaInvocation function
String
metaInvocation(
- DartObject annotation
)
Implementation
String metaInvocation(DartObject annotation) {
final name = annotation.type!.getDisplayString();
final revived = ConstantReader(annotation).revive();
final accessor = revived.accessor.isEmpty ? '' : '.${revived.accessor}';
final posArgs = revived.positionalArguments.map(_dartLiteral).join(', ');
final namedArgs = revived.namedArguments.entries
.map((e) => '${e.key}: ${_dartLiteral(e.value)}')
.join(', ');
final args = [
if (posArgs.isNotEmpty) posArgs,
if (namedArgs.isNotEmpty) namedArgs,
].join(', ');
return 'const $name$accessor($args)';
}