Pine Model
A brick to create your network response class including fixtures.
This brick makes use of the internal lib pine_bricks_helper to get access to the package name, so please run this brick in the root of your project where a valid pubspec.yaml file exists. Also, make sure you have previously set up your project to work with the data_fixture_dart and freezed library.
How to use š
mason make pine_model --name "User"
Variables āØ
Variable | Description | Default | Type |
---|---|---|---|
name | The name of the model | Dash | string |
Outputs š¦
--name "User"
āāā lib
ā āāā models
ā āāā user
ā āāā user.dart
āāā test
ā āāā fixtures
ā āāā models
ā āāā user_fixture_factory.dart
āāā ...
Model File
import 'package:freezed_annotation/freezed_annotation.dart';
part 'user.freezed.dart';
@freezed
class User with _$User {
const User._();
const factory User() = _User;
}
Factory File
import 'package:data_fixture_dart/data_fixture_dart.dart';
import 'package:{{package_name}}/models/user/user.dart';
extension UserFixture on User {
static UserFixtureFactory factory() => UserFixtureFactory();
}
class UserFixtureFactory extends FixtureFactory<User> {
@override
FixtureDefinition<User> definition() =>
define(
(faker) => const User(),
);
}