ddd-tool-kit
Version:
A development tool kit for using Domain Driven Design in your Web API Node.js
31 lines (30 loc) • 1.04 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.IdValueObject = void 0;
const uid_1 = require("uid");
const id_errors_1 = require("./id.errors");
const value_object_abstract_1 = require("../../../abstract/value-object/value-object.abstract");
const output_util_1 = require("../../../utils/output/output.util");
class IdValueObject extends value_object_abstract_1.ValueObject {
equals(domainId) {
return this.value === domainId.value;
}
sanitizeProps() { }
isValidProps() {
return this.props.value?.length === 16;
}
static getDefault() {
return this.init({
value: (0, uid_1.uid)(16),
}).result;
}
static init(props) {
const name = new IdValueObject(props);
const isInvalidProps = !name.isValidProps();
if (isInvalidProps) {
return output_util_1.Output.fail(id_errors_1.INVALID_ID);
}
return output_util_1.Output.success(name);
}
}
exports.IdValueObject = IdValueObject;