@hg-ts/knex 0.2.15 → 0.2.17
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/event.knex.repository.d.ts +27 -0
- package/dist/event.knex.repository.d.ts.map +1 -0
- package/dist/event.knex.repository.js +56 -0
- package/dist/event.knex.repository.js.map +1 -0
- package/dist/event.migration.d.ts +4 -0
- package/dist/event.migration.d.ts.map +1 -0
- package/dist/event.migration.js +22 -0
- package/dist/event.migration.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +21 -20
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { DomainEvent } from '@hg-ts/domain';
|
|
2
|
+
import { BaseEventRepository, EventFindOptions } from '@hg-ts/repository';
|
|
3
|
+
import { Knex } from 'knex';
|
|
4
|
+
import { KnexService } from './knex.service';
|
|
5
|
+
export type EventTable = {
|
|
6
|
+
id: string;
|
|
7
|
+
entityName: string;
|
|
8
|
+
entityId: string;
|
|
9
|
+
name: string;
|
|
10
|
+
body: unknown;
|
|
11
|
+
traceId: Nullable<string>;
|
|
12
|
+
occurredOn: Date;
|
|
13
|
+
createdAt: Date;
|
|
14
|
+
};
|
|
15
|
+
declare module 'knex/types/tables' {
|
|
16
|
+
interface Tables {
|
|
17
|
+
event: EventTable;
|
|
18
|
+
event_composite: Knex.CompositeTableType<EventTable, Omit<EventTable, 'createdAt'>, never>;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export declare abstract class EventKnexRepository extends BaseEventRepository {
|
|
22
|
+
protected readonly knex: KnexService;
|
|
23
|
+
add(event: DomainEvent | DomainEvent[]): Promise<void>;
|
|
24
|
+
protected findEntities(options?: Partial<EventFindOptions>): Promise<DomainEvent[]>;
|
|
25
|
+
protected abstract createEvent(name: string, row: Omit<EventTable, 'name'>): DomainEvent;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=event.knex.repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event.knex.repository.d.ts","sourceRoot":"","sources":["../src/event.knex.repository.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,WAAW,EAEX,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,mBAAmB,EACnB,gBAAgB,EAChB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,MAAM,UAAU,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC1B,UAAU,EAAE,IAAI,CAAC;IACjB,SAAS,EAAE,IAAI,CAAC;CAChB,CAAC;AAEF,OAAO,QAAQ,mBAAmB,CAAC;IAElC,UAAU,MAAM;QACf,KAAK,EAAE,UAAU,CAAC;QAClB,eAAe,EAAE,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,KAAK,CAAC,CAAC;KAC3F;CACD;AAED,8BAAsB,mBAAoB,SAAQ,mBAAmB;IAEpE,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAEf,GAAG,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;cAenD,YAAY,CAAC,OAAO,GAAE,OAAO,CAAC,gBAAgB,CAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAmCtG,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,WAAW;CACxF"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EventKnexRepository = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const domain_1 = require("@hg-ts/domain");
|
|
6
|
+
const repository_1 = require("@hg-ts/repository");
|
|
7
|
+
const common_1 = require("@nestjs/common");
|
|
8
|
+
const knex_service_1 = require("./knex.service");
|
|
9
|
+
class EventKnexRepository extends repository_1.BaseEventRepository {
|
|
10
|
+
knex;
|
|
11
|
+
async add(event) {
|
|
12
|
+
const events = Array.isArray(event) ? event : [event];
|
|
13
|
+
const trx = await this.knex.getTrx();
|
|
14
|
+
await trx('event').insert(events.map(event => ({
|
|
15
|
+
id: event.id,
|
|
16
|
+
entityId: event.entityId,
|
|
17
|
+
entityName: event.entityName,
|
|
18
|
+
name: event.name,
|
|
19
|
+
body: event.body,
|
|
20
|
+
occurredOn: event.occurredOn,
|
|
21
|
+
traceId: event.traceId,
|
|
22
|
+
})));
|
|
23
|
+
}
|
|
24
|
+
async findEntities(options = {}) {
|
|
25
|
+
const { id, entityId, entityName } = options;
|
|
26
|
+
const trx = await this.knex.getTrx();
|
|
27
|
+
const qb = trx('event');
|
|
28
|
+
if (id) {
|
|
29
|
+
if (Array.isArray(id)) {
|
|
30
|
+
qb.whereIn('id', id);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
qb.where('id', id);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (entityId) {
|
|
37
|
+
qb.where('entityId', entityId);
|
|
38
|
+
}
|
|
39
|
+
if (entityName) {
|
|
40
|
+
qb.where('entityName', entityName);
|
|
41
|
+
}
|
|
42
|
+
const rows = await qb;
|
|
43
|
+
return rows.map(row => {
|
|
44
|
+
const { name, ...eventData } = row;
|
|
45
|
+
const event = this.createEvent(name, eventData);
|
|
46
|
+
event[domain_1.STORED_PROPERTY] = true;
|
|
47
|
+
return event;
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.EventKnexRepository = EventKnexRepository;
|
|
52
|
+
tslib_1.__decorate([
|
|
53
|
+
(0, common_1.Inject)(),
|
|
54
|
+
tslib_1.__metadata("design:type", knex_service_1.KnexService)
|
|
55
|
+
], EventKnexRepository.prototype, "knex", void 0);
|
|
56
|
+
//# sourceMappingURL=event.knex.repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event.knex.repository.js","sourceRoot":"","sources":["../src/event.knex.repository.ts"],"names":[],"mappings":";;;;AAAA,0CAGuB;AACvB,kDAG2B;AAE3B,2CAAwC;AAGxC,iDAA6C;AAqB7C,MAAsB,mBAAoB,SAAQ,gCAAmB;IAEjD,IAAI,CAAc;IAErB,KAAK,CAAC,GAAG,CAAC,KAAkC;QAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACtD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAErC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC9C,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;SACtB,CAAC,CAAC,CAAC,CAAC;IACN,CAAC;IAEkB,KAAK,CAAC,YAAY,CAAC,UAAqC,EAAE;QAC5E,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QAE7C,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAErC,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;QAExB,IAAI,EAAE,EAAE,CAAC;YACR,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;gBACvB,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACP,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpB,CAAC;QACF,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACd,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YAChB,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;QAEtB,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACrB,MAAM,EAAE,IAAI,EAAE,GAAG,SAAS,EAAE,GAAG,GAAG,CAAC;YACnC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAEhD,KAAK,CAAC,wBAAe,CAAC,GAAG,IAAI,CAAC;YAE9B,OAAO,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;IACJ,CAAC;CAGD;AAvDD,kDAuDC;AArDmB;IADlB,IAAA,eAAM,GAAE;sCACgB,0BAAW;iDAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event.migration.d.ts","sourceRoot":"","sources":["../src/event.migration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,wBAAsB,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAkBlD;AACD,wBAAsB,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.up = up;
|
|
4
|
+
exports.down = down;
|
|
5
|
+
async function up(knex) {
|
|
6
|
+
await knex.schema.createTable('event', table => {
|
|
7
|
+
table.uuid('id').primary();
|
|
8
|
+
table.string('entityName').notNullable();
|
|
9
|
+
table.string('entityId').notNullable();
|
|
10
|
+
table.string('name').notNullable();
|
|
11
|
+
table.json('body').notNullable();
|
|
12
|
+
table.uuid('tractId').nullable();
|
|
13
|
+
table.timestamp('occurredOn').notNullable();
|
|
14
|
+
table.timestamp('createdAt').notNullable().defaultTo(knex.fn.now());
|
|
15
|
+
table.index(['entityName', 'entityId'], 'eventEntityIdx', { storageEngineIndexType: 'btree' });
|
|
16
|
+
table.index('occurredOn', 'eventOccurredOnIdx', { storageEngineIndexType: 'btree' });
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
async function down(knex) {
|
|
20
|
+
await knex.schema.dropTable('event');
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=event.migration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event.migration.js","sourceRoot":"","sources":["../src/event.migration.ts"],"names":[],"mappings":";;AAEA,gBAkBC;AACD,oBAEC;AArBM,KAAK,UAAU,EAAE,CAAC,IAAU;IAClC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE;QAC9C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAE3B,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QACzC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QAEvC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAEjC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;QAEjC,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5C,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QAEpE,KAAK,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,gBAAgB,EAAE,EAAE,sBAAsB,EAAE,OAAO,EAAE,CAAC,CAAC;QAC/F,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,oBAAoB,EAAE,EAAE,sBAAsB,EAAE,OAAO,EAAE,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;AACJ,CAAC;AACM,KAAK,UAAU,IAAI,CAAC,IAAU;IACpC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAElC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -6,4 +6,5 @@ tslib_1.__exportStar(require("./knex.service"), exports);
|
|
|
6
6
|
tslib_1.__exportStar(require("./external-config"), exports);
|
|
7
7
|
tslib_1.__exportStar(require("./test-containers"), exports);
|
|
8
8
|
tslib_1.__exportStar(require("./knex.repository"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./event.knex.repository"), exports);
|
|
9
10
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,yDAA+B;AAC/B,4DAAkC;AAClC,4DAAkC;AAClC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,yDAA+B;AAC/B,4DAAkC;AAClC,4DAAkC;AAElC,4DAAkC;AAClC,kEAAwC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hg-ts/knex",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.17",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dist/index.js"
|
|
@@ -15,18 +15,18 @@
|
|
|
15
15
|
"lint:ts:fix": "lint-ts --fix"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
|
-
"@hg-ts-config/typescript": "0.2.
|
|
19
|
-
"@hg-ts/async-context": "0.2.
|
|
20
|
-
"@hg-ts/config-loader": "0.2.
|
|
21
|
-
"@hg-ts/domain": "0.2.
|
|
22
|
-
"@hg-ts/exception": "0.2.
|
|
23
|
-
"@hg-ts/execution-mode": "0.2.
|
|
24
|
-
"@hg-ts/linter": "0.2.
|
|
25
|
-
"@hg-ts/logger": "0.2.
|
|
26
|
-
"@hg-ts/repository": "0.2.
|
|
27
|
-
"@hg-ts/tests": "0.2.
|
|
28
|
-
"@hg-ts/types": "0.2.
|
|
29
|
-
"@hg-ts/validation": "0.2.
|
|
18
|
+
"@hg-ts-config/typescript": "0.2.17",
|
|
19
|
+
"@hg-ts/async-context": "0.2.17",
|
|
20
|
+
"@hg-ts/config-loader": "0.2.17",
|
|
21
|
+
"@hg-ts/domain": "0.2.17",
|
|
22
|
+
"@hg-ts/exception": "0.2.17",
|
|
23
|
+
"@hg-ts/execution-mode": "0.2.17",
|
|
24
|
+
"@hg-ts/linter": "0.2.17",
|
|
25
|
+
"@hg-ts/logger": "0.2.17",
|
|
26
|
+
"@hg-ts/repository": "0.2.17",
|
|
27
|
+
"@hg-ts/tests": "0.2.17",
|
|
28
|
+
"@hg-ts/types": "0.2.17",
|
|
29
|
+
"@hg-ts/validation": "0.2.17",
|
|
30
30
|
"@nestjs/common": "11.1.0",
|
|
31
31
|
"@types/node": "22.10.6",
|
|
32
32
|
"@types/pg": "^8",
|
|
@@ -39,13 +39,14 @@
|
|
|
39
39
|
"typescript": "5.7.3"
|
|
40
40
|
},
|
|
41
41
|
"peerDependencies": {
|
|
42
|
-
"@hg-ts/async-context": "0.2.
|
|
43
|
-
"@hg-ts/config-loader": "0.2.
|
|
44
|
-
"@hg-ts/domain": "0.2.
|
|
45
|
-
"@hg-ts/
|
|
46
|
-
"@hg-ts/
|
|
47
|
-
"@hg-ts/
|
|
48
|
-
"@hg-ts/
|
|
42
|
+
"@hg-ts/async-context": "0.2.17",
|
|
43
|
+
"@hg-ts/config-loader": "0.2.17",
|
|
44
|
+
"@hg-ts/domain": "0.2.17",
|
|
45
|
+
"@hg-ts/exception": "0.2.17",
|
|
46
|
+
"@hg-ts/execution-mode": "0.2.17",
|
|
47
|
+
"@hg-ts/logger": "0.2.17",
|
|
48
|
+
"@hg-ts/repository": "0.2.17",
|
|
49
|
+
"@hg-ts/validation": "0.2.17",
|
|
49
50
|
"@nestjs/common": "*",
|
|
50
51
|
"knex": ">=3.1.0",
|
|
51
52
|
"reflect-metadata": "*",
|