@hg-ts/repository 0.1.49 → 0.1.51
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/.eslintcache +1 -1
- package/.turbo/turbo-build.log +2 -0
- package/.turbo/turbo-lint$colon$ts.log +2 -0
- package/.turbo/turbo-test.log +16 -0
- package/dist/exceptions/aggregate.not-found.exception.d.ts +5 -4
- package/dist/exceptions/aggregate.not-found.exception.d.ts.map +1 -1
- package/dist/exceptions/aggregate.not-found.exception.js +4 -0
- package/dist/exceptions/aggregate.not-found.exception.js.map +1 -1
- package/dist/repositories/base.memory.repository.d.ts +0 -1
- package/dist/repositories/base.memory.repository.d.ts.map +1 -1
- package/dist/repositories/base.memory.repository.js.map +1 -1
- package/dist/repositories/base.repository.d.ts +0 -2
- package/dist/repositories/base.repository.d.ts.map +1 -1
- package/dist/repositories/base.repository.js +1 -2
- package/dist/repositories/base.repository.js.map +1 -1
- package/dist/repositories/repository.d.ts +0 -1
- package/dist/repositories/repository.d.ts.map +1 -1
- package/dist/tests/base-repository.test.d.ts +4 -2
- package/dist/tests/base-repository.test.d.ts.map +1 -1
- package/dist/tests/base-repository.test.js +39 -1
- package/dist/tests/base-repository.test.js.map +1 -1
- package/dist/tests/test.aggregate.d.ts +0 -1
- package/dist/tests/test.aggregate.d.ts.map +1 -1
- package/dist/tests/test.not-found.exception.d.ts +0 -1
- package/dist/tests/test.not-found.exception.d.ts.map +1 -1
- package/eslint.config.mjs +3 -0
- package/package.json +27 -33
- package/src/exceptions/aggregate.not-found.exception.ts +11 -4
- package/src/repositories/base.repository.ts +0 -2
- package/src/tests/base-repository.test.ts +42 -3
- package/tsconfig.json +1 -1
- package/.eslintrc.json +0 -3
- package/.mocharc.cjs +0 -1
- package/.nyc_output/0994dcba-d1a0-492d-8874-d50513742fda.json +0 -1
- package/.nyc_output/7fa066c7-2378-4646-9970-80bef7ba951c.json +0 -1
- package/.nyc_output/ac0e081a-3e6d-4ce0-bf23-7cd02388a247.json +0 -1
- package/.nyc_output/processinfo/0994dcba-d1a0-492d-8874-d50513742fda.json +0 -1
- package/.nyc_output/processinfo/7fa066c7-2378-4646-9970-80bef7ba951c.json +0 -1
- package/.nyc_output/processinfo/ac0e081a-3e6d-4ce0-bf23-7cd02388a247.json +0 -1
- package/.nyc_output/processinfo/index.json +0 -1
- package/.nycrc +0 -3
- package/coverage/cobertura-coverage.xml +0 -239
- package/coverage/coverage-final.json +0 -11
- package/dist-esm/exceptions/aggregate.not-found.exception.d.ts +0 -9
- package/dist-esm/exceptions/aggregate.not-found.exception.d.ts.map +0 -1
- package/dist-esm/exceptions/aggregate.not-found.exception.js +0 -14
- package/dist-esm/exceptions/aggregate.not-found.exception.js.map +0 -1
- package/dist-esm/exceptions/index.d.ts +0 -2
- package/dist-esm/exceptions/index.d.ts.map +0 -1
- package/dist-esm/exceptions/index.js +0 -2
- package/dist-esm/exceptions/index.js.map +0 -1
- package/dist-esm/index.d.ts +0 -4
- package/dist-esm/index.d.ts.map +0 -1
- package/dist-esm/index.js +0 -4
- package/dist-esm/index.js.map +0 -1
- package/dist-esm/repositories/base.memory.repository.d.ts +0 -13
- package/dist-esm/repositories/base.memory.repository.d.ts.map +0 -1
- package/dist-esm/repositories/base.memory.repository.js +0 -42
- package/dist-esm/repositories/base.memory.repository.js.map +0 -1
- package/dist-esm/repositories/base.repository.d.ts +0 -19
- package/dist-esm/repositories/base.repository.d.ts.map +0 -1
- package/dist-esm/repositories/base.repository.js +0 -24
- package/dist-esm/repositories/base.repository.js.map +0 -1
- package/dist-esm/repositories/index.d.ts +0 -4
- package/dist-esm/repositories/index.d.ts.map +0 -1
- package/dist-esm/repositories/index.js +0 -4
- package/dist-esm/repositories/index.js.map +0 -1
- package/dist-esm/repositories/repository.d.ts +0 -17
- package/dist-esm/repositories/repository.d.ts.map +0 -1
- package/dist-esm/repositories/repository.js +0 -3
- package/dist-esm/repositories/repository.js.map +0 -1
- package/dist-esm/tests/base-repository.test.d.ts +0 -9
- package/dist-esm/tests/base-repository.test.d.ts.map +0 -1
- package/dist-esm/tests/base-repository.test.js +0 -53
- package/dist-esm/tests/base-repository.test.js.map +0 -1
- package/dist-esm/tests/test.aggregate.d.ts +0 -8
- package/dist-esm/tests/test.aggregate.d.ts.map +0 -1
- package/dist-esm/tests/test.aggregate.js +0 -11
- package/dist-esm/tests/test.aggregate.js.map +0 -1
- package/dist-esm/tests/test.memory.repository.d.ts +0 -8
- package/dist-esm/tests/test.memory.repository.d.ts.map +0 -1
- package/dist-esm/tests/test.memory.repository.js +0 -12
- package/dist-esm/tests/test.memory.repository.js.map +0 -1
- package/dist-esm/tests/test.not-found.exception.d.ts +0 -7
- package/dist-esm/tests/test.not-found.exception.d.ts.map +0 -1
- package/dist-esm/tests/test.not-found.exception.js +0 -7
- package/dist-esm/tests/test.not-found.exception.js.map +0 -1
- package/mocha.junit.xml +0 -13
- package/tsconfig.esm.json +0 -9
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { BaseException } from '@hg-ts/exception';
|
|
2
|
-
import { format } from 'util';
|
|
3
|
-
export class AggregateNotFoundException extends BaseException {
|
|
4
|
-
constructor(aggregateName, params = {}) {
|
|
5
|
-
const { code, id } = params;
|
|
6
|
-
const messageParts = [aggregateName];
|
|
7
|
-
if (id) {
|
|
8
|
-
messageParts.push(`with id ${format(id)}`);
|
|
9
|
-
}
|
|
10
|
-
messageParts.push('not found');
|
|
11
|
-
super(messageParts.join(' '), { code });
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=aggregate.not-found.exception.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"aggregate.not-found.exception.js","sourceRoot":"","sources":["../../src/exceptions/aggregate.not-found.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAO9B,MAAM,OAAgB,0BAA2B,SAAQ,aAAa;IACrE,YAAsB,aAAqB,EAAE,SAAkC,EAAE;QAChF,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;QAC5B,MAAM,YAAY,GAAG,CAAC,aAAa,CAAC,CAAC;QAErC,IAAI,EAAE,EAAE;YACP,YAAY,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SAC3C;QAED,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE/B,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;CACD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exceptions/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/exceptions/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC"}
|
package/dist-esm/index.d.ts
DELETED
package/dist-esm/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAEtB,cAAc,cAAc,CAAC;AAE7B,cAAc,gBAAgB,CAAC"}
|
package/dist-esm/index.js
DELETED
package/dist-esm/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAEtB,cAAc,cAAc,CAAC;AAE7B,cAAc,gBAAgB,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/// <reference types="@hg-ts/types" />
|
|
2
|
-
import type { BaseAggregate } from '@hg-ts/domain';
|
|
3
|
-
import { BaseRepository } from './base.repository';
|
|
4
|
-
import type { BaseFindOptions, AggregateId } from './repository';
|
|
5
|
-
export declare abstract class BaseMemoryRepository<Aggregate extends BaseAggregate<any>, FindOptions extends BaseFindOptions<Aggregate> = BaseFindOptions<Aggregate>> extends BaseRepository<Aggregate, FindOptions> {
|
|
6
|
-
protected lastId: Nullable<AggregateId<Aggregate>>;
|
|
7
|
-
private readonly entitiesMap;
|
|
8
|
-
save(aggregate: Aggregate | Aggregate[]): Promise<void>;
|
|
9
|
-
delete(aggregate: Aggregate | Aggregate[]): Promise<void>;
|
|
10
|
-
clear(): Promise<void>;
|
|
11
|
-
protected findEntities(options: FindOptions): Promise<Aggregate[]>;
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=base.memory.repository.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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,eAAe,EACf,WAAW,EACX,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,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgD;IAE/D,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAQvD,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;CAcxE"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { BaseRepository } from './base.repository';
|
|
2
|
-
function clone(aggregate) {
|
|
3
|
-
const aggregatePrototype = Object.getPrototypeOf(aggregate);
|
|
4
|
-
const result = Object.create(aggregatePrototype);
|
|
5
|
-
Object.assign(result, aggregate);
|
|
6
|
-
return result;
|
|
7
|
-
}
|
|
8
|
-
export class BaseMemoryRepository extends BaseRepository {
|
|
9
|
-
lastId = null;
|
|
10
|
-
entitiesMap = new Map();
|
|
11
|
-
async save(aggregate) {
|
|
12
|
-
if (Array.isArray(aggregate)) {
|
|
13
|
-
await Promise.all(aggregate.map(async (aggregate) => this.save(aggregate)));
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
16
|
-
this.entitiesMap.set(aggregate['id'], clone(aggregate));
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
async delete(aggregate) {
|
|
20
|
-
if (Array.isArray(aggregate)) {
|
|
21
|
-
await Promise.all(aggregate.map(async (aggregate) => this.delete(aggregate)));
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
this.entitiesMap.delete(aggregate['id']);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
async clear() {
|
|
28
|
-
this.entitiesMap.clear();
|
|
29
|
-
}
|
|
30
|
-
async findEntities(options) {
|
|
31
|
-
const { id } = options;
|
|
32
|
-
if (Array.isArray(id)) {
|
|
33
|
-
return id.filter(id => this.entitiesMap.has(id))
|
|
34
|
-
.map(id => this.entitiesMap.get(id));
|
|
35
|
-
}
|
|
36
|
-
if (typeof id !== 'undefined' && this.entitiesMap.has(id)) {
|
|
37
|
-
return [this.entitiesMap.get(id)];
|
|
38
|
-
}
|
|
39
|
-
return [];
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=base.memory.repository.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base.memory.repository.js","sourceRoot":"","sources":["../../src/repositories/base.memory.repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;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,MAAM,OAAgB,oBAErB,SAAQ,cAAsC;IACpC,MAAM,GAAqC,IAAI,CAAC;IACzC,WAAW,GAAG,IAAI,GAAG,EAAqC,CAAC;IAErE,KAAK,CAAC,IAAI,CAAC,SAAkC;QACnD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC7B,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAC,SAAS,EAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SAC1E;aAAM;YACN,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;SACxD;IACF,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,SAAkC;QACrD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YAC7B,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAC,SAAS,EAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SAC5E;aAAM;YACN,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;SACzC;IACF,CAAC;IAEM,KAAK,CAAC,KAAK;QACjB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,OAAoB;QAChD,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;QAEvB,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;YACtB,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;iBAC9C,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,CAAC;SACvC;QAED,IAAI,OAAO,EAAE,KAAK,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YAC1D,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,CAAC;SACnC;QAED,OAAO,EAAE,CAAC;IACX,CAAC;CACD"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/// <reference types="@hg-ts/types" />
|
|
2
|
-
import type { BaseAggregate } from '@hg-ts/domain';
|
|
3
|
-
import type { AggregateNotFoundException } from '../exceptions';
|
|
4
|
-
import { BaseFindOptions, AggregateId, Repository } from './repository';
|
|
5
|
-
export declare const INTERNAL_SYMBOL: unique symbol;
|
|
6
|
-
type KeyType = number | string | symbol;
|
|
7
|
-
export type InternalData = {
|
|
8
|
-
updatedKeys: Set<KeyType>;
|
|
9
|
-
};
|
|
10
|
-
export declare abstract class BaseRepository<Aggregate extends BaseAggregate<any>, FindOptions extends BaseFindOptions<Aggregate> = BaseFindOptions<Aggregate>> extends Repository<Aggregate, FindOptions> {
|
|
11
|
-
get(id: AggregateId<Aggregate>): Promise<Nullable<Aggregate>>;
|
|
12
|
-
getOrFail(id: AggregateId<Aggregate>): Promise<Aggregate>;
|
|
13
|
-
has(id: AggregateId<Aggregate>): Promise<boolean>;
|
|
14
|
-
find(options?: Partial<FindOptions>): Promise<Aggregate[]>;
|
|
15
|
-
protected abstract findEntities(options?: Partial<FindOptions>): Promise<Aggregate[]>;
|
|
16
|
-
protected abstract getNotFoundException(id: AggregateId<Aggregate>): AggregateNotFoundException;
|
|
17
|
-
}
|
|
18
|
-
export {};
|
|
19
|
-
//# sourceMappingURL=base.repository.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base.repository.d.ts","sourceRoot":"","sources":["../../src/repositories/base.repository.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EACN,eAAe,EACf,WAAW,EACX,UAAU,EACV,MAAM,cAAc,CAAC;AAEtB,eAAO,MAAM,eAAe,eAAgC,CAAC;AAE7D,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,aAAa,CAAC,GAAG,CAAC,EACrE,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;CAClG"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { Repository, } from './repository';
|
|
2
|
-
export const INTERNAL_SYMBOL = Symbol('Repository.Internal');
|
|
3
|
-
export class BaseRepository extends Repository {
|
|
4
|
-
async get(id) {
|
|
5
|
-
const [entity] = await this.find({ id });
|
|
6
|
-
return entity || null;
|
|
7
|
-
}
|
|
8
|
-
async getOrFail(id) {
|
|
9
|
-
const entity = await this.get(id);
|
|
10
|
-
if (entity === null) {
|
|
11
|
-
throw this.getNotFoundException(id);
|
|
12
|
-
}
|
|
13
|
-
return entity;
|
|
14
|
-
}
|
|
15
|
-
async has(id) {
|
|
16
|
-
const entity = await this.get(id);
|
|
17
|
-
return entity !== null;
|
|
18
|
-
}
|
|
19
|
-
async find(options) {
|
|
20
|
-
const entities = await this.findEntities(options);
|
|
21
|
-
return entities;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=base.repository.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base.repository.js","sourceRoot":"","sources":["../../src/repositories/base.repository.ts"],"names":[],"mappings":"AAEA,OAAO,EAGN,UAAU,GACV,MAAM,cAAc,CAAC;AAEtB,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAQ7D,MAAM,OAAgB,cAErB,SAAQ,UAAkC;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;YACpB,MAAM,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;SACpC;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;CAKD"}
|
|
@@ -1 +0,0 @@
|
|
|
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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repositories/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/// <reference types="@hg-ts/types" />
|
|
2
|
-
import type { BaseAggregate } from '@hg-ts/domain';
|
|
3
|
-
export type AggregateId<Aggregate> = Aggregate extends BaseAggregate<infer X> ? X : never;
|
|
4
|
-
export type BaseFindOptions<Aggregate extends BaseAggregate<any>> = {
|
|
5
|
-
id?: AggregateId<Aggregate> | AggregateId<Aggregate>[];
|
|
6
|
-
};
|
|
7
|
-
export declare abstract class Repository<Aggregate extends BaseAggregate<any>, FindOptions extends BaseFindOptions<Aggregate> = BaseFindOptions<Aggregate>> {
|
|
8
|
-
abstract getNextId(): Promise<AggregateId<Aggregate>>;
|
|
9
|
-
abstract get(id: AggregateId<Aggregate>): Promise<Nullable<Aggregate>>;
|
|
10
|
-
abstract getOrFail(id: AggregateId<Aggregate>): Promise<Aggregate>;
|
|
11
|
-
abstract find(options?: FindOptions): Promise<Aggregate[]>;
|
|
12
|
-
abstract save(entity: Aggregate | Aggregate[]): Promise<void>;
|
|
13
|
-
abstract delete(entity: Aggregate | Aggregate[]): Promise<void>;
|
|
14
|
-
abstract has(id: AggregateId<Aggregate>): Promise<boolean>;
|
|
15
|
-
abstract clear(): Promise<void>;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=repository.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/repositories/repository.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,MAAM,WAAW,CAAC,SAAS,IAAI,SAAS,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE1F,MAAM,MAAM,eAAe,CAAC,SAAS,SAAS,aAAa,CAAC,GAAG,CAAC,IAAI;IACnE,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,EACpE,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,IAAI,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;aAEpD,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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../src/repositories/repository.ts"],"names":[],"mappings":"AAQA,MAAM,OAAgB,UAAU;CAiB/B"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { TestSuite } from '@hg-ts/tests';
|
|
2
|
-
export declare class BaseRepositoryTestSuite extends TestSuite {
|
|
3
|
-
private readonly repository;
|
|
4
|
-
saveTest(): Promise<void>;
|
|
5
|
-
getOrFailNotFoundExceptionTest(): Promise<void>;
|
|
6
|
-
getNotFoundWithoutExceptionTest(): Promise<void>;
|
|
7
|
-
beforeEach(): Promise<void>;
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=base-repository.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base-repository.test.d.ts","sourceRoot":"","sources":["../../src/tests/base-repository.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAKN,SAAS,EACT,MAAM,cAAc,CAAC;AAOtB,qBACa,uBAAwB,SAAQ,SAAS;IACrD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IAG5C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBzB,8BAA8B,IAAI,OAAO,CAAC,IAAI,CAAC;IAO/C,+BAA+B,IAAI,OAAO,CAAC,IAAI,CAAC;IAMvC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAGjD"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { __decorate, __metadata } from "tslib";
|
|
2
|
-
import { Describe, expect, ExpectException, Test, TestSuite, } from '@hg-ts/tests';
|
|
3
|
-
import { v4 as uuid } from 'uuid';
|
|
4
|
-
import { TestAggregate } from './test.aggregate';
|
|
5
|
-
import { TestMemoryRepository } from './test.memory.repository';
|
|
6
|
-
import { TestNotFoundException } from './test.not-found.exception';
|
|
7
|
-
let BaseRepositoryTestSuite = class BaseRepositoryTestSuite extends TestSuite {
|
|
8
|
-
repository = new TestMemoryRepository();
|
|
9
|
-
async saveTest() {
|
|
10
|
-
const id = uuid();
|
|
11
|
-
const aggregate = new TestAggregate(id);
|
|
12
|
-
await this.repository.save(aggregate);
|
|
13
|
-
const savedAggregate = await this.repository.getOrFail(id);
|
|
14
|
-
expect(savedAggregate).toBeInstanceOf(TestAggregate);
|
|
15
|
-
expect(savedAggregate).not.toBe(aggregate);
|
|
16
|
-
expect({ ...savedAggregate }).toMatchObject({ ...aggregate });
|
|
17
|
-
}
|
|
18
|
-
async getOrFailNotFoundExceptionTest() {
|
|
19
|
-
const id = uuid();
|
|
20
|
-
await this.repository.getOrFail(id);
|
|
21
|
-
}
|
|
22
|
-
async getNotFoundWithoutExceptionTest() {
|
|
23
|
-
const id = uuid();
|
|
24
|
-
await this.repository.get(id);
|
|
25
|
-
}
|
|
26
|
-
async beforeEach() {
|
|
27
|
-
await this.repository.clear();
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
__decorate([
|
|
31
|
-
Test(),
|
|
32
|
-
__metadata("design:type", Function),
|
|
33
|
-
__metadata("design:paramtypes", []),
|
|
34
|
-
__metadata("design:returntype", Promise)
|
|
35
|
-
], BaseRepositoryTestSuite.prototype, "saveTest", null);
|
|
36
|
-
__decorate([
|
|
37
|
-
Test(),
|
|
38
|
-
ExpectException(TestNotFoundException),
|
|
39
|
-
__metadata("design:type", Function),
|
|
40
|
-
__metadata("design:paramtypes", []),
|
|
41
|
-
__metadata("design:returntype", Promise)
|
|
42
|
-
], BaseRepositoryTestSuite.prototype, "getOrFailNotFoundExceptionTest", null);
|
|
43
|
-
__decorate([
|
|
44
|
-
Test(),
|
|
45
|
-
__metadata("design:type", Function),
|
|
46
|
-
__metadata("design:paramtypes", []),
|
|
47
|
-
__metadata("design:returntype", Promise)
|
|
48
|
-
], BaseRepositoryTestSuite.prototype, "getNotFoundWithoutExceptionTest", null);
|
|
49
|
-
BaseRepositoryTestSuite = __decorate([
|
|
50
|
-
Describe()
|
|
51
|
-
], BaseRepositoryTestSuite);
|
|
52
|
-
export { BaseRepositoryTestSuite };
|
|
53
|
-
//# sourceMappingURL=base-repository.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base-repository.test.js","sourceRoot":"","sources":["../../src/tests/base-repository.test.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,QAAQ,EACR,MAAM,EACN,eAAe,EACf,IAAI,EACJ,SAAS,GACT,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAG5D,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,SAAS;IACpC,UAAU,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAG5C,AAAN,KAAK,CAAC,QAAQ;QACpB,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,CAAC;QAExC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEtC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAG3D,MAAM,CAAC,cAAc,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QACrD,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,CAAC,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,CAAC;IAC/D,CAAC;IAIY,AAAN,KAAK,CAAC,8BAA8B;QAC1C,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;QAElB,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAGY,AAAN,KAAK,CAAC,+BAA+B;QAC3C,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;QAElB,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAEe,KAAK,CAAC,UAAU;QAC/B,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;CACD,CAAA;AAhCa;IADZ,IAAI,EAAE;;;;uDAaN;AAIY;IAFZ,IAAI,EAAE;IACN,eAAe,CAAC,qBAAqB,CAAC;;;;6EAKtC;AAGY;IADZ,IAAI,EAAE;;;;8EAKN;AA/BW,uBAAuB;IADnC,QAAQ,EAAE;GACE,uBAAuB,CAoCnC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/// <reference types="@hg-ts/types" />
|
|
2
|
-
import { BaseAggregate } from '@hg-ts/domain';
|
|
3
|
-
export declare class TestAggregate extends BaseAggregate {
|
|
4
|
-
someField: Nullable<string>;
|
|
5
|
-
constructor(id: string);
|
|
6
|
-
setSomeField(value: Nullable<string>): void;
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=test.aggregate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test.aggregate.d.ts","sourceRoot":"","sources":["../../src/tests/test.aggregate.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,qBAAa,aAAc,SAAQ,aAAa;IACxC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAQ;gBAEvB,EAAE,EAAE,MAAM;IAItB,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI;CAGlD"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { BaseAggregate } from '@hg-ts/domain';
|
|
2
|
-
export class TestAggregate extends BaseAggregate {
|
|
3
|
-
someField = null;
|
|
4
|
-
constructor(id) {
|
|
5
|
-
super({ id });
|
|
6
|
-
}
|
|
7
|
-
setSomeField(value) {
|
|
8
|
-
this.someField = value;
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=test.aggregate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test.aggregate.js","sourceRoot":"","sources":["../../src/tests/test.aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,OAAO,aAAc,SAAQ,aAAa;IACxC,SAAS,GAAqB,IAAI,CAAC;IAE1C,YAAmB,EAAU;QAC5B,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACf,CAAC;IAEM,YAAY,CAAC,KAAuB;QAC1C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACxB,CAAC;CACD"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { AggregateNotFoundException } from '../exceptions';
|
|
2
|
-
import { BaseMemoryRepository } from '../repositories';
|
|
3
|
-
import type { TestAggregate } from './test.aggregate';
|
|
4
|
-
export declare class TestMemoryRepository extends BaseMemoryRepository<TestAggregate> {
|
|
5
|
-
getNextId(): Promise<TestAggregate['id']>;
|
|
6
|
-
protected getNotFoundException(id: TestAggregate['id']): AggregateNotFoundException;
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=test.memory.repository.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test.memory.repository.d.ts","sourceRoot":"","sources":["../../src/tests/test.memory.repository.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAEhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,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;CAGnF"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { v4 as uuid } from 'uuid';
|
|
2
|
-
import { BaseMemoryRepository } from '../repositories';
|
|
3
|
-
import { TestNotFoundException } from './test.not-found.exception';
|
|
4
|
-
export class TestMemoryRepository extends BaseMemoryRepository {
|
|
5
|
-
async getNextId() {
|
|
6
|
-
return uuid();
|
|
7
|
-
}
|
|
8
|
-
getNotFoundException(id) {
|
|
9
|
-
return new TestNotFoundException(id);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=test.memory.repository.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test.memory.repository.js","sourceRoot":"","sources":["../../src/tests/test.memory.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAGlC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAGvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,MAAM,OAAO,oBAAqB,SAAQ,oBAAmC;IACrE,KAAK,CAAC,SAAS;QACrB,OAAO,IAAI,EAAE,CAAC;IACf,CAAC;IAES,oBAAoB,CAAC,EAAuB;QACrD,OAAO,IAAI,qBAAqB,CAAC,EAAE,CAAC,CAAC;IACtC,CAAC;CACD"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/// <reference types="@hg-ts/types" />
|
|
2
|
-
import { AggregateNotFoundException } from '../exceptions';
|
|
3
|
-
import type { TestAggregate } from './test.aggregate';
|
|
4
|
-
export declare class TestNotFoundException extends AggregateNotFoundException {
|
|
5
|
-
constructor(id?: Nullable<TestAggregate['id']>);
|
|
6
|
-
}
|
|
7
|
-
//# sourceMappingURL=test.not-found.exception.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test.not-found.exception.d.ts","sourceRoot":"","sources":["../../src/tests/test.not-found.exception.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,qBAAa,qBAAsB,SAAQ,0BAA0B;gBACjD,EAAE,GAAE,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAQ;CAG3D"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"test.not-found.exception.js","sourceRoot":"","sources":["../../src/tests/test.not-found.exception.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAG3D,MAAM,OAAO,qBAAsB,SAAQ,0BAA0B;IACpE,YAAmB,KAAoC,IAAI;QAC1D,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;CACD"}
|
package/mocha.junit.xml
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<testsuites name="Mocha Tests" time="0.0070" tests="3" failures="0">
|
|
3
|
-
<testsuite name="Root Suite" timestamp="2023-06-18T13:18:42" tests="0" time="0.0000" failures="0">
|
|
4
|
-
</testsuite>
|
|
5
|
-
<testsuite name="BaseRepositoryTestSuite" timestamp="2023-06-18T13:18:42" tests="3" file="/Volumes/Work/ts/hg/framework/packages/repository/dist/tests/base-repository.test.js" time="0.0050" failures="0">
|
|
6
|
-
<testcase name="BaseRepositoryTestSuite saveTest" time="0.0020" classname="saveTest">
|
|
7
|
-
</testcase>
|
|
8
|
-
<testcase name="BaseRepositoryTestSuite getOrFailNotFoundExceptionTest" time="0.0000" classname="getOrFailNotFoundExceptionTest">
|
|
9
|
-
</testcase>
|
|
10
|
-
<testcase name="BaseRepositoryTestSuite getNotFoundWithoutExceptionTest" time="0.0000" classname="getNotFoundWithoutExceptionTest">
|
|
11
|
-
</testcase>
|
|
12
|
-
</testsuite>
|
|
13
|
-
</testsuites>
|