class_generator 1.0.0 copy "class_generator: ^1.0.0" to clipboard
class_generator: ^1.0.0 copied to clipboard

outdated

Builder-based library for dart code generation such as classes, methods, properties and constructors.

example/main.dart

import 'dart:io';

import 'package:class_generator/class_generator.dart';

void main(List<String> args) {

  final firstName = Field('String', 'firstName', prefix: 'final');
  final lastName = Field('String', 'lastName', prefix: 'final');
  final status = Field('bool', 'loading', prefix: 'final');
  final errorMessage = Field('String', 'errorMessage', prefix: 'final', nullable: true);

  final fields = [firstName, lastName, status, errorMessage];
  
  final builder = ClassBuilder('ProfileCreationState');
  builder
    ..buildConstructor()
    ..buildCopyWith()
    ..addConstructor(
      ConstructorBuilder('ProfileCreationState')
        ..withName('pure')
        ..withPrefix('factory')
        ..withBody([
          'return ProfileCreationState(',
          ...fields
            .where((element) => !element.nullable)
            .map((e) => '    ' + e.toEmptyParameter() + ','),
          '  );'
        ]
        .join('\n'))
    )
    ..addFields(fields);

  print(builder.build());
  File(Directory.current.path + '/example/output.dart').writeAsStringSync(builder.build());
}
3
likes
0
points
34
downloads

Publisher

verified publishernathans.dev

Weekly Downloads

Builder-based library for dart code generation such as classes, methods, properties and constructors.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

recase

More

Packages that depend on class_generator