smart_domain_generator
Generates UseCase classes from repository interfaces annotated with
@GenerateUseCases().
Setup
dependencies:
smart_domain: ^0.3.0
dev_dependencies:
build_runner: ^2.16.0
smart_domain_generator: ^0.1.0
Add a part directive and annotate the repository:
import 'package:smart_domain/smart_domain.dart';
part 'orders_repository.g.dart';
@GenerateUseCases()
abstract interface class OrdersRepository {
Future<Result<Order, Failure>> getOrder(int id);
Future<Result<List<Order>, Failure>> getOrders();
Future<Result<Order, Failure>> createOrder(CreateOrderParams params);
}
Generate the code:
dart run build_runner build
The generator creates GetOrderUseCase, GetOrderParams,
GetOrdersUseCase, and CreateOrderUseCase. A parameter type ending in
Params is reused. Other method parameters are wrapped in a generated params
class.
Libraries
- builder
- smart_domain_generator
- Build runner support for
package:smart_domain.