tdd_data_builder 0.0.3 copy "tdd_data_builder: ^0.0.3" to clipboard
tdd_data_builder: ^0.0.3 copied to clipboard

DTO and Service builder for TDD Clean Architecture. This package usually generates dto and service files easily. It accelerates your coding process.

Data Builder for TDD Clean Code Architecture #

We always generate dto and service files while using TDD architecture. This package aids you to generate this files

Usage/Examples #

This package uses retrofit and dio for api usage.

Create DTO file #

dart run tdd_data_builder dto <DTO-NAME>

Replace

You may create entity for your DTO by adding --entity

dart run tdd_data_builder dto <DTO-NAME> --entity

Create Service file #

dart run tdd_data_builder service <SERVICE-NAME>

Replace

Create DataResponse class file #

Many back-end services returns response inside data property of their JSON file as follow:

{
    "data" : {
        ...
    }
}

We created a special DataResponse class to extract the data from the this JSON. It means you don't need to create class which holds data property every time. Run this code:

dart run tdd_data_builder data-response

It generates the file in the following path: lib/data/dto/default/default_response.dart

If there is a need to add a new route from api which contains data, you just register your dto class inside data-response. That's it.

part 'data_response.g.dart';

@JsonSerializable()
class DataResponse<T> {
  @JsonKey(name: "data")
  @_Converter()
  final List<T> data;

  const DataResponse({
    required this.data,
  });

  factory DataResponse.fromJson(Map<String, dynamic> json) =>
      _\$DataResponseFromJson<T>(json);

  Map<String, dynamic> toJson() => _\$DataResponseToJson(this);
}

class _Converter<T> implements JsonConverter<T, Object?> {
  const _Converter();

  @override
  T fromJson(Object? json) {
    if (json is Map<String, dynamic>) {
      switch (T) {
        //case SampleDto:
          //return SampleDto.fromJson(json) as T;
      }
      return DefaultResponse<T>.fromJson(json) as T;
    }
    return json as T;
  }

  @override
  Object? toJson(T object) => object;
}

Here commented SampleDTO is your DTO which comes as a value of data property in JSON.

⚠ MUST do everytime #

When you create a dto or service file, it just generate the template. You fill your class with necessary attributes and methods as your needs. After all, you must run build_runner package to generate the part files.

flutter pub run build_runner build

portfolio linkedin twitter

3
likes
150
pub points
0%
popularity

Publisher

verified publisherplugin.uz

DTO and Service builder for TDD Clean Architecture. This package usually generates dto and service files easily. It accelerates your coding process.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

dio, retrofit

More

Packages that depend on tdd_data_builder