@hg-ts/repository 0.2.14 → 0.2.16
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/dist/exceptions/aggregate-event.already-exists.exception.d.ts +5 -0
- package/dist/exceptions/aggregate-event.already-exists.exception.d.ts.map +1 -0
- package/dist/exceptions/aggregate-event.already-exists.exception.js +11 -0
- package/dist/exceptions/aggregate-event.already-exists.exception.js.map +1 -0
- package/dist/exceptions/aggregate-event.delete-restricted.exception.d.ts +5 -0
- package/dist/exceptions/aggregate-event.delete-restricted.exception.d.ts.map +1 -0
- package/dist/exceptions/aggregate-event.delete-restricted.exception.js +11 -0
- package/dist/exceptions/aggregate-event.delete-restricted.exception.js.map +1 -0
- package/dist/exceptions/aggregate-event.not-found.exception.d.ts +5 -0
- package/dist/exceptions/aggregate-event.not-found.exception.d.ts.map +1 -0
- package/dist/exceptions/aggregate-event.not-found.exception.js +11 -0
- package/dist/exceptions/aggregate-event.not-found.exception.js.map +1 -0
- package/dist/exceptions/aggregate-event.update-restricted.exception.d.ts +5 -0
- package/dist/exceptions/aggregate-event.update-restricted.exception.d.ts.map +1 -0
- package/dist/exceptions/aggregate-event.update-restricted.exception.js +11 -0
- package/dist/exceptions/aggregate-event.update-restricted.exception.js.map +1 -0
- package/dist/exceptions/aggregate.already-exists.exception.d.ts +10 -0
- package/dist/exceptions/aggregate.already-exists.exception.d.ts.map +1 -0
- package/dist/exceptions/aggregate.already-exists.exception.js +22 -0
- package/dist/exceptions/aggregate.already-exists.exception.js.map +1 -0
- package/dist/exceptions/index.d.ts +5 -0
- package/dist/exceptions/index.d.ts.map +1 -1
- package/dist/exceptions/index.js +5 -0
- package/dist/exceptions/index.js.map +1 -1
- package/dist/repositories/base.event.repository.d.ts +17 -0
- package/dist/repositories/base.event.repository.d.ts.map +1 -0
- package/dist/repositories/base.event.repository.js +28 -0
- package/dist/repositories/base.event.repository.js.map +1 -0
- package/dist/repositories/base.memory.repository.d.ts +2 -1
- package/dist/repositories/base.memory.repository.d.ts.map +1 -1
- package/dist/repositories/base.memory.repository.js +17 -3
- package/dist/repositories/base.memory.repository.js.map +1 -1
- package/dist/repositories/base.repository.d.ts +5 -4
- package/dist/repositories/base.repository.d.ts.map +1 -1
- package/dist/repositories/base.repository.js.map +1 -1
- package/dist/repositories/index.d.ts +1 -0
- package/dist/repositories/index.d.ts.map +1 -1
- package/dist/repositories/index.js +1 -0
- package/dist/repositories/index.js.map +1 -1
- package/dist/repositories/repository.d.ts +6 -5
- package/dist/repositories/repository.d.ts.map +1 -1
- package/dist/repositories/repository.js.map +1 -1
- package/dist/tests/base-repository.test.d.ts.map +1 -1
- package/dist/tests/base-repository.test.js +4 -4
- package/dist/tests/base-repository.test.js.map +1 -1
- package/dist/tests/test.already-exists.exception.d.ts +6 -0
- package/dist/tests/test.already-exists.exception.d.ts.map +1 -0
- package/dist/tests/test.already-exists.exception.js +11 -0
- package/dist/tests/test.already-exists.exception.js.map +1 -0
- package/dist/tests/test.memory.repository.d.ts +2 -1
- package/dist/tests/test.memory.repository.d.ts.map +1 -1
- package/dist/tests/test.memory.repository.js +4 -0
- package/dist/tests/test.memory.repository.js.map +1 -1
- package/package.json +11 -13
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { AggregateAlreadyExistsException } from './aggregate.already-exists.exception';
|
|
2
|
+
export declare class AggregateEventAlreadyExistsException extends AggregateAlreadyExistsException {
|
|
3
|
+
constructor(id?: string);
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=aggregate-event.already-exists.exception.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregate-event.already-exists.exception.d.ts","sourceRoot":"","sources":["../../src/exceptions/aggregate-event.already-exists.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AAEvF,qBAAa,oCAAqC,SAAQ,+BAA+B;gBACrE,EAAE,CAAC,EAAE,MAAM;CAG9B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AggregateEventAlreadyExistsException = void 0;
|
|
4
|
+
const aggregate_already_exists_exception_1 = require("./aggregate.already-exists.exception");
|
|
5
|
+
class AggregateEventAlreadyExistsException extends aggregate_already_exists_exception_1.AggregateAlreadyExistsException {
|
|
6
|
+
constructor(id) {
|
|
7
|
+
super('DomainEvent', { id });
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.AggregateEventAlreadyExistsException = AggregateEventAlreadyExistsException;
|
|
11
|
+
//# sourceMappingURL=aggregate-event.already-exists.exception.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregate-event.already-exists.exception.js","sourceRoot":"","sources":["../../src/exceptions/aggregate-event.already-exists.exception.ts"],"names":[],"mappings":";;;AAAA,6FAAuF;AAEvF,MAAa,oCAAqC,SAAQ,oEAA+B;IACxF,YAAmB,EAAW;QAC7B,KAAK,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;CACD;AAJD,oFAIC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregate-event.delete-restricted.exception.d.ts","sourceRoot":"","sources":["../../src/exceptions/aggregate-event.delete-restricted.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,qBAAa,uCAAwC,SAAQ,aAAa;;CAIzE"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AggregateEventDeleteRestrictedException = void 0;
|
|
4
|
+
const exception_1 = require("@hg-ts/exception");
|
|
5
|
+
class AggregateEventDeleteRestrictedException extends exception_1.BaseException {
|
|
6
|
+
constructor() {
|
|
7
|
+
super('Domain event cannot be deleted');
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.AggregateEventDeleteRestrictedException = AggregateEventDeleteRestrictedException;
|
|
11
|
+
//# sourceMappingURL=aggregate-event.delete-restricted.exception.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregate-event.delete-restricted.exception.js","sourceRoot":"","sources":["../../src/exceptions/aggregate-event.delete-restricted.exception.ts"],"names":[],"mappings":";;;AAAA,gDAAiD;AAEjD,MAAa,uCAAwC,SAAQ,yBAAa;IACzE;QACC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACzC,CAAC;CACD;AAJD,0FAIC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregate-event.not-found.exception.d.ts","sourceRoot":"","sources":["../../src/exceptions/aggregate-event.not-found.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAE7E,qBAAa,+BAAgC,SAAQ,0BAA0B;gBAC3D,EAAE,CAAC,EAAE,MAAM;CAG9B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AggregateEventNotFoundException = void 0;
|
|
4
|
+
const aggregate_not_found_exception_1 = require("./aggregate.not-found.exception");
|
|
5
|
+
class AggregateEventNotFoundException extends aggregate_not_found_exception_1.AggregateNotFoundException {
|
|
6
|
+
constructor(id) {
|
|
7
|
+
super('DomainEvent', { id });
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.AggregateEventNotFoundException = AggregateEventNotFoundException;
|
|
11
|
+
//# sourceMappingURL=aggregate-event.not-found.exception.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregate-event.not-found.exception.js","sourceRoot":"","sources":["../../src/exceptions/aggregate-event.not-found.exception.ts"],"names":[],"mappings":";;;AAAA,mFAA6E;AAE7E,MAAa,+BAAgC,SAAQ,0DAA0B;IAC9E,YAAmB,EAAW;QAC7B,KAAK,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9B,CAAC;CACD;AAJD,0EAIC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregate-event.update-restricted.exception.d.ts","sourceRoot":"","sources":["../../src/exceptions/aggregate-event.update-restricted.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,qBAAa,uCAAwC,SAAQ,aAAa;;CAIzE"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AggregateEventUpdateRestrictedException = void 0;
|
|
4
|
+
const exception_1 = require("@hg-ts/exception");
|
|
5
|
+
class AggregateEventUpdateRestrictedException extends exception_1.BaseException {
|
|
6
|
+
constructor() {
|
|
7
|
+
super('Domain event updates restricted');
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.AggregateEventUpdateRestrictedException = AggregateEventUpdateRestrictedException;
|
|
11
|
+
//# sourceMappingURL=aggregate-event.update-restricted.exception.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregate-event.update-restricted.exception.js","sourceRoot":"","sources":["../../src/exceptions/aggregate-event.update-restricted.exception.ts"],"names":[],"mappings":";;;AAAA,gDAAiD;AAEjD,MAAa,uCAAwC,SAAQ,yBAAa;IACzE;QACC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC1C,CAAC;CACD;AAJD,0FAIC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseException } from '@hg-ts/exception';
|
|
2
|
+
export type AggregateAlreadyExistsParams<IdType = unknown> = {
|
|
3
|
+
id?: IdType;
|
|
4
|
+
code?: number;
|
|
5
|
+
};
|
|
6
|
+
export declare abstract class AggregateAlreadyExistsException<IdType = unknown> extends BaseException {
|
|
7
|
+
readonly id?: IdType;
|
|
8
|
+
protected constructor(aggregateName: string, params?: AggregateAlreadyExistsParams<IdType>);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=aggregate.already-exists.exception.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregate.already-exists.exception.d.ts","sourceRoot":"","sources":["../../src/exceptions/aggregate.already-exists.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGjD,MAAM,MAAM,4BAA4B,CAAC,MAAM,GAAG,OAAO,IAAI;IAC5D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAA;AAED,8BAAsB,+BAA+B,CAAC,MAAM,GAAG,OAAO,CAAE,SAAQ,aAAa;IAC5F,SAAgB,EAAE,CAAC,EAAE,MAAM,CAAC;IAE5B,SAAS,aAAa,aAAa,EAAE,MAAM,EAAE,MAAM,GAAE,4BAA4B,CAAC,MAAM,CAAM;CAiB9F"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AggregateAlreadyExistsException = void 0;
|
|
4
|
+
const exception_1 = require("@hg-ts/exception");
|
|
5
|
+
const util_1 = require("util");
|
|
6
|
+
class AggregateAlreadyExistsException extends exception_1.BaseException {
|
|
7
|
+
id;
|
|
8
|
+
constructor(aggregateName, params = {}) {
|
|
9
|
+
const { code, id } = params;
|
|
10
|
+
const messageParts = [aggregateName];
|
|
11
|
+
if (id) {
|
|
12
|
+
messageParts.push(`with id ${(0, util_1.format)(id)}`);
|
|
13
|
+
}
|
|
14
|
+
messageParts.push('already exists');
|
|
15
|
+
super(messageParts.join(' '), { code });
|
|
16
|
+
if (id !== undefined) {
|
|
17
|
+
this.id = id;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.AggregateAlreadyExistsException = AggregateAlreadyExistsException;
|
|
22
|
+
//# sourceMappingURL=aggregate.already-exists.exception.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregate.already-exists.exception.js","sourceRoot":"","sources":["../../src/exceptions/aggregate.already-exists.exception.ts"],"names":[],"mappings":";;;AAAA,gDAAiD;AACjD,+BAA8B;AAO9B,MAAsB,+BAAkD,SAAQ,yBAAa;IAC5E,EAAE,CAAU;IAE5B,YAAsB,aAAqB,EAAE,SAA+C,EAAE;QAC7F,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;QAC5B,MAAM,YAAY,GAAG,CAAC,aAAa,CAAC,CAAC;QAErC,IAAI,EAAE,EAAE,CAAC;YACR,YAAY,CAAC,IAAI,CAAC,WAAW,IAAA,aAAM,EAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAEpC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAGxC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACd,CAAC;IACF,CAAC;CACD;AApBD,0EAoBC"}
|
|
@@ -1,2 +1,7 @@
|
|
|
1
1
|
export * from './aggregate.not-found.exception';
|
|
2
|
+
export * from './aggregate.already-exists.exception';
|
|
3
|
+
export * from './aggregate-event.not-found.exception';
|
|
4
|
+
export * from './aggregate-event.already-exists.exception';
|
|
5
|
+
export * from './aggregate-event.update-restricted.exception';
|
|
6
|
+
export * from './aggregate-event.delete-restricted.exception';
|
|
2
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exceptions/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exceptions/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AAErD,cAAc,uCAAuC,CAAC;AACtD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,+CAA+C,CAAC"}
|
package/dist/exceptions/index.js
CHANGED
|
@@ -2,4 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./aggregate.not-found.exception"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./aggregate.already-exists.exception"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./aggregate-event.not-found.exception"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./aggregate-event.already-exists.exception"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./aggregate-event.update-restricted.exception"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./aggregate-event.delete-restricted.exception"), exports);
|
|
5
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/exceptions/index.ts"],"names":[],"mappings":";;;AAAA,0EAAgD"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/exceptions/index.ts"],"names":[],"mappings":";;;AAAA,0EAAgD;AAChD,+EAAqD;AAErD,gFAAsD;AACtD,qFAA2D;AAC3D,wFAA8D;AAC9D,wFAA8D"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DomainEvent } from '@hg-ts/domain';
|
|
2
|
+
import { AggregateAlreadyExistsException, AggregateNotFoundException } from '../exceptions';
|
|
3
|
+
import { BaseRepository } from './base.repository';
|
|
4
|
+
import { BaseFindOptions } from './repository';
|
|
5
|
+
export type EventFindOptions = BaseFindOptions<DomainEvent> & {
|
|
6
|
+
entityId: string;
|
|
7
|
+
entityName: string;
|
|
8
|
+
};
|
|
9
|
+
export declare abstract class BaseEventRepository extends BaseRepository<DomainEvent, EventFindOptions> {
|
|
10
|
+
getNextId(): Promise<string>;
|
|
11
|
+
update(_entity: DomainEvent | DomainEvent[]): Promise<void>;
|
|
12
|
+
delete(_entity: DomainEvent | DomainEvent[]): Promise<void>;
|
|
13
|
+
clear(): Promise<void>;
|
|
14
|
+
protected getNotFoundException(id: string): AggregateNotFoundException;
|
|
15
|
+
protected getAlreadyExistsException(id: string): AggregateAlreadyExistsException;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=base.event.repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.event.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/base.event.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EACN,+BAA+B,EAK/B,0BAA0B,EAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,MAAM,gBAAgB,GAAG,eAAe,CAAC,WAAW,CAAC,GAAG;IAC7D,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,8BAAsB,mBACrB,SAAQ,cAAc,CAAC,WAAW,EAAE,gBAAgB,CAAC;IAC/B,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5B,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,MAAM,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;cAIzB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,0BAA0B;cAI5D,yBAAyB,CAAC,EAAE,EAAE,MAAM,GAAG,+BAA+B;CAGzF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseEventRepository = void 0;
|
|
4
|
+
const domain_1 = require("@hg-ts/domain");
|
|
5
|
+
const exceptions_1 = require("../exceptions");
|
|
6
|
+
const base_repository_1 = require("./base.repository");
|
|
7
|
+
class BaseEventRepository extends base_repository_1.BaseRepository {
|
|
8
|
+
async getNextId() {
|
|
9
|
+
return domain_1.DomainEvent.generateId();
|
|
10
|
+
}
|
|
11
|
+
async update(_entity) {
|
|
12
|
+
throw new exceptions_1.AggregateEventUpdateRestrictedException();
|
|
13
|
+
}
|
|
14
|
+
async delete(_entity) {
|
|
15
|
+
throw new exceptions_1.AggregateEventDeleteRestrictedException();
|
|
16
|
+
}
|
|
17
|
+
async clear() {
|
|
18
|
+
throw new exceptions_1.AggregateEventDeleteRestrictedException();
|
|
19
|
+
}
|
|
20
|
+
getNotFoundException(id) {
|
|
21
|
+
throw new exceptions_1.AggregateEventNotFoundException(id);
|
|
22
|
+
}
|
|
23
|
+
getAlreadyExistsException(id) {
|
|
24
|
+
throw new exceptions_1.AggregateEventAlreadyExistsException(id);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.BaseEventRepository = BaseEventRepository;
|
|
28
|
+
//# sourceMappingURL=base.event.repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.event.repository.js","sourceRoot":"","sources":["../../src/repositories/base.event.repository.ts"],"names":[],"mappings":";;;AAAA,0CAA4C;AAE5C,8CAOuB;AACvB,uDAAmD;AAQnD,MAAsB,mBACrB,SAAQ,gCAA6C;IACrC,KAAK,CAAC,SAAS;QAC9B,OAAO,oBAAW,CAAC,UAAU,EAAE,CAAC;IACjC,CAAC;IAEe,KAAK,CAAC,MAAM,CAAC,OAAoC;QAChE,MAAM,IAAI,oDAAuC,EAAE,CAAC;IACrD,CAAC;IAEe,KAAK,CAAC,MAAM,CAAC,OAAoC;QAChE,MAAM,IAAI,oDAAuC,EAAE,CAAC;IACrD,CAAC;IAEe,KAAK,CAAC,KAAK;QAC1B,MAAM,IAAI,oDAAuC,EAAE,CAAC;IACrD,CAAC;IAEkB,oBAAoB,CAAC,EAAU;QACjD,MAAM,IAAI,4CAA+B,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;IAEkB,yBAAyB,CAAC,EAAU;QACtD,MAAM,IAAI,iDAAoC,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;CACD;AAzBD,kDAyBC"}
|
|
@@ -4,7 +4,8 @@ import type { AggregateId, BaseFindOptions } from './repository';
|
|
|
4
4
|
export declare abstract class BaseMemoryRepository<Aggregate extends BaseAggregate<any>, FindOptions extends BaseFindOptions<Aggregate> = BaseFindOptions<Aggregate>> extends BaseRepository<Aggregate, FindOptions> {
|
|
5
5
|
protected lastId: Nullable<AggregateId<Aggregate>>;
|
|
6
6
|
protected readonly entitiesMap: Map<AggregateId<Aggregate>, Aggregate>;
|
|
7
|
-
|
|
7
|
+
add(aggregate: Aggregate | Aggregate[]): Promise<void>;
|
|
8
|
+
update(aggregate: Aggregate | Aggregate[]): Promise<void>;
|
|
8
9
|
delete(aggregate: Aggregate | Aggregate[]): Promise<void>;
|
|
9
10
|
clear(): Promise<void>;
|
|
10
11
|
protected findEntities(options: FindOptions): Promise<Aggregate[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.memory.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/base.memory.repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EACX,WAAW,EACX,eAAe,EACf,MAAM,cAAc,CAAC;AAWtB,8BAAsB,oBAAoB,CAAC,SAAS,SAAS,aAAa,CAAC,GAAG,CAAC,EAC3E,WAAW,SAAS,eAAe,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,CAC9E,SAAQ,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC;IAC9C,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAQ;IAC1D,SAAS,CAAC,QAAQ,CAAC,WAAW,yCAAgD;IAEjE,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"base.memory.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/base.memory.repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EACX,WAAW,EACX,eAAe,EACf,MAAM,cAAc,CAAC;AAWtB,8BAAsB,oBAAoB,CAAC,SAAS,SAAS,aAAa,CAAC,GAAG,CAAC,EAC3E,WAAW,SAAS,eAAe,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,CAC9E,SAAQ,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC;IAC9C,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAQ;IAC1D,SAAS,CAAC,QAAQ,CAAC,WAAW,yCAAgD;IAEjE,GAAG,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAWtD,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzD,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;cAInB,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CAgBxE"}
|
|
@@ -11,12 +11,26 @@ function clone(aggregate) {
|
|
|
11
11
|
class BaseMemoryRepository extends base_repository_1.BaseRepository {
|
|
12
12
|
lastId = null;
|
|
13
13
|
entitiesMap = new Map();
|
|
14
|
-
async
|
|
14
|
+
async add(aggregate) {
|
|
15
15
|
if (Array.isArray(aggregate)) {
|
|
16
|
-
await Promise.all(aggregate.map(async (aggregate) => this.
|
|
16
|
+
await Promise.all(aggregate.map(async (aggregate) => this.add(aggregate)));
|
|
17
17
|
}
|
|
18
18
|
else {
|
|
19
|
-
this.entitiesMap.
|
|
19
|
+
if (this.entitiesMap.has(aggregate.id)) {
|
|
20
|
+
throw this.getAlreadyExistsException(aggregate.id);
|
|
21
|
+
}
|
|
22
|
+
this.entitiesMap.set(aggregate.id, clone(aggregate));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
async update(aggregate) {
|
|
26
|
+
if (Array.isArray(aggregate)) {
|
|
27
|
+
await Promise.all(aggregate.map(async (aggregate) => this.update(aggregate)));
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
if (!this.entitiesMap.has(aggregate.id)) {
|
|
31
|
+
throw this.getNotFoundException(aggregate.id);
|
|
32
|
+
}
|
|
33
|
+
this.entitiesMap.set(aggregate.id, clone(aggregate));
|
|
20
34
|
}
|
|
21
35
|
}
|
|
22
36
|
async delete(aggregate) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.memory.repository.js","sourceRoot":"","sources":["../../src/repositories/base.memory.repository.ts"],"names":[],"mappings":";;;AACA,uDAAmD;AAMnD,SAAS,KAAK,CAAuC,SAAoB;IACxE,MAAM,kBAAkB,GAAG,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAEjD,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAEjC,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAsB,oBAErB,SAAQ,gCAAsC;IACpC,MAAM,GAAqC,IAAI,CAAC;IACvC,WAAW,GAAG,IAAI,GAAG,EAAqC,CAAC;IAEvE,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"base.memory.repository.js","sourceRoot":"","sources":["../../src/repositories/base.memory.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
1
|
+
import { BaseAggregate, DomainEvent } from '@hg-ts/domain';
|
|
2
|
+
import { AggregateAlreadyExistsException, AggregateNotFoundException } from '../exceptions';
|
|
3
|
+
import { AggregateId, BaseFindOptions, Repository } from './repository';
|
|
4
4
|
type KeyType = number | string | symbol;
|
|
5
5
|
export type InternalData = {
|
|
6
6
|
updatedKeys: Set<KeyType>;
|
|
7
7
|
};
|
|
8
|
-
export declare abstract class BaseRepository<Aggregate extends BaseAggregate<any
|
|
8
|
+
export declare abstract class BaseRepository<Aggregate extends (BaseAggregate<any> | DomainEvent), FindOptions extends BaseFindOptions<Aggregate> = BaseFindOptions<Aggregate>> extends Repository<Aggregate, FindOptions> {
|
|
9
9
|
get(id: AggregateId<Aggregate>): Promise<Nullable<Aggregate>>;
|
|
10
10
|
getOrFail(id: AggregateId<Aggregate>): Promise<Aggregate>;
|
|
11
11
|
has(id: AggregateId<Aggregate>): Promise<boolean>;
|
|
12
12
|
find(options?: Partial<FindOptions>): Promise<Aggregate[]>;
|
|
13
13
|
protected abstract findEntities(options?: Partial<FindOptions>): Promise<Aggregate[]>;
|
|
14
14
|
protected abstract getNotFoundException(id: AggregateId<Aggregate>): AggregateNotFoundException;
|
|
15
|
+
protected abstract getAlreadyExistsException(id: AggregateId<Aggregate>): AggregateAlreadyExistsException;
|
|
15
16
|
}
|
|
16
17
|
export {};
|
|
17
18
|
//# sourceMappingURL=base.repository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/base.repository.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"base.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/base.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EACb,WAAW,EACX,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,+BAA+B,EAC/B,0BAA0B,EAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,WAAW,EACX,eAAe,EACf,UAAU,EACV,MAAM,cAAc,CAAC;AAEtB,KAAK,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAExC,MAAM,MAAM,YAAY,GAAG;IACvB,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;CAC7B,CAAC;AAEF,8BAAsB,cAAc,CAAC,SAAS,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,EACrF,WAAW,SAAS,eAAe,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC,CAC9E,SAAQ,UAAU,CAAC,SAAS,EAAE,WAAW,CAAC;IAC7B,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAO7D,SAAS,CAAC,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;IAUzD,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAMjD,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAMpE,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAErF,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,0BAA0B;IAE/F,SAAS,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,+BAA+B;CAC5G"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.repository.js","sourceRoot":"","sources":["../../src/repositories/base.repository.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"base.repository.js","sourceRoot":"","sources":["../../src/repositories/base.repository.ts"],"names":[],"mappings":";;;AAQA,6CAIsB;AAQtB,MAAsB,cAErB,SAAQ,uBAAkC;IACnC,KAAK,CAAC,GAAG,CAAC,EAA0B;QAE1C,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAEzC,OAAO,MAAM,IAAI,IAAI,CAAC;IACvB,CAAC;IAEM,KAAK,CAAC,SAAS,CAAC,EAA0B;QAChD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAElC,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,EAA0B;QAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAElC,OAAO,MAAM,KAAK,IAAI,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,OAA8B;QAC/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAElD,OAAO,QAAQ,CAAC;IACjB,CAAC;CAOD;AArCD,wCAqCC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/repositories/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/repositories/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AAEzC,cAAc,yBAAyB,CAAC"}
|
|
@@ -4,4 +4,5 @@ const tslib_1 = require("tslib");
|
|
|
4
4
|
tslib_1.__exportStar(require("./base.repository"), exports);
|
|
5
5
|
tslib_1.__exportStar(require("./repository"), exports);
|
|
6
6
|
tslib_1.__exportStar(require("./base.memory.repository"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./base.event.repository"), exports);
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repositories/index.ts"],"names":[],"mappings":";;;AAAA,4DAAkC;AAClC,uDAA6B;AAC7B,mEAAyC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repositories/index.ts"],"names":[],"mappings":";;;AAAA,4DAAkC;AAClC,uDAA6B;AAC7B,mEAAyC;AAEzC,kEAAwC"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import
|
|
2
|
-
export type AggregateId<Aggregate> = Aggregate extends
|
|
3
|
-
export type BaseFindOptions<Aggregate extends BaseAggregate<any
|
|
1
|
+
import { BaseAggregate, DomainEvent, Identifiable } from '@hg-ts/domain';
|
|
2
|
+
export type AggregateId<Aggregate extends BaseAggregate<any> | DomainEvent> = Aggregate extends Identifiable<infer X> ? X : never;
|
|
3
|
+
export type BaseFindOptions<Aggregate extends BaseAggregate<any> | DomainEvent> = {
|
|
4
4
|
id?: AggregateId<Aggregate> | AggregateId<Aggregate>[];
|
|
5
5
|
};
|
|
6
|
-
export declare abstract class Repository<Aggregate extends BaseAggregate<any
|
|
6
|
+
export declare abstract class Repository<Aggregate extends BaseAggregate<any> | DomainEvent, FindOptions extends BaseFindOptions<Aggregate> = BaseFindOptions<Aggregate>> {
|
|
7
7
|
abstract getNextId(): Promise<AggregateId<Aggregate>>;
|
|
8
8
|
abstract get(id: AggregateId<Aggregate>): Promise<Nullable<Aggregate>>;
|
|
9
9
|
abstract getOrFail(id: AggregateId<Aggregate>): Promise<Aggregate>;
|
|
10
10
|
abstract find(options?: FindOptions): Promise<Aggregate[]>;
|
|
11
|
-
abstract
|
|
11
|
+
abstract add(entity: Aggregate | Aggregate[]): Promise<void>;
|
|
12
|
+
abstract update(entity: Aggregate | Aggregate[]): Promise<void>;
|
|
12
13
|
abstract delete(entity: Aggregate | Aggregate[]): Promise<void>;
|
|
13
14
|
abstract has(id: AggregateId<Aggregate>): Promise<boolean>;
|
|
14
15
|
abstract clear(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/repositories/repository.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/repositories/repository.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EACb,WAAW,EACX,YAAY,EACZ,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,WAAW,CAAC,SAAS,SAAS,aAAa,CAAC,GAAG,CAAC,GAAG,WAAW,IAAI,SAAS,SAAS,YAAY,CAAC,MAAM,CAAC,CAAC,GAClH,CAAC,GACD,KAAK,CAAC;AAET,MAAM,MAAM,eAAe,CAAC,SAAS,SAAS,aAAa,CAAC,GAAG,CAAC,GAAG,WAAW,IAAI;IACjF,EAAE,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;CACvD,CAAC;AAEF,8BAAsB,UAAU,CAAC,SAAS,SAAS,aAAa,CAAC,GAAG,CAAC,GAAG,WAAW,EAClF,WAAW,SAAS,eAAe,CAAC,SAAS,CAAC,GAAG,eAAe,CAAC,SAAS,CAAC;aAC3D,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;aAE5C,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;aAE7D,SAAS,CAAC,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC;aAEzD,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;aAEjD,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;aAEnD,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;aAEtD,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;aAEtD,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;aAEjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CACtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/repositories/repository.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/repositories/repository.ts"],"names":[],"mappings":";;;AAcA,MAAsB,UAAU;CAmB/B;AAnBD,gCAmBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-repository.test.d.ts","sourceRoot":"","sources":["../../src/tests/base-repository.test.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"base-repository.test.d.ts","sourceRoot":"","sources":["../../src/tests/base-repository.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,KAAK,EAEL,MAAM,cAAc,CAAC;AAOtB,qBACa,uBAAwB,SAAQ,KAAK;IACjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IAG5C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAezB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB3B,8BAA8B,IAAI,OAAO,CAAC,IAAI,CAAC;IAO/C,+BAA+B,IAAI,OAAO,CAAC,IAAI,CAAC;IAMvC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAGjD"}
|
|
@@ -12,7 +12,7 @@ let BaseRepositoryTestSuite = class BaseRepositoryTestSuite extends tests_1.Suit
|
|
|
12
12
|
async saveTest() {
|
|
13
13
|
const id = (0, uuid_1.v4)();
|
|
14
14
|
const aggregate = new test_aggregate_1.TestAggregate(id);
|
|
15
|
-
await this.repository.
|
|
15
|
+
await this.repository.add(aggregate);
|
|
16
16
|
const savedAggregate = await this.repository.getOrFail(id);
|
|
17
17
|
(0, tests_1.expect)(savedAggregate).toBeInstanceOf(test_aggregate_1.TestAggregate);
|
|
18
18
|
(0, tests_1.expect)(savedAggregate).not.toBe(aggregate);
|
|
@@ -21,7 +21,7 @@ let BaseRepositoryTestSuite = class BaseRepositoryTestSuite extends tests_1.Suit
|
|
|
21
21
|
async deleteTest() {
|
|
22
22
|
const id = (0, uuid_1.v4)();
|
|
23
23
|
const aggregate = new test_aggregate_1.TestAggregate(id);
|
|
24
|
-
await this.repository.
|
|
24
|
+
await this.repository.add(aggregate);
|
|
25
25
|
const savedAggregate = await this.repository.getOrFail(id);
|
|
26
26
|
(0, tests_1.expect)(savedAggregate).toBeInstanceOf(test_aggregate_1.TestAggregate);
|
|
27
27
|
await this.repository.delete(aggregate);
|
|
@@ -33,12 +33,12 @@ let BaseRepositoryTestSuite = class BaseRepositoryTestSuite extends tests_1.Suit
|
|
|
33
33
|
const expectedValue = (0, uuid_1.v4)();
|
|
34
34
|
const aggregate = new test_aggregate_1.TestAggregate(id);
|
|
35
35
|
aggregate.setSomeField(initialValue);
|
|
36
|
-
await this.repository.
|
|
36
|
+
await this.repository.add(aggregate);
|
|
37
37
|
const savedAggregate = await this.repository.getOrFail(id);
|
|
38
38
|
(0, tests_1.expect)(savedAggregate).toBeInstanceOf(test_aggregate_1.TestAggregate);
|
|
39
39
|
(0, tests_1.expect)(savedAggregate.someField).toBe(initialValue);
|
|
40
40
|
savedAggregate.setSomeField(expectedValue);
|
|
41
|
-
await this.repository.
|
|
41
|
+
await this.repository.update(savedAggregate);
|
|
42
42
|
const updatedAggregate = await this.repository.getOrFail(id);
|
|
43
43
|
(0, tests_1.expect)(updatedAggregate).toBeInstanceOf(test_aggregate_1.TestAggregate);
|
|
44
44
|
(0, tests_1.expect)(updatedAggregate.someField).toBe(expectedValue);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-repository.test.js","sourceRoot":"","sources":["../../src/tests/base-repository.test.ts"],"names":[],"mappings":";;;;AAAA,wCAMsB;AACtB,+BAAkC;AAElC,qDAAiD;AACjD,qEAAgE;AAChE,yEAAmE;AAG5D,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,aAAK;IAChC,UAAU,GAAG,IAAI,6CAAoB,EAAE,CAAC;IAG5C,AAAN,KAAK,CAAC,QAAQ;QACpB,MAAM,EAAE,GAAG,IAAA,SAAI,GAAE,CAAC;QAClB,MAAM,SAAS,GAAG,IAAI,8BAAa,CAAC,EAAE,CAAC,CAAC;QAExC,MAAM,IAAI,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"base-repository.test.js","sourceRoot":"","sources":["../../src/tests/base-repository.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { AggregateAlreadyExistsException } from '../exceptions';
|
|
2
|
+
import type { TestAggregate } from './test.aggregate';
|
|
3
|
+
export declare class TestAlreadyExistsException extends AggregateAlreadyExistsException {
|
|
4
|
+
constructor(id?: Nullable<TestAggregate['id']>);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=test.already-exists.exception.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test.already-exists.exception.d.ts","sourceRoot":"","sources":["../../src/tests/test.already-exists.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,+BAA+B,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,qBAAa,0BAA2B,SAAQ,+BAA+B;gBAC3D,EAAE,GAAE,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAQ;CAG3D"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TestAlreadyExistsException = void 0;
|
|
4
|
+
const exceptions_1 = require("../exceptions");
|
|
5
|
+
class TestAlreadyExistsException extends exceptions_1.AggregateAlreadyExistsException {
|
|
6
|
+
constructor(id = null) {
|
|
7
|
+
super('Test', { id, code: 0 });
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.TestAlreadyExistsException = TestAlreadyExistsException;
|
|
11
|
+
//# sourceMappingURL=test.already-exists.exception.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test.already-exists.exception.js","sourceRoot":"","sources":["../../src/tests/test.already-exists.exception.ts"],"names":[],"mappings":";;;AAAA,8CAAgE;AAGhE,MAAa,0BAA2B,SAAQ,4CAA+B;IAC9E,YAAmB,KAAoC,IAAI;QAC1D,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;CACD;AAJD,gEAIC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { AggregateAlreadyExistsException, AggregateNotFoundException } from '../exceptions';
|
|
2
2
|
import { BaseMemoryRepository } from '../repositories';
|
|
3
3
|
import type { TestAggregate } from './test.aggregate';
|
|
4
4
|
export declare class TestMemoryRepository extends BaseMemoryRepository<TestAggregate> {
|
|
5
5
|
getNextId(): Promise<TestAggregate['id']>;
|
|
6
6
|
protected getNotFoundException(id: TestAggregate['id']): AggregateNotFoundException;
|
|
7
|
+
protected getAlreadyExistsException(id: TestAggregate['id']): AggregateAlreadyExistsException;
|
|
7
8
|
}
|
|
8
9
|
//# sourceMappingURL=test.memory.repository.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.memory.repository.d.ts","sourceRoot":"","sources":["../../src/tests/test.memory.repository.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"test.memory.repository.d.ts","sourceRoot":"","sources":["../../src/tests/test.memory.repository.ts"],"names":[],"mappings":"AACA,OAAO,EACN,+BAA+B,EAC/B,0BAA0B,EAC1B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAItD,qBAAa,oBAAqB,SAAQ,oBAAoB,CAAC,aAAa,CAAC;IAC/D,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAItD,SAAS,CAAC,oBAAoB,CAAC,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,0BAA0B;IAInF,SAAS,CAAC,yBAAyB,CAAC,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,+BAA+B;CAG7F"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.TestMemoryRepository = void 0;
|
|
4
4
|
const uuid_1 = require("uuid");
|
|
5
5
|
const repositories_1 = require("../repositories");
|
|
6
|
+
const test_already_exists_exception_1 = require("./test.already-exists.exception");
|
|
6
7
|
const test_not_found_exception_1 = require("./test.not-found.exception");
|
|
7
8
|
class TestMemoryRepository extends repositories_1.BaseMemoryRepository {
|
|
8
9
|
async getNextId() {
|
|
@@ -11,6 +12,9 @@ class TestMemoryRepository extends repositories_1.BaseMemoryRepository {
|
|
|
11
12
|
getNotFoundException(id) {
|
|
12
13
|
return new test_not_found_exception_1.TestNotFoundException(id);
|
|
13
14
|
}
|
|
15
|
+
getAlreadyExistsException(id) {
|
|
16
|
+
return new test_already_exists_exception_1.TestAlreadyExistsException(id);
|
|
17
|
+
}
|
|
14
18
|
}
|
|
15
19
|
exports.TestMemoryRepository = TestMemoryRepository;
|
|
16
20
|
//# sourceMappingURL=test.memory.repository.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.memory.repository.js","sourceRoot":"","sources":["../../src/tests/test.memory.repository.ts"],"names":[],"mappings":";;;AAAA,+BAAkC;
|
|
1
|
+
{"version":3,"file":"test.memory.repository.js","sourceRoot":"","sources":["../../src/tests/test.memory.repository.ts"],"names":[],"mappings":";;;AAAA,+BAAkC;AAMlC,kDAAuD;AAGvD,mFAA6E;AAC7E,yEAAmE;AAEnE,MAAa,oBAAqB,SAAQ,mCAAmC;IACrE,KAAK,CAAC,SAAS;QACrB,OAAO,IAAA,SAAI,GAAE,CAAC;IACf,CAAC;IAES,oBAAoB,CAAC,EAAuB;QACrD,OAAO,IAAI,gDAAqB,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;IAES,yBAAyB,CAAC,EAAuB;QAC1D,OAAO,IAAI,0DAA0B,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;CACD;AAZD,oDAYC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hg-ts/repository",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.16",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dist/index.js"
|
|
@@ -17,12 +17,12 @@
|
|
|
17
17
|
"test:dev": "yarn build:dev --onSuccess \"yarn test\""
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
|
-
"@hg-ts-config/typescript": "0.2.
|
|
21
|
-
"@hg-ts/domain": "0.2.
|
|
22
|
-
"@hg-ts/exception": "0.2.
|
|
23
|
-
"@hg-ts/linter": "0.2.
|
|
24
|
-
"@hg-ts/tests": "0.2.
|
|
25
|
-
"@hg-ts/types": "0.2.
|
|
20
|
+
"@hg-ts-config/typescript": "0.2.16",
|
|
21
|
+
"@hg-ts/domain": "0.2.16",
|
|
22
|
+
"@hg-ts/exception": "0.2.16",
|
|
23
|
+
"@hg-ts/linter": "0.2.16",
|
|
24
|
+
"@hg-ts/tests": "0.2.16",
|
|
25
|
+
"@hg-ts/types": "0.2.16",
|
|
26
26
|
"@types/node": "22.10.6",
|
|
27
27
|
"@types/uuid": "10.0.0",
|
|
28
28
|
"eslint": "9.18.0",
|
|
@@ -30,15 +30,13 @@
|
|
|
30
30
|
"ts-node": "10.9.2",
|
|
31
31
|
"tsc-watch": "6.3.0",
|
|
32
32
|
"tslib": "2.8.1",
|
|
33
|
-
"typescript": "5.7.3"
|
|
33
|
+
"typescript": "5.7.3",
|
|
34
|
+
"uuid": "11.1.0"
|
|
34
35
|
},
|
|
35
36
|
"peerDependencies": {
|
|
36
|
-
"@hg-ts/domain": "0.2.
|
|
37
|
-
"@hg-ts/exception": "0.2.
|
|
37
|
+
"@hg-ts/domain": "0.2.16",
|
|
38
|
+
"@hg-ts/exception": "0.2.16",
|
|
38
39
|
"reflect-metadata": "*",
|
|
39
40
|
"tslib": "*"
|
|
40
|
-
},
|
|
41
|
-
"dependencies": {
|
|
42
|
-
"uuid": "11.0.5"
|
|
43
41
|
}
|
|
44
42
|
}
|