@pocket-architect/core 0.1.6 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/AggregateRoot.d.ts +2 -1
- package/build/AggregateRoot.js.map +1 -1
- package/build/Entity.d.ts +7 -5
- package/build/Entity.js +8 -2
- package/build/Entity.js.map +1 -1
- package/build/Entity.spec.js.map +1 -1
- package/build/EntityId.spec.d.ts +1 -0
- package/build/EntityId.spec.js +25 -0
- package/build/EntityId.spec.js.map +1 -0
- package/package.json +1 -1
- package/src/AggregateRoot.ts +2 -1
- package/src/Entity.spec.ts +1 -1
- package/src/Entity.ts +17 -9
- package/src/EntityId.spec.ts +14 -0
package/build/AggregateRoot.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AggregateRoot.js","sourceRoot":"","sources":["../src/AggregateRoot.ts"],"names":[],"mappings":";;;;AAAA,mCAAkC;
|
|
1
|
+
{"version":3,"file":"AggregateRoot.js","sourceRoot":"","sources":["../src/AggregateRoot.ts"],"names":[],"mappings":";;;;AAAA,mCAAkC;AAGlC;IAAmE,yCAAY;IAA/E;;IAEA,CAAC;IAAD,oBAAC;AAAD,CAAC,AAFD,CAAmE,eAAM,GAExE;AAFqB,sCAAa"}
|
package/build/Entity.d.ts
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { EntityId } from './EntityId';
|
|
2
|
-
export declare abstract class Entity<T> {
|
|
3
|
-
protected readonly _id:
|
|
2
|
+
export declare abstract class Entity<T, H extends EntityId> {
|
|
3
|
+
protected readonly _id: H;
|
|
4
4
|
protected props: T;
|
|
5
|
-
protected constructor(props: T, id?:
|
|
6
|
-
equals(object?: Entity<T>): boolean;
|
|
7
|
-
get id():
|
|
5
|
+
protected constructor(props: T, id?: H | string | number);
|
|
6
|
+
equals(object?: Entity<T, H>): boolean;
|
|
7
|
+
get id(): H;
|
|
8
|
+
toPrimitive(): T;
|
|
9
|
+
toJSON(): T;
|
|
8
10
|
}
|
package/build/Entity.js
CHANGED
|
@@ -8,10 +8,10 @@ var isEntity = function (v) {
|
|
|
8
8
|
var Entity = /** @class */ (function () {
|
|
9
9
|
function Entity(props, id) {
|
|
10
10
|
if (id) {
|
|
11
|
-
this._id = typeof id === 'object' ? id : new EntityId_1.EntityId(id);
|
|
11
|
+
this._id = (typeof id === 'object' ? id : new EntityId_1.EntityId(id));
|
|
12
12
|
}
|
|
13
13
|
else {
|
|
14
|
-
this._id = new EntityId_1.EntityId();
|
|
14
|
+
this._id = (new EntityId_1.EntityId());
|
|
15
15
|
}
|
|
16
16
|
this.props = props;
|
|
17
17
|
}
|
|
@@ -34,6 +34,12 @@ var Entity = /** @class */ (function () {
|
|
|
34
34
|
enumerable: false,
|
|
35
35
|
configurable: true
|
|
36
36
|
});
|
|
37
|
+
Entity.prototype.toPrimitive = function () {
|
|
38
|
+
return this.props;
|
|
39
|
+
};
|
|
40
|
+
Entity.prototype.toJSON = function () {
|
|
41
|
+
return this.toPrimitive();
|
|
42
|
+
};
|
|
37
43
|
return Entity;
|
|
38
44
|
}());
|
|
39
45
|
exports.Entity = Entity;
|
package/build/Entity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Entity.js","sourceRoot":"","sources":["../src/Entity.ts"],"names":[],"mappings":";;;AAAA,uCAAsC;AAEtC,IAAM,QAAQ,GAAG,
|
|
1
|
+
{"version":3,"file":"Entity.js","sourceRoot":"","sources":["../src/Entity.ts"],"names":[],"mappings":";;;AAAA,uCAAsC;AAEtC,IAAM,QAAQ,GAAG,UAAwB,CAAe;IACtD,OAAO,CAAC,YAAY,MAAM,CAAA;AAC5B,CAAC,CAAA;AAED;IAIE,gBAAsB,KAAQ,EAAE,EAAoB;QAClD,IAAI,EAAE,EAAE,CAAC;YACP,IAAI,CAAC,GAAG,GAAM,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,mBAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,GAAM,CAAC,IAAI,mBAAQ,EAAE,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAEM,uBAAM,GAAb,UAAc,MAAqB;QACjC,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAC5C,OAAO,KAAK,CAAA;QACd,CAAC;QAED,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACtB,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,sBAAI,sBAAE;aAAN;YACE,OAAO,IAAI,CAAC,GAAG,CAAA;QACjB,CAAC;;;OAAA;IAED,4BAAW,GAAX;QACE,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,uBAAM,GAAN;QACE,OAAO,IAAI,CAAC,WAAW,EAAE,CAAA;IAC3B,CAAC;IACH,aAAC;AAAD,CAAC,AAxCD,IAwCC;AAxCqB,wBAAM"}
|
package/build/Entity.spec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Entity.spec.js","sourceRoot":"","sources":["../src/Entity.spec.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAClC,uCAAsC;AAKtC;IAAyB,
|
|
1
|
+
{"version":3,"file":"Entity.spec.js","sourceRoot":"","sources":["../src/Entity.spec.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAClC,uCAAsC;AAKtC;IAAyB,sCAA2B;IAApD;;IAIA,CAAC;IAHQ,iBAAM,GAAb,UAAc,KAAgB,EAAE,EAA0B;QACxD,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnC,CAAC;IACH,iBAAC;AAAD,CAAC,AAJD,CAAyB,eAAM,GAI9B;AAED,QAAQ,CAAC,QAAQ,EAAE;IACjB,IAAI,MAAkB,CAAC;IAEvB,SAAS,CAAC;QACR,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,MAAM,EAAE;;;YACL,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YACvD,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY;YAE1D,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU;YACvD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,gBAAgB;YAC5D,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO;YAChD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAa,EAAE,EAAE,EAAE,IAAI,mBAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,aAAa;YACrF,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;YAEvE,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAChE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU;YACvD,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9C,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;;;SAC/E,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var EntityId_1 = require("./EntityId");
|
|
5
|
+
var TestId = /** @class */ (function (_super) {
|
|
6
|
+
tslib_1.__extends(TestId, _super);
|
|
7
|
+
function TestId() {
|
|
8
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
9
|
+
}
|
|
10
|
+
return TestId;
|
|
11
|
+
}(EntityId_1.EntityId));
|
|
12
|
+
describe('ValueObject', function () {
|
|
13
|
+
test('base', function () { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
14
|
+
var id, id2, id3;
|
|
15
|
+
return tslib_1.__generator(this, function (_a) {
|
|
16
|
+
id = new TestId('1');
|
|
17
|
+
id2 = new EntityId_1.EntityId('1');
|
|
18
|
+
id3 = new TestId('1');
|
|
19
|
+
expect(id).toEqual(id3);
|
|
20
|
+
expect(id).not.toEqual(id2);
|
|
21
|
+
return [2 /*return*/];
|
|
22
|
+
});
|
|
23
|
+
}); });
|
|
24
|
+
});
|
|
25
|
+
//# sourceMappingURL=EntityId.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntityId.spec.js","sourceRoot":"","sources":["../src/EntityId.spec.ts"],"names":[],"mappings":";;;AAAA,uCAAsC;AAEtC;IAAqB,kCAAQ;IAA7B;;IACA,CAAC;IAAD,aAAC;AAAD,CAAC,AADD,CAAqB,mBAAQ,GAC5B;AAED,QAAQ,CAAC,aAAa,EAAE;IACtB,IAAI,CAAC,MAAM,EAAE;;;YACL,EAAE,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;YACrB,GAAG,GAAG,IAAI,mBAAQ,CAAC,GAAG,CAAC,CAAC;YACxB,GAAG,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxB,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;;;SAC7B,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
package/src/AggregateRoot.ts
CHANGED
package/src/Entity.spec.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { EntityId } from './EntityId';
|
|
|
4
4
|
interface TestProps {
|
|
5
5
|
name: string;
|
|
6
6
|
}
|
|
7
|
-
class TestEntity extends Entity<TestProps> {
|
|
7
|
+
class TestEntity extends Entity<TestProps, EntityId> {
|
|
8
8
|
static create(props: TestProps, id?:EntityId|string|number): TestEntity {
|
|
9
9
|
return new TestEntity(props, id);
|
|
10
10
|
}
|
package/src/Entity.ts
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { EntityId } from './EntityId';
|
|
2
2
|
|
|
3
|
-
const isEntity = <T>(v: Entity<T>): v is Entity<T> => {
|
|
3
|
+
const isEntity = <T, H extends EntityId>(v: Entity<T, H>): v is Entity<T, H> => {
|
|
4
4
|
return v instanceof Entity
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
-
export abstract class Entity<T> {
|
|
8
|
-
protected readonly _id:
|
|
9
|
-
protected props: T
|
|
7
|
+
export abstract class Entity<T, H extends EntityId> {
|
|
8
|
+
protected readonly _id: H;
|
|
9
|
+
protected props: T;
|
|
10
10
|
|
|
11
|
-
protected constructor(props: T, id?:
|
|
11
|
+
protected constructor(props: T, id?: H|string|number) {
|
|
12
12
|
if (id) {
|
|
13
|
-
this._id = typeof id === 'object' ? id : new EntityId(id);
|
|
13
|
+
this._id = <H>(typeof id === 'object' ? id : new EntityId(id));
|
|
14
14
|
} else {
|
|
15
|
-
this._id = new EntityId();
|
|
15
|
+
this._id = <H>(new EntityId());
|
|
16
16
|
}
|
|
17
17
|
this.props = props
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
public equals(object?: Entity<T>): boolean {
|
|
20
|
+
public equals(object?: Entity<T, H>): boolean {
|
|
21
21
|
if (object === null || object === undefined) {
|
|
22
22
|
return false
|
|
23
23
|
}
|
|
@@ -33,7 +33,15 @@ export abstract class Entity<T> {
|
|
|
33
33
|
return this._id.equals(object._id);
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
get id():
|
|
36
|
+
get id(): H {
|
|
37
37
|
return this._id
|
|
38
38
|
}
|
|
39
|
+
|
|
40
|
+
toPrimitive(): T {
|
|
41
|
+
return this.props
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
toJSON(): T {
|
|
45
|
+
return this.toPrimitive()
|
|
46
|
+
}
|
|
39
47
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { EntityId } from './EntityId';
|
|
2
|
+
|
|
3
|
+
class TestId extends EntityId {
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
describe('ValueObject', () => {
|
|
7
|
+
test('base', async () => {
|
|
8
|
+
const id = new TestId('1');
|
|
9
|
+
const id2 = new EntityId('1');
|
|
10
|
+
const id3 = new TestId('1');
|
|
11
|
+
expect(id).toEqual(id3);
|
|
12
|
+
expect(id).not.toEqual(id2);
|
|
13
|
+
});
|
|
14
|
+
});
|