UNPKG

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
"use strict"; 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;