data_annotation 1.1.0 copy "data_annotation: ^1.1.0" to clipboard
data_annotation: ^1.1.0 copied to clipboard

Data annotation is used to transform an abstract class into an immutable data class with data_builder

Data annotation is used to transform an abstract class into an immutable data class with data_builder.

Usage #

A simple usage with nullSafety example:

import 'package:data_annotation/data_annotation.dart';

part 'example.data.dart';

enum ExampleEnum { example }

class Model {
  Model.fromJson(Map<String, dynamic> json);

  Map<String, dynamic> toJson() => {};
}

@data
abstract class ExampleDataClass with _$ExampleDataClass {
  const ExampleDataClass._();

  const factory ExampleDataClass({
    double? field,
    String? field1,
    int? field2,
    bool? field3,
    ExampleEnum? field4,
    @DataKey('model') Model? field5,
    Uri? field6,
    BigInt? field7,
    DateTime? field8,
    Duration? field9,
    @DataKey('models') List<Model>? field10,
    @DataKey('modelByKey') Map<String, Model>? field11,
  }) = _ExampleDataClass;

  factory ExampleDataClass.fromJson(Map<String, dynamic> json) =
  _ExampleDataClass.fromJson;

  Map<String, dynamic> toJson();
}

A simple usage without nullSafety example:

import 'package:data_annotation/data_annotation.dart';

part 'example.data.dart';

enum ExampleEnum { example }

class Model {
  Model.fromJson(Map<String, dynamic> json);

  Map<String, dynamic> toJson() => {};
}

@data
abstract class ExampleDataClass with _$ExampleDataClass {
  const ExampleDataClass._();

  const factory ExampleDataClass({
    double field,
    String field1,
    int field2,
    bool field3,
    ExampleEnum field4,
    @DataKey('model') Model field5,
    Uri field6,
    BigInt field7,
    DateTime field8,
    Duration field9,
    @DataKey('models') List<Model> field10,
    @DataKey('modelByKey') Map<String, Model> field11,
  }) = _ExampleDataClass;

  factory ExampleDataClass.fromJson(Map<String, dynamic> json) =
  _ExampleDataClass.fromJson;

  Map<String, dynamic> toJson();
}

Features and bugs #

Please file feature requests and bugs at the issue tracker.

1
likes
145
pub points
0%
popularity

Publisher

verified publishervegasdevelopments.com

Data annotation is used to transform an abstract class into an immutable data class with data_builder

Homepage

Documentation

API reference

License

MIT (license)

More

Packages that depend on data_annotation