Fields Generator
This package provides a Dart and Flutter field name code generation for class.
Used for
- Firebase query field name
- Supabase query field name
Usage
import 'package:fields_generator/fields_generator.dart';
import 'package:json_annotation/json_annotation.dart';
part 'main.fields.dart';
@fields()
class User {
User({
required this.name,
required this.age,
});
final String name;
final int age;
}
void main(List<String> args) {
print(UserFields.nameFieldName); // output: name
print(UserFields.ageFieldName); // output: age
}
Generated code
// GENERATED CODE - DO NOT MODIFY BY HAND
// **************************************************************************
// FieldsLibraryGenerator
// **************************************************************************
part of 'main.dart';
/// [User] fields
abstract final class UserFields {
const UserFields._();
/// [User.name]
static const String nameFieldName = 'name';
/// [User.age]
static const String ageFieldName = 'age';
static const List<String> fieldsNames = [nameFieldName, ageFieldName];
}
/// [User] fields
@JsonEnum(
fieldRename: FieldRename.none,
)
enum UserFieldsEnum {
name,
age,
}
Working with freezed
import 'package:fields_generator/fields_generator.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
part 'main.fields.dart';
part 'main.freezed.dart';
part 'main.g.dart';
@freezed
class User with _$User {
@fields
@JsonSerializable()
factory User({
required String name,
required int age,
}) = _User;
factory User.fromJson(Map<String, dynamic> json) => _$UserFromJson(json);
}
Features
x
Generate fields name for class
Getting started
In your pubspec.yaml
file, add the following dependency:
dependencies:
fields_generator:
Then, run flutter pub get
in your terminal.
or run this command:
flutter pub add fields_generator
Additional information
This package is still in development, and the API is subject to change. feel free to contribute to this package.
License
Read more about the license here
Libraries
- builder
- build
- fields_generator