freezed_annotation

v3.1.0

Annotations for the freezed code-generator. This package does nothing without freezed too.

Package archive: https://pubdev.letsnova.ru/api/archives/freezed_annotation/3.1.0.tar.gz

Installdart pub add freezed_annotation

Readme

Annotations for freezed.
This package does nothing without freezed.

Changelog

3.1.0 - 2025-07-02

Added when/map back

3.0.0 - 2025-02-25

  • Breaking removed when/map related options

2.4.4 - 2024-07-15

  • Require json_annotation ^4.8.0

2.4.3 - 2024-07-09 (retracted)

  • Stop using JsonKey(ignore: true) in favour of JsonKey(includeFromJson: false, includeToJson: false) (thanks to @lrsvmb)

2.4.2 - 2024-07-02

  • Require Dart >=3.0.0
  • Support latest collection

2.4.1 - 2023-07-12

  • The generic type of @With/@Implements now defaults to Object? instead of dynamic
  • Allow enabling/disabling all when/map variants at once (thanks to @gaetschwartz)

2.2.0

  • Re-introduced @With.fromString and @Implements.fromString to allow unions to implement generic types. (thanks to @rorystephenson)

2.1.0

  • Add support for de/serializing generic Freezed classes (Thanks to @TimWhiting)

2.0.3

– fix: build.yaml decoding crash

2.0.1

  • Fixed a bug where the generated when/map methods were potentially invalid when using default values
  • Fixed a bug where when/map methods were generated even when not necessary

2.0.0

  • Breaking: freezed_annotation no-longer exports the entire package:collection

  • Breaking Removed @Freezed(maybeMap: ) & @Freezed(maybeWhen: ) in favor of a separate:

    @Freezed(map: FreezedMap(...), when: FreezedWhenOptions(...))
                    
  • Feat: Add screaming snake union case type (#617) (thanks to @zbarbuto)

  • Added @unfreezed as a variant to @freezed, for mutable classes

1.1.0

Added support for disabling the generation of maybeMap/maybeWhen (thanks to @Lyokone)

1.0.0

freezed_annotation is now stable

0.15.0

  • Breaking Changed the syntax for @With and @Implements to use a generic annotation. Before:

    @With(MyClass)
                    @With.fromString('Generic<int>')
                    

    After:

    @With<MyClass>()
                    @With<Generic<int>>()
                    

0.14.3

Upgraded to support last json_annotation version

0.14.2

  • Added the ability to specify a fallback constructor when deserializing unions (thanks to @Brazol)

0.14.1

0.14.0

  • Stable null safety release

  • removed @nullable. Instead of:

    factory Example({@nullable int a}) = _Example;
                    

    Do:

    factory Example({int? a}) = _Example;
                    
  • removed @late. Instead of:

    abstract class Person with _$Person {
                      factory Person({
                        required String firstName,
                        required String lastName,
                      }) = _Person;
                    
                      @late
                      String get fullName => '$firstName $lastName';
                    }
                    

    Do:

    abstract class Person with _$Person {
                    Person._();
                    factory Person({
                      required String firstName,
                      required String lastName,
                    }) = _Person;
                    
                    late final fullName = '$firstName $lastName';
                    }
                    

0.13.0-nullsafety.0

  • Migrated to null safety

  • removed @nullable. Instead of:

    factory Example({@nullable int a}) = _Example;
                    

    Do:

    factory Example({int? a}) = _Example;
                    
  • removed @late. Instead of:

    abstract class Person with _$Person {
                      factory Person({
                        required String firstName,
                        required String lastName,
                      }) = _Person;
                    
                      @late
                      String get fullName => '$firstName $lastName';
                    }
                    

    Do:

    abstract class Person with _$Person {
                    Person._();
                    factory Person({
                      required String firstName,
                      required String lastName,
                    }) = _Person;
                    
                    late final fullName = '$firstName $lastName';
                    }
                    

0.12.0

  • Added Assert decorator to generate assert(...) statements on Freezed classes:

    abstract class Person with _$Person {
                      @Assert('name.trim().isNotEmpty', 'name cannot be empty')
                      @Assert('age >= 0')
                      factory Person({
                        String name,
                        int age,
                      }) = _Person;
                    }
                    
  • Added a way to customize the de/serialization of union types using the @Freezed(unionKey: 'my-key') decorator.

    See also https://github.com/rrousselGit/freezed#fromjson---classes-with-multiple-constructors

0.11.0

  • Added @With and @Implements decorators to allow only a specific constructor of a union type to implement an interface:

    @freezed
                    abstract class Example with _$Example {
                      const factory Example.person(String name, int age) = Person;
                    
                      @Implements(GeographicArea)
                      const factory Example.city(String name, int population) = City;
                    }
                    

    Thanks to @long1eu~

0.7.1

Minor change to @Default to fix an issue with complex default values.

0.7.0

Add @Default annotation

0.6.0

Added @late annotation.

0.4.0

Added a @nullable annotation.

0.3.1

Change version of collection to work with flutter_test.

0.3.0

Initial release of the annotation package.