@elsikora/nestjs-crud-config 2.0.1 → 3.0.0-dev.1

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.
Files changed (64) hide show
  1. package/README.md +50 -67
  2. package/dist/cjs/index.js +0 -12
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/modules/config/config.module.js +0 -6
  5. package/dist/cjs/modules/config/config.module.js.map +1 -1
  6. package/dist/cjs/modules/config/config.service.d.ts +3 -0
  7. package/dist/cjs/modules/config/config.service.js +41 -49
  8. package/dist/cjs/modules/config/config.service.js.map +1 -1
  9. package/dist/cjs/modules/config/data/index.d.ts +0 -3
  10. package/dist/cjs/modules/config/interface/delete-options.interface.d.ts +3 -2
  11. package/dist/cjs/modules/config/interface/get-list-options.interface.d.ts +3 -2
  12. package/dist/cjs/modules/config/interface/get-options.interface.d.ts +3 -2
  13. package/dist/cjs/modules/config/interface/set-options.interface.d.ts +3 -2
  14. package/dist/cjs/modules/config/migration/interface/migration-definition.interface.d.ts +3 -3
  15. package/dist/cjs/modules/config/migration/interface/migration-options.interface.d.ts +2 -1
  16. package/dist/cjs/modules/config/migration/migration.service.d.ts +2 -3
  17. package/dist/cjs/modules/config/migration/migration.service.js +15 -37
  18. package/dist/cjs/modules/config/migration/migration.service.js.map +1 -1
  19. package/dist/cjs/package.json +0 -1
  20. package/dist/cjs/shared/interface/utility/create-dynamic-entity/relation-options.interface.d.ts +1 -1
  21. package/dist/esm/index.js +0 -3
  22. package/dist/esm/index.js.map +1 -1
  23. package/dist/esm/modules/config/config.module.js +0 -6
  24. package/dist/esm/modules/config/config.module.js.map +1 -1
  25. package/dist/esm/modules/config/config.service.d.ts +3 -0
  26. package/dist/esm/modules/config/config.service.js +41 -49
  27. package/dist/esm/modules/config/config.service.js.map +1 -1
  28. package/dist/esm/modules/config/data/index.d.ts +0 -3
  29. package/dist/esm/modules/config/interface/delete-options.interface.d.ts +3 -2
  30. package/dist/esm/modules/config/interface/get-list-options.interface.d.ts +3 -2
  31. package/dist/esm/modules/config/interface/get-options.interface.d.ts +3 -2
  32. package/dist/esm/modules/config/interface/set-options.interface.d.ts +3 -2
  33. package/dist/esm/modules/config/migration/interface/migration-definition.interface.d.ts +3 -3
  34. package/dist/esm/modules/config/migration/interface/migration-options.interface.d.ts +2 -1
  35. package/dist/esm/modules/config/migration/migration.service.d.ts +2 -3
  36. package/dist/esm/modules/config/migration/migration.service.js +15 -37
  37. package/dist/esm/modules/config/migration/migration.service.js.map +1 -1
  38. package/dist/esm/package.json +0 -1
  39. package/dist/esm/shared/interface/utility/create-dynamic-entity/relation-options.interface.d.ts +1 -1
  40. package/package.json +6 -5
  41. package/dist/cjs/modules/config/data/event/before-insert.event.d.ts +0 -20
  42. package/dist/cjs/modules/config/data/event/before-insert.event.js +0 -23
  43. package/dist/cjs/modules/config/data/event/before-insert.event.js.map +0 -1
  44. package/dist/cjs/modules/config/data/event/index.d.ts +0 -1
  45. package/dist/cjs/modules/config/data/listener/before-insert.listener.d.ts +0 -19
  46. package/dist/cjs/modules/config/data/listener/before-insert.listener.js +0 -60
  47. package/dist/cjs/modules/config/data/listener/before-insert.listener.js.map +0 -1
  48. package/dist/cjs/modules/config/data/listener/index.d.ts +0 -1
  49. package/dist/cjs/modules/config/data/subscriber/before-insert.subscriber.d.ts +0 -25
  50. package/dist/cjs/modules/config/data/subscriber/before-insert.subscriber.js +0 -74
  51. package/dist/cjs/modules/config/data/subscriber/before-insert.subscriber.js.map +0 -1
  52. package/dist/cjs/modules/config/data/subscriber/index.d.ts +0 -1
  53. package/dist/esm/modules/config/data/event/before-insert.event.d.ts +0 -20
  54. package/dist/esm/modules/config/data/event/before-insert.event.js +0 -21
  55. package/dist/esm/modules/config/data/event/before-insert.event.js.map +0 -1
  56. package/dist/esm/modules/config/data/event/index.d.ts +0 -1
  57. package/dist/esm/modules/config/data/listener/before-insert.listener.d.ts +0 -19
  58. package/dist/esm/modules/config/data/listener/before-insert.listener.js +0 -60
  59. package/dist/esm/modules/config/data/listener/before-insert.listener.js.map +0 -1
  60. package/dist/esm/modules/config/data/listener/index.d.ts +0 -1
  61. package/dist/esm/modules/config/data/subscriber/before-insert.subscriber.d.ts +0 -25
  62. package/dist/esm/modules/config/data/subscriber/before-insert.subscriber.js +0 -74
  63. package/dist/esm/modules/config/data/subscriber/before-insert.subscriber.js.map +0 -1
  64. package/dist/esm/modules/config/data/subscriber/index.d.ts +0 -1
