dart_class_mapper 1.2.1 copy "dart_class_mapper: ^1.2.1" to clipboard
dart_class_mapper: ^1.2.1 copied to clipboard

Lightweight library for mapping classes in Dart. Ideal for converting between entities and DTOs objects with a simple and reusable API.

example/dart_class_mapper_example.dart

import 'package:dart_class_mapper/dart_class_mapper.dart';

class User {
  String name;
  String email;
  String password;

  User({required this.name, required this.email, required this.password});
}

class UserGetDto {
  String name;
  String email;

  UserGetDto({required this.name, required this.email});
}

void main() {
  //* Primeiro, criamos um mapeamento entre User e UserDto.
  CreateMap<UserGetDto, User>(
    (user) => UserGetDto(
      name: user.name,
      email: user.email,
    ),
    reverse: (userGetDto) {
      return User(
        name: userGetDto.name,
        email: userGetDto.email,
        password: '', // Adicione um valor padrão ou trate conforme necessário
      );
    },
  );

  //* Exemplo de uso
  final user = User(
    name: 'John Doe',
    email: 'john.doe@example',
    password: 'teste',
  );

  final userGetDto = GetMapper<UserGetDto, User>().value(user);
  print(userGetDto.name); // John Doe
  print(userGetDto.email); // john.doe@example

  final userReverse = GetMapper<User, UserGetDto>().value(userGetDto);
  print(userReverse.name); // John Doe
  print(userReverse.email); // john.doe@example
  print(userReverse.password); // ''

  //* Exemplo de uso com listas
  final users = [
    User(
      name: 'John Doe',
      email: 'john.doe@example',
      password: 'teste',
    ),
    User(
      name: 'Jane Doe',
      email: 'jane.doe@example',
      password: 'teste',
    ),
  ];
  final usersGetDto = GetMapper<UserGetDto, User>().list(users);
  for (var user in usersGetDto) {
    print(user.name);
    print(user.email);
  }

  //* Exemplo de uso com sets
  final usersSet = {
    User(
      name: 'John Doe',
      email: 'john.doe@example',
      password: 'teste',
    ),
    User(
      name: 'Jane Doe',
      email: 'jane.doe@example',
      password: 'teste',
    ),
  };
  final usersGetDtoSet = GetMapper<UserGetDto, User>().set(usersSet);
  for (var user in usersGetDtoSet) {
    print(user.name);
    print(user.email);
  }

  //* Exemplo de uso com maps
  final usersMap = {
    'john': User(
      name: 'John Doe',
      email: 'john.doe@example',
      password: 'teste',
    ),
    'jane': User(
      name: 'Jane Doe',
      email: 'jane.doe@example',
      password: 'teste',
    ),
  };
  final usersGetDtoMap = GetMapper<UserGetDto, User>().map(usersMap);
  for (var user in usersGetDtoMap.entries) {
    print(user.key);
    print(user.value.name);
    print(user.value.email);
  }
}
1
likes
155
points
47
downloads

Publisher

verified publisherlucasmateusdev.com.br

Weekly Downloads

Lightweight library for mapping classes in Dart. Ideal for converting between entities and DTOs objects with a simple and reusable API.

Repository (GitHub)
View/report issues

Topics

#class-mapper #mappings #automapper #object-transform #mapper

Documentation

API reference

License

MIT (license)

More

Packages that depend on dart_class_mapper