mapper_box 1.0.1 copy "mapper_box: ^1.0.1" to clipboard
mapper_box: ^1.0.1 copied to clipboard

This package is simple wrapper for collecting object mapping rules.

example/README.md

Languages:

English Russian

Mapping #

class DatabaseUser {
  final int id;

  final String name;

  final int age;

  DatabaseUser(this.id, this.name, this.age);
}

class User {
  final String name;

  final String age;

  User(this.name, this.age);

  @override
  String toString() {
    return 'User with name: $name, age: $age.';
  }
}

void main() {
  MapperBox.instanse.register<DatabaseUser, User>(
      (object) => User(object.name, object.age.toString()));

  var databaseUser = DatabaseUser(0, 'Alex', 22);

  var user = MapperBox.instanse.map<DatabaseUser, User>(databaseUser);

  print(user);
}

Asynchronous mapping #

class DatabaseUser {
  final int id;

  final String name;

  DatabaseUser(this.id, this.name);
}

class User {
  final String name;

  final int age;

  User(this.name, this.age);

  @override
  String toString() {
    return 'User with name: $name, age: $age.';
  }
}

Future<int> getAgeFromFuture() async {
  return 22;
}

void main() async {
  MapperBox.instanse.register<DatabaseUser, User>((object) async {
    var age = await getAgeFromFuture();

    return User(object.name, age);
  });

  var databaseUser = DatabaseUser(0, 'Alex');

  var user =
      await MapperBox.instanse.mapAsync<DatabaseUser, User>(databaseUser);

  print(user);
}

Check is exist mapper factory #

void main() {
  MapperBox.instanse.register<int, String>((object) => object.toString());

  var isExist = MapperBox.instanse.isExistMapper<int, String>();

  print(isExist);
}

Use named register #

class Animal {
  final String name;

  Animal(this.name);
}

class Cat {
  final String name;

  Cat(this.name);

  @override
  String toString() {
    return name;
  }
}

void main() {
  MapperBox.instanse.register<Animal, Cat>(
      (object) => Cat(object.name + ' first!'),
      name: 'first');

  MapperBox.instanse.register<Animal, Cat>(
      (object) => Cat(object.name + ' second!'),
      name: 'second');

  var animal = Animal('Alex');

  print(MapperBox.instanse.map<Animal, Cat>(animal, name: 'first'));

  print(MapperBox.instanse.map<Animal, Cat>(animal, name: 'second'));
}
0
likes
150
pub points
0%
popularity

Publisher

verified publisherbatykov-gleb.ru

This package is simple wrapper for collecting object mapping rules.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

More

Packages that depend on mapper_box