Skip to content

v1.17.0

Compare
Choose a tag to compare
@4lessandrodev 4lessandrodev released this 21 Jan 08:03
· 315 commits to main since this release

1.17.0 - 2022-01-21

Changed

  • ValueObject, Entity, Aggregate: clone method now returns an instance instead Result
  • ValueObject, Entity, Aggregate: set and change method now returns true if the value has changed and returns false if the value has not changed.

onst date = new Date('2001-09-09T01:46:39.999Z');

const result = Utils.date(date).add(5).days();

result.toISOString()

> "2001-09-14T01:46:39.999Z"

  • Aggregate, Entity, ValueObject: added util method to instance.
  • Util: added class to domain with some utils functions. pull request 31

Example:

// remove spaces from string

const text = " Some Text With Space ";

const result = Utils.string(text).removeSpaces();

> "SomeTextWithSpace"
// remove special chars

const text = "Some #Text @With Special&* Chars";

const result = Utils.string(text).removeSpecialChars();

> "Some Text With Special Chars"
// calculate values as number

const result = Utils.number(100).multiplyBy(3);

> 300
// also works case leak value as string

const result = Utils.number("100").multiplyBy("3");

> 300
// instance available on domain instances

interface Props { value: number };

class Example extends ValueObject<Props>{

  private constructor(props: Props){
    super(props)
  }

  sum(x: number): number {
     const current = this.props.value;
     return this.util.number(current).sum(x);
  }

}

Added

  • Aggregate: added method dispatchEvent to handle domain events from aggregate instance.
  • Validator: added method isSpecialChar and hasSpecialChar to check special character.
// dispatch event from aggregate instance

// dispatch all events for aggregate
product.dispatchEvent();

// OR

// dispatch an specific event name
product.dispatchEvent("ProductCreated");

Utils function available to domain instances, ValueObject, Entity and Aggregate

const result = Utils.date(date).add(5).minutes();

result.toISOString()

> "2001-09-09T01:51:39.999Z"

const result = Utils.number('70' as any).sum('7' as any);

> 77

const result = Utils.number(70).multiplyBy(7);

> 490


const target = "Hi, My Name Is Jane Doe, I am 18 years old";
const char = 'a';
const value = '4';

const result = Utils.string(target).replace(char).to(value);

> "Hi, My N4me Is J4ne Doe, I 4m 18 ye4rs old"

What's Changed

Full Changelog: v1.16.0...v1.17.0