@@ -1,60 +0,0 @@
1
- import { __decorate, __metadata, __param } from '../../../../external/tslib/tslib.es6.js';
2
- import { ApiServiceBase, ApiFunctionTransactionScope } from '@elsikora/nestjs-crud-automator';
3
- import { ConfigDataEventBeforeInsert } from '../event/before-insert.event.js';
4
- import { Injectable, Inject, ConflictException, NotFoundException } from '@nestjs/common';
5
- import { OnEvent } from '@nestjs/event-emitter';
6
- import { TOKEN_CONSTANT } from '../../../../shared/constant/token.constant.js';
7
-
8
- /**
9
- * Event listener for ConfigData beforeInsert events
10
- */
11
- let ConfigDataBeforeInsertListener = class ConfigDataBeforeInsertListener {
12
- service;
13
- constructor(service) {
14
- this.service = service;
15
- }
16
- /**
17
- * Handle configdataevents.beforeInsert event
18
- * @param {ConfigDataEventBeforeInsert} payload Event payload
19
- * @returns {Promise<{ error?: unknown; isSuccess: boolean }>} Object indicating success or failure
20
- */
21
- async handleBeforeInsert(payload) {
22
- try {
23
- // Access the entity from the payload
24
- const entity = payload.item;
25
- const entityManager = payload.eventManager;
26
- const existingConfigData = await ApiFunctionTransactionScope.runWithEntityManager(entityManager, () => this.service.get({
27
- where: {
28
- environment: entity.environment,
29
- name: entity.name,
30
- section: { id: entity.section.id },
31
- },
32
- }));
33
- if (existingConfigData) {
34
- throw new ConflictException("ConfigData with this section, environment and name already exists");
35
- }
36
- // Return success if no duplicate found
37
- return { isSuccess: true };
38
- }
39
- catch (error) {
40
- if (error instanceof NotFoundException) {
41
- return { isSuccess: true };
42
- }
43
- return { error, isSuccess: false };
44
- }
45
- }
46
- };
47
- __decorate([
48
- OnEvent("config-data.beforeInsert"),
49
- __metadata("design:type", Function),
50
- __metadata("design:paramtypes", [ConfigDataEventBeforeInsert]),
51
- __metadata("design:returntype", Promise)
52
- ], ConfigDataBeforeInsertListener.prototype, "handleBeforeInsert", null);
53
- ConfigDataBeforeInsertListener = __decorate([
54
- Injectable(),
55
- __param(0, Inject(TOKEN_CONSTANT.CONFIG_DATA_SERVICE)),
56
- __metadata("design:paramtypes", [ApiServiceBase])
57
- ], ConfigDataBeforeInsertListener);
58
-
59
- export { ConfigDataBeforeInsertListener };
60
- //# sourceMappingURL=before-insert.listener.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"before-insert.listener.js","sources":["../../../../../../../src/modules/config/data/listener/before-insert.listener.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;AAQA;;AAEG;AAEI,IAAM,8BAA8B,GAApC,MAAM,8BAA8B,CAAA;AAEoB,IAAA,OAAA;AAD9D,IAAA,WAAA,CAC8D,OAAoC,EAAA;QAApC,IAAA,CAAA,OAAO,GAAP,OAAO;IAClE;AAEH;;;;AAIG;AAEG,IAAN,MAAM,kBAAkB,CACvB,OAAoC,EAAA;AAEpC,QAAA,IAAI;;AAEH,YAAA,MAAM,MAAM,GAAgB,OAAO,CAAC,IAAI;AACxC,YAAA,MAAM,aAAa,GAAkB,OAAO,CAAC,YAAY;AAEzD,YAAA,MAAM,kBAAkB,GACvB,MAAM,2BAA2B,CAAC,oBAAoB,CAAC,aAAa,EAAE,MACrE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;AAChB,gBAAA,KAAK,EAAE;oBACN,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE;AAClC,iBAAA;AACD,aAAA,CAAC,CACF;YAEF,IAAI,kBAAkB,EAAE;AACvB,gBAAA,MAAM,IAAI,iBAAiB,CAC1B,mEAAmE,CACnE;YACF;;AAGA,YAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE;QAC3B;QAAE,OAAO,KAAK,EAAE;AACf,YAAA,IAAI,KAAK,YAAY,iBAAiB,EAAE;AACvC,gBAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE;YAC3B;AAEA,YAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;QACnC;IACD;;AAlCM,UAAA,CAAA;IADL,OAAO,CAAC,0BAA0B,CAAC;;qCAE1B,2BAA2B,CAAA,CAAA;;AAiCpC,CAAA,EAAA,8BAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,IAAA,CAAA;AA7CW,8BAA8B,GAAA,UAAA,CAAA;AAD1C,IAAA,UAAU,EAAE;AAGV,IAAA,OAAA,CAAA,CAAA,EAAA,MAAM,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAA;qCAA2B,cAAc,CAAA;AAFzE,CAAA,EAAA,8BAA8B,CA8C1C;;;;"}
@@ -1 +0,0 @@
1
- export { ConfigDataBeforeInsertListener } from './before-insert.listener';
@@ -1,25 +0,0 @@
1
- import { IConfigData } from '..';
2
- import { TDynamicEntity } from '../../../../shared/type';
3
- import { EntitySubscriberInterface, InsertEvent, DataSource } from 'typeorm';
4
- import { EventEmitter2 } from '@nestjs/event-emitter';
5
- /**
6
- * TypeORM subscriber for ConfigData beforeInsert event
7
- * Note: Works with dynamically generated entities
8
- */
9
- export declare class ConfigDataBeforeInsertSubscriber implements EntitySubscriberInterface<IConfigData> {
10
- private readonly eventEmitter;
11
- readonly connection: DataSource;
12
- private readonly entityClass;
13
- constructor(eventEmitter: EventEmitter2, connection: DataSource, entityClass: TDynamicEntity);
14
- /**
15
- * Handle the beforeInsert event
16
- * @param {InsertEvent<IConfigData>} event - The TypeORM insert event
17
- * @returns {Promise<boolean>} Promise resolving to boolean indicating success
18
- */
19
- beforeInsert(event: InsertEvent<IConfigData>): Promise<boolean>;
20
- /**
21
- * Specify which entity this subscriber listens to
22
- * @returns {TDynamicEntity} The ConfigData entity class
23
- */
24
- listenTo(): TDynamicEntity;
25
- }
@@ -1,74 +0,0 @@
1
- import { __decorate, __param, __metadata } from '../../../../external/tslib/tslib.es6.js';
2
- import { ErrorString, EErrorStringAction } from '@elsikora/nestjs-crud-automator';
3
- import { ConfigDataEventBeforeInsert } from '../event/before-insert.event.js';
4
- import { Inject, HttpException, InternalServerErrorException } from '@nestjs/common';
5
- import { EventEmitter2 } from '@nestjs/event-emitter';
6
- import { TOKEN_CONSTANT } from '../../../../shared/constant/token.constant.js';
7
- import { EventSubscriber, DataSource } from 'typeorm';
8
-
9
- /**
10
- * TypeORM subscriber for ConfigData beforeInsert event
11
- * Note: Works with dynamically generated entities
12
- */
13
- let ConfigDataBeforeInsertSubscriber = class ConfigDataBeforeInsertSubscriber {
14
- eventEmitter;
15
- connection;
16
- entityClass;
17
- constructor(eventEmitter, connection, entityClass) {
18
- this.eventEmitter = eventEmitter;
19
- this.connection = connection;
20
- this.entityClass = entityClass;
21
- // Register this subscriber with the DataSource
22
- connection.subscribers.push(this);
23
- }
24
- /**
25
- * Handle the beforeInsert event
26
- * @param {InsertEvent<IConfigData>} event - The TypeORM insert event
27
- * @returns {Promise<boolean>} Promise resolving to boolean indicating success
28
- */
29
- beforeInsert(event) {
30
- // Only process if this is our ConfigData entity
31
- if (event.entity.constructor !== this.entityClass) {
32
- return Promise.resolve(true);
33
- }
34
- const item = event.entity;
35
- const payload = new ConfigDataEventBeforeInsert();
36
- payload.item = item;
37
- payload.eventManager = event.manager;
38
- return this.eventEmitter
39
- .emitAsync("config-data.beforeInsert", payload)
40
- .then((result) => {
41
- if (result.every((item) => item.isSuccess)) {
42
- return true;
43
- }
44
- else {
45
- const error = result.find((item) => !item.isSuccess)?.error;
46
- if (error instanceof HttpException) {
47
- throw error;
48
- }
49
- // @ts-ignore - EErrorStringAction import issue with yalc package
50
- throw new InternalServerErrorException(ErrorString({ entity: { name: "ConfigData" }, type: EErrorStringAction.CREATING_ERROR }));
51
- }
52
- })
53
- .catch((error) => {
54
- throw error;
55
- });
56
- }
57
- /**
58
- * Specify which entity this subscriber listens to
59
- * @returns {TDynamicEntity} The ConfigData entity class
60
- */
61
- listenTo() {
62
- return this.entityClass;
63
- }
64
- };
65
- ConfigDataBeforeInsertSubscriber = __decorate([
66
- EventSubscriber(),
67
- __param(1, Inject(DataSource)),
68
- __param(2, Inject(TOKEN_CONSTANT.CONFIG_DATA_ENTITY)),
69
- __metadata("design:paramtypes", [EventEmitter2,
70
- DataSource, Object])
71
- ], ConfigDataBeforeInsertSubscriber);
72
-
73
- export { ConfigDataBeforeInsertSubscriber };
74
- //# sourceMappingURL=before-insert.subscriber.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"before-insert.subscriber.js","sources":["../../../../../../../src/modules/config/data/subscriber/before-insert.subscriber.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;AAYA;;;AAGG;AAEI,IAAM,gCAAgC,GAAtC,MAAM,gCAAgC,CAAA;AAE1B,IAAA,YAAA;AACY,IAAA,UAAA;AAC+B,IAAA,WAAA;AAH7D,IAAA,WAAA,CACkB,YAA2B,EACf,UAAsB,EACS,WAA2B,EAAA;QAFtE,IAAA,CAAA,YAAY,GAAZ,YAAY;QACA,IAAA,CAAA,UAAU,GAAV,UAAU;QACqB,IAAA,CAAA,WAAW,GAAX,WAAW;;AAGvE,QAAA,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;IAClC;AAEA;;;;AAIG;AACH,IAAA,YAAY,CAAC,KAA+B,EAAA;;QAE3C,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW,EAAE;AAClD,YAAA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;QAC7B;AAEA,QAAA,MAAM,IAAI,GAAgB,KAAK,CAAC,MAAM;AAEtC,QAAA,MAAM,OAAO,GAAgC,IAAI,2BAA2B,EAAE;AAC9E,QAAA,OAAO,CAAC,IAAI,GAAG,IAAI;AACnB,QAAA,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC,OAAO;QAEpC,OAAO,IAAI,CAAC;AACV,aAAA,SAAS,CAAC,0BAA0B,EAAE,OAAO;AAC7C,aAAA,IAAI,CAAC,CAAC,MAAsD,KAAI;AAChE,YAAA,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,IAA6C,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE;AACpF,gBAAA,OAAO,IAAI;YACZ;iBAAO;AACN,gBAAA,MAAM,KAAK,GAAY,MAAM,CAAC,IAAI,CACjC,CAAC,IAA6C,KAAK,CAAC,IAAI,CAAC,SAAS,CAClE,EAAE,KAAK;AAER,gBAAA,IAAI,KAAK,YAAY,aAAa,EAAE;AACnC,oBAAA,MAAM,KAAK;gBACZ;;gBAGA,MAAM,IAAI,4BAA4B,CACrC,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,kBAAkB,CAAC,cAAc,EAAE,CAAC,CACxF;YACF;AACD,QAAA,CAAC;AACA,aAAA,KAAK,CAAC,CAAC,KAAc,KAAI;AACzB,YAAA,MAAM,KAAK;AACZ,QAAA,CAAC,CAAC;IACJ;AAEA;;;AAGG;IACH,QAAQ,GAAA;QACP,OAAO,IAAI,CAAC,WAAW;IACxB;;AA1DY,gCAAgC,GAAA,UAAA,CAAA;AAD5C,IAAA,eAAe,EAAE;AAIf,IAAA,OAAA,CAAA,CAAA,EAAA,MAAM,CAAC,UAAU,CAAC,CAAA;AAClB,IAAA,OAAA,CAAA,CAAA,EAAA,MAAM,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAA;qCAFX,aAAa;QACH,UAAU,EAAA,MAAA,CAAA;AAHxC,CAAA,EAAA,gCAAgC,CA2D5C;;;;"}
@@ -1 +0,0 @@
1
- export { ConfigDataBeforeInsertSubscriber } from './before-insert.subscriber';