dominion 1.0.0-nullsafety.1 copy "dominion: ^1.0.0-nullsafety.1" to clipboard
dominion: ^1.0.0-nullsafety.1 copied to clipboard

discontinued
outdated

Utilities for domain-driven design

example/dominion_example.dart

import 'package:dartz/dartz.dart';
import 'package:dominion/dominion.dart';

void main() {}

class PasswordFailure {
  final String message;

  const PasswordFailure(this.message);
}

/// An example [ValueObject]
class Password extends ValueObject<PasswordFailure, String> {
  final Either<PasswordFailure, String> value;

  factory Password(String input) {
    if (input.isEmpty) {
      return Password._(left(PasswordFailure('Password is empty.')));
    } else if (input.length < 8) {
      return Password._(
        left(
          PasswordFailure('Password must be at least 8 characters.'),
        ),
      );
    } else {
      return Password._(right(input));
    }
  }

  const Password._(this.value);
}

/// An example [Entity]
class User implements Entity<int> {
  final int id;
  final String email;

  const User(this.id, this.email);
}
3
likes
0
pub points
0%
popularity

Publisher

unverified uploader

Utilities for domain-driven design

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

dartz, meta

More

Packages that depend on dominion