UNPKG

@hexadrop/value-object

Version:

Hexagonal architecture utils library

2 lines 1.04 kB
import s from"@hexadrop/error/invalid-argument";var a=class extends s{constructor(t){super(`${t??"DateValueObject"} can not be null or empty`,"EmptyDateValueError","HEX(400)")}},o=class extends s{constructor(t){super(`${t??"DateValueObject"} must only contains date values`,"InvalidDateValueTypeError","HEX(400)")}};var r=class n{value;constructor(t,e){n.notEmpty(t,e),n.allowedValue(t,e),typeof t=="string"||typeof t=="number"?this.value=new Date(t):t instanceof Date?this.value=t:this.value=new Date(t.toDate())}static allowedValue(t,e){if(!(t instanceof Date)&&typeof t!="string"&&typeof t!="number"&&(t===null||typeof t!="object"||!("toDate"in t)||typeof t.toDate!="function"))throw new o(e)}static notEmpty(t,e){if(t==null)throw new a(e)}isAfterThan(t){return this.value.valueOf()>t.value.valueOf()}isBeforeThan(t){return this.value.valueOf()<t.value.valueOf()}isEqualsTo(t){return this.value.valueOf()===t.value.valueOf()}toString(){return this.value.toISOString()}};export{r as default}; //# sourceMappingURL=date.value-object.js.map