@nivinjoseph/n-domain
Version:
Domain Driven Design and Event Sourcing based framework for business layer implementation
28 lines • 1.37 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 = (() => {
let _classSuper = DomainObject;
let _instanceExtraInitializers = [];
let _get_id_decorators;
return class DomainEntity extends _classSuper {
static {
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
_get_id_decorators = [serialize];
__esDecorate(this, 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(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
}
_id = __runInitializers(this, _instanceExtraInitializers);
get id() { return this._id; }
constructor(data) {
super(data);
const { id } = data;
given(id, "id").ensureHasValue().ensureIsString();
this._id = id;
}
};
})();
export { DomainEntity };
//# sourceMappingURL=domain-entity.js.map