@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.
@@ -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,4 @@
1
+ import { Knex } from 'knex';
2
+ export declare function up(knex: Knex): Promise<void>;
3
+ export declare function down(knex: Knex): Promise<void>;
4
+ //# sourceMappingURL=event.migration.d.ts.map
@@ -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
@@ -3,4 +3,5 @@ export * from './knex.service';
3
3
  export * from './external-config';
4
4
  export * from './test-containers';
5
5
  export * from './knex.repository';
6
+ export * from './event.knex.repository';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -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;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,4DAAkC"}
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.15",
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.15",
19
- "@hg-ts/async-context": "0.2.15",
20
- "@hg-ts/config-loader": "0.2.15",
21
- "@hg-ts/domain": "0.2.15",
22
- "@hg-ts/exception": "0.2.15",
23
- "@hg-ts/execution-mode": "0.2.15",
24
- "@hg-ts/linter": "0.2.15",
25
- "@hg-ts/logger": "0.2.15",
26
- "@hg-ts/repository": "0.2.15",
27
- "@hg-ts/tests": "0.2.15",
28
- "@hg-ts/types": "0.2.15",
29
- "@hg-ts/validation": "0.2.15",
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.15",
43
- "@hg-ts/config-loader": "0.2.15",
44
- "@hg-ts/domain": "0.2.15",
45
- "@hg-ts/execution-mode": "0.2.15",
46
- "@hg-ts/logger": "0.2.15",
47
- "@hg-ts/repository": "0.2.15",
48
- "@hg-ts/validation": "0.2.15",
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": "*",