@bitloops/bl-boilerplate-core
Version:
TypeScript boilerplate code for Bitloops Language generated projects
43 lines (42 loc) • 1.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Entity = void 0;
/**
* ISC License
* Copyright (c) 2019, [Khalil Stemmler](https://khalilstemmler.com)
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
const UUIDv4_1 = require("./UUIDv4");
const isEntity = (v) => {
return v instanceof Entity;
};
class Entity {
constructor(props, id) {
this._id = id ? id : new UUIDv4_1.UUIDv4();
this.props = props;
}
equals(object) {
if (object == null || object == undefined) {
return false;
}
if (this === object) {
return true;
}
if (!isEntity(object)) {
return false;
}
return this._id.equals(object._id);
}
}
exports.Entity = Entity;