freezed
freezed copied to clipboard
Globally defining generic_argument_factories apparently doesn't work?
In that case it works only if fromJson is an arrow function:
import 'package:freezed_annotation/freezed_annotation.dart';
part 'data.freezed.dart';
part 'data.g.dart';
@Freezed(genericArgumentFactories: true)
class Data<T> with _$Data<T> {
const factory Data({
required T data,
}) = _Data<T>;
factory Data.fromJson(Map<String, dynamic> json, T Function(Object?) fromJsonT) => _$DataFromJson(json, fromJsonT);
}
Also, this code produces build_runner error, though generic_argument_factories: true
defined globally:
import 'package:freezed_annotation/freezed_annotation.dart';
part 'data.freezed.dart';
part 'data.g.dart';
@freezed
class Data<T> with _$Data<T> {
const factory Data({
required T data,
}) = _Data<T>;
factory Data.fromJson(Map<String, dynamic> json, T Function(Object?) fromJsonT) => _$DataFromJson(json, fromJsonT);
}
My build.yaml
:
targets:
$default:
builders:
freezed:
options:
generic_argument_factories: true
to_json: false
Env:
deps:
freezed_annotation: ^2.1.0
json_annotation: ^4.7.0
dev deps:
freezed: ^2.1.1
json_serializable: ^6.4.1
build_runner: ^2.2.1