Line data Source code
1 : import 'package:analyzer/dart/element/element.dart'; 2 : import 'package:enum_assist/src/configs/class_config.dart'; 3 : import 'package:enum_assist/src/generator_helpers/additional_extensions_generator_helper.dart'; 4 : import 'package:enum_assist/src/generator_helpers/extension_generator_helper.dart'; 5 : import 'package:enum_assist/src/generator_helpers/helper_core.dart'; 6 : import 'package:enum_assist/src/generator_helpers/json_converter_generator_helper.dart'; 7 : import 'package:enum_assist/src/settings.dart'; 8 : import 'package:source_gen/source_gen.dart'; 9 : 10 : /// {@template enum_assist.enum_generator} 11 : /// A helper class for generating code for enums. 12 : /// {@endtemplate} 13 : class GeneratorHelper extends HelperCore 14 : with 15 : ExtensionGeneratorHelper, 16 : JsonConverterGeneratorHelper, 17 : AdditionalExtensionsGeneratorHelper { 18 : /// {@macro enum_assist.enum_generator} 19 0 : GeneratorHelper( 20 : Settings generator, 21 : ClassElement element, 22 : ConstantReader annotation, 23 0 : ) : super( 24 : element, 25 0 : ClassConfig.mergeConfigs( 26 0 : generator.config, 27 : annotation, 28 : ), 29 : ); 30 : 31 : @override 32 : Iterable<String> generate() sync* { 33 : yield generateExtensions(generateAdditionalExtensions); 34 : 35 : if (config.createJsonConv) { 36 : yield generateJsonConverter(); 37 : } 38 : } 39 : }