ddd-tool-kit
Version:
A development tool kit for using Domain Driven Design in your Web API Node.js
25 lines (24 loc) • 948 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.EmailValueObject = void 0;
const class_validator_1 = require("class-validator");
const email_errors_1 = require("./email.errors");
const value_object_abstract_1 = require("../../../abstract/value-object/value-object.abstract");
const output_util_1 = require("../../../utils/output/output.util");
class EmailValueObject extends value_object_abstract_1.ValueObject {
sanitizeProps() {
this.props.value.trim();
}
isValidProps() {
return (0, class_validator_1.isEmail)(this.value);
}
static init(props) {
const email = new EmailValueObject(props);
const isInvalidProps = !email.isValidProps();
if (isInvalidProps) {
return output_util_1.Output.fail(email_errors_1.INVALID_EMAIL);
}
return output_util_1.Output.success(email);
}
}
exports.EmailValueObject = EmailValueObject;