@nivinjoseph/n-domain
Version:
Domain Driven Design and Event Sourcing based framework for business layer implementation
31 lines • 1.5 kB
JavaScript
import { __esDecorate, __runInitializers } from "tslib";
import { given } from "@nivinjoseph/n-defensive";
import { serialize } from "@nivinjoseph/n-util";
import { DomainObject } from "./domain-object.js";
// public
let DomainEntity = (() => {
var _a;
let _classSuper = DomainObject;
let _instanceExtraInitializers = [];
let _get_id_decorators;
return _a = class DomainEntity extends _classSuper {
get id() { return this._id; }
constructor(data) {
super(data);
this._id = __runInitializers(this, _instanceExtraInitializers);
const { id } = data;
given(id, "id").ensureHasValue().ensureIsString();
this._id = id;
}
},
(() => {
var _b;
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create((_b = _classSuper[Symbol.metadata]) !== null && _b !== void 0 ? _b : null) : void 0;
_get_id_decorators = [serialize];
__esDecorate(_a, null, _get_id_decorators, { kind: "getter", name: "id", static: false, private: false, access: { has: obj => "id" in obj, get: obj => obj.id }, metadata: _metadata }, null, _instanceExtraInitializers);
if (_metadata) Object.defineProperty(_a, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
})(),
_a;
})();
export { DomainEntity };
//# sourceMappingURL=domain-entity.js.map