@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.
- package/README.md +50 -67
- package/dist/cjs/index.js +0 -12
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/modules/config/config.module.js +0 -6
- package/dist/cjs/modules/config/config.module.js.map +1 -1
- package/dist/cjs/modules/config/config.service.d.ts +3 -0
- package/dist/cjs/modules/config/config.service.js +41 -49
- package/dist/cjs/modules/config/config.service.js.map +1 -1
- package/dist/cjs/modules/config/data/index.d.ts +0 -3
- package/dist/cjs/modules/config/interface/delete-options.interface.d.ts +3 -2
- package/dist/cjs/modules/config/interface/get-list-options.interface.d.ts +3 -2
- package/dist/cjs/modules/config/interface/get-options.interface.d.ts +3 -2
- package/dist/cjs/modules/config/interface/set-options.interface.d.ts +3 -2
- package/dist/cjs/modules/config/migration/interface/migration-definition.interface.d.ts +3 -3
- package/dist/cjs/modules/config/migration/interface/migration-options.interface.d.ts +2 -1
- package/dist/cjs/modules/config/migration/migration.service.d.ts +2 -3
- package/dist/cjs/modules/config/migration/migration.service.js +15 -37
- package/dist/cjs/modules/config/migration/migration.service.js.map +1 -1
- package/dist/cjs/package.json +0 -1
- package/dist/cjs/shared/interface/utility/create-dynamic-entity/relation-options.interface.d.ts +1 -1
- package/dist/esm/index.js +0 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/modules/config/config.module.js +0 -6
- package/dist/esm/modules/config/config.module.js.map +1 -1
- package/dist/esm/modules/config/config.service.d.ts +3 -0
- package/dist/esm/modules/config/config.service.js +41 -49
- package/dist/esm/modules/config/config.service.js.map +1 -1
- package/dist/esm/modules/config/data/index.d.ts +0 -3
- package/dist/esm/modules/config/interface/delete-options.interface.d.ts +3 -2
- package/dist/esm/modules/config/interface/get-list-options.interface.d.ts +3 -2
- package/dist/esm/modules/config/interface/get-options.interface.d.ts +3 -2
- package/dist/esm/modules/config/interface/set-options.interface.d.ts +3 -2
- package/dist/esm/modules/config/migration/interface/migration-definition.interface.d.ts +3 -3
- package/dist/esm/modules/config/migration/interface/migration-options.interface.d.ts +2 -1
- package/dist/esm/modules/config/migration/migration.service.d.ts +2 -3
- package/dist/esm/modules/config/migration/migration.service.js +15 -37
- package/dist/esm/modules/config/migration/migration.service.js.map +1 -1
- package/dist/esm/package.json +0 -1
- package/dist/esm/shared/interface/utility/create-dynamic-entity/relation-options.interface.d.ts +1 -1
- package/package.json +6 -5
- package/dist/cjs/modules/config/data/event/before-insert.event.d.ts +0 -20
- package/dist/cjs/modules/config/data/event/before-insert.event.js +0 -23
- package/dist/cjs/modules/config/data/event/before-insert.event.js.map +0 -1
- package/dist/cjs/modules/config/data/event/index.d.ts +0 -1
- package/dist/cjs/modules/config/data/listener/before-insert.listener.d.ts +0 -19
- package/dist/cjs/modules/config/data/listener/before-insert.listener.js +0 -60
- package/dist/cjs/modules/config/data/listener/before-insert.listener.js.map +0 -1
- package/dist/cjs/modules/config/data/listener/index.d.ts +0 -1
- package/dist/cjs/modules/config/data/subscriber/before-insert.subscriber.d.ts +0 -25
- package/dist/cjs/modules/config/data/subscriber/before-insert.subscriber.js +0 -74
- package/dist/cjs/modules/config/data/subscriber/before-insert.subscriber.js.map +0 -1
- package/dist/cjs/modules/config/data/subscriber/index.d.ts +0 -1
- package/dist/esm/modules/config/data/event/before-insert.event.d.ts +0 -20
- package/dist/esm/modules/config/data/event/before-insert.event.js +0 -21
- package/dist/esm/modules/config/data/event/before-insert.event.js.map +0 -1
- package/dist/esm/modules/config/data/event/index.d.ts +0 -1
- package/dist/esm/modules/config/data/listener/before-insert.listener.d.ts +0 -19
- package/dist/esm/modules/config/data/listener/before-insert.listener.js +0 -60
- package/dist/esm/modules/config/data/listener/before-insert.listener.js.map +0 -1
- package/dist/esm/modules/config/data/listener/index.d.ts +0 -1
- package/dist/esm/modules/config/data/subscriber/before-insert.subscriber.d.ts +0 -25
- package/dist/esm/modules/config/data/subscriber/before-insert.subscriber.js +0 -74
- package/dist/esm/modules/config/data/subscriber/before-insert.subscriber.js.map +0 -1
- 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';
|