@elsikora/nestjs-crud-config 4.1.0 → 5.0.0-dev.2
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 +33 -26
- package/dist/{esm/external → external}/tslib/tslib.es6.js +0 -1
- package/dist/{esm/index.d.ts → index.d.ts} +2 -2
- package/dist/{esm/index.js → index.js} +1 -1
- package/dist/{esm/modules → modules}/config/config.module.d.ts +1 -1
- package/dist/{esm/modules → modules}/config/config.module.js +4 -3
- package/dist/{cjs/modules → modules}/config/config.service.d.ts +5 -5
- package/dist/{esm/modules → modules}/config/config.service.js +0 -1
- package/dist/{cjs/modules → modules}/config/data/controller.d.ts +4 -4
- package/dist/{esm/modules → modules}/config/data/controller.js +0 -1
- package/dist/{cjs/modules → modules}/config/data/entity/entity.d.ts +4 -4
- package/dist/{esm/modules → modules}/config/data/entity/entity.js +3 -3
- package/dist/modules/config/data/entity/index.d.ts +1 -0
- package/dist/modules/config/data/index.d.ts +3 -0
- package/dist/modules/config/data/interface/index.d.ts +1 -0
- package/dist/{cjs/modules → modules}/config/data/interface/interface.d.ts +1 -1
- package/dist/modules/config/index.d.ts +11 -0
- package/dist/modules/config/interface/index.d.ts +4 -0
- package/dist/{cjs/modules → modules}/config/migration/entity/entity.d.ts +3 -3
- package/dist/{esm/modules → modules}/config/migration/entity/entity.js +4 -4
- package/dist/modules/config/migration/entity/index.d.ts +1 -0
- package/dist/modules/config/migration/enum/index.d.ts +1 -0
- package/dist/{esm/modules → modules}/config/migration/enum/status.js +0 -1
- package/dist/modules/config/migration/index.d.ts +5 -0
- package/dist/{cjs/modules → modules}/config/migration/interface/index.d.ts +3 -3
- package/dist/{esm/modules → modules}/config/migration/interface/interface.d.ts +1 -1
- package/dist/{cjs/modules → modules}/config/migration/interface/migration-definition.interface.d.ts +1 -1
- package/dist/{esm/modules → modules}/config/migration/interface/migration-options.interface.d.ts +1 -1
- package/dist/{esm/modules → modules}/config/migration/migration-runner.service.d.ts +2 -2
- package/dist/{esm/modules → modules}/config/migration/migration-runner.service.js +0 -1
- package/dist/{esm/modules → modules}/config/migration/migration.service.d.ts +3 -3
- package/dist/{esm/modules → modules}/config/migration/migration.service.js +9 -11
- package/dist/{cjs/modules → modules}/config/section/controller.d.ts +4 -4
- package/dist/{esm/modules → modules}/config/section/controller.js +0 -1
- package/dist/{esm/modules → modules}/config/section/entity/entity.d.ts +3 -3
- package/dist/{esm/modules → modules}/config/section/entity/entity.js +3 -3
- package/dist/modules/config/section/entity/index.d.ts +1 -0
- package/dist/modules/config/section/index.d.ts +2 -0
- package/dist/modules/config/section/interface/index.d.ts +1 -0
- package/dist/modules/config/type/index.d.ts +2 -0
- package/dist/{cjs/modules → modules}/config/type/type.d.ts +1 -1
- package/dist/modules/index.d.ts +1 -0
- package/dist/{esm/shared → shared}/constant/api-property.constant.js +0 -1
- package/dist/{esm/shared → shared}/constant/config/data.constant.js +0 -1
- package/dist/shared/constant/config/entity.constant.d.ts +4 -0
- package/dist/shared/constant/config/entity.constant.js +7 -0
- package/dist/shared/constant/config/index.d.ts +4 -0
- package/dist/{esm/shared → shared}/constant/config/migration.constant.js +0 -1
- package/dist/{esm/shared → shared}/constant/config/section.constant.js +0 -1
- package/dist/{esm/shared → shared}/constant/crypto.constant.js +0 -1
- package/dist/shared/constant/index.d.ts +4 -0
- package/dist/{esm/shared → shared}/constant/token.constant.js +0 -1
- package/dist/{esm/shared → shared}/enum/environment.enum.js +0 -1
- package/dist/shared/enum/index.d.ts +6 -0
- package/dist/{esm/shared → shared}/enum/instance-name.enum.js +0 -1
- package/dist/{esm/shared → shared}/enum/service.enum.js +0 -1
- package/dist/shared/index.d.ts +5 -0
- package/dist/{cjs/shared → shared}/interface/config/async-module-properties.interface.d.ts +4 -4
- package/dist/{cjs/shared → shared}/interface/config/controller-options.interface.d.ts +2 -2
- package/dist/{cjs/shared → shared}/interface/config/entity/index.d.ts +3 -3
- package/dist/{esm/shared → shared}/interface/config/entity/options.interface.d.ts +3 -2
- package/dist/{cjs/shared → shared}/interface/config/index.d.ts +8 -8
- package/dist/{esm/shared → shared}/interface/config/options.interface.d.ts +5 -5
- package/dist/{cjs/shared → shared}/interface/config/properties-factory.interface.d.ts +1 -1
- package/dist/{esm/shared → shared}/interface/config/static-options.interface.d.ts +2 -2
- package/dist/shared/interface/index.d.ts +2 -0
- package/dist/{cjs/shared → shared}/interface/utility/create-dynamic-entity/index.d.ts +2 -2
- package/dist/{esm/shared → shared}/interface/utility/create-dynamic-entity/options.interface.d.ts +1 -1
- package/dist/shared/interface/utility/index.d.ts +1 -0
- package/dist/shared/type/index.d.ts +1 -0
- package/dist/{cjs/shared → shared}/utility/create-dynamic/entity.utility.d.ts +2 -2
- package/dist/{esm/shared → shared}/utility/create-dynamic/entity.utility.js +0 -1
- package/dist/shared/utility/create-dynamic/index.d.ts +2 -0
- package/dist/{cjs/shared → shared}/utility/create-dynamic/service.utility.d.ts +1 -1
- package/dist/{esm/shared → shared}/utility/create-dynamic/service.utility.js +0 -1
- package/dist/{cjs/shared → shared}/utility/crypto.utility.d.ts +1 -1
- package/dist/{esm/shared → shared}/utility/crypto.utility.js +0 -1
- package/dist/shared/utility/index.d.ts +4 -0
- package/dist/shared/utility/logger.utility.d.ts +37 -0
- package/dist/{esm/shared → shared}/utility/logger.utility.js +26 -6
- package/package.json +73 -66
- package/dist/cjs/external/tslib/tslib.es6.js +0 -43
- package/dist/cjs/external/tslib/tslib.es6.js.map +0 -1
- package/dist/cjs/index.d.ts +0 -11
- package/dist/cjs/index.js +0 -81
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/modules/config/config.module.d.ts +0 -33
- package/dist/cjs/modules/config/config.module.js +0 -321
- package/dist/cjs/modules/config/config.module.js.map +0 -1
- package/dist/cjs/modules/config/config.service.js +0 -315
- package/dist/cjs/modules/config/config.service.js.map +0 -1
- package/dist/cjs/modules/config/data/controller.js +0 -124
- package/dist/cjs/modules/config/data/controller.js.map +0 -1
- package/dist/cjs/modules/config/data/entity/entity.js +0 -161
- package/dist/cjs/modules/config/data/entity/entity.js.map +0 -1
- package/dist/cjs/modules/config/data/entity/index.d.ts +0 -1
- package/dist/cjs/modules/config/data/index.d.ts +0 -3
- package/dist/cjs/modules/config/data/interface/index.d.ts +0 -1
- package/dist/cjs/modules/config/index.d.ts +0 -11
- package/dist/cjs/modules/config/interface/index.d.ts +0 -4
- package/dist/cjs/modules/config/migration/entity/entity.js +0 -141
- package/dist/cjs/modules/config/migration/entity/entity.js.map +0 -1
- package/dist/cjs/modules/config/migration/entity/index.d.ts +0 -1
- package/dist/cjs/modules/config/migration/enum/index.d.ts +0 -1
- package/dist/cjs/modules/config/migration/enum/status.js +0 -11
- package/dist/cjs/modules/config/migration/enum/status.js.map +0 -1
- package/dist/cjs/modules/config/migration/index.d.ts +0 -5
- package/dist/cjs/modules/config/migration/interface/interface.d.ts +0 -12
- package/dist/cjs/modules/config/migration/interface/migration-options.interface.d.ts +0 -39
- package/dist/cjs/modules/config/migration/migration-runner.service.d.ts +0 -26
- package/dist/cjs/modules/config/migration/migration-runner.service.js +0 -93
- package/dist/cjs/modules/config/migration/migration-runner.service.js.map +0 -1
- package/dist/cjs/modules/config/migration/migration.service.d.ts +0 -79
- package/dist/cjs/modules/config/migration/migration.service.js +0 -377
- package/dist/cjs/modules/config/migration/migration.service.js.map +0 -1
- package/dist/cjs/modules/config/section/controller.js +0 -86
- package/dist/cjs/modules/config/section/controller.js.map +0 -1
- package/dist/cjs/modules/config/section/entity/entity.d.ts +0 -18
- package/dist/cjs/modules/config/section/entity/entity.js +0 -99
- package/dist/cjs/modules/config/section/entity/entity.js.map +0 -1
- package/dist/cjs/modules/config/section/entity/index.d.ts +0 -1
- package/dist/cjs/modules/config/section/index.d.ts +0 -2
- package/dist/cjs/modules/config/section/interface/index.d.ts +0 -1
- package/dist/cjs/modules/config/type/index.d.ts +0 -2
- package/dist/cjs/modules/index.d.ts +0 -1
- package/dist/cjs/package.json +0 -8
- package/dist/cjs/shared/constant/api-property.constant.js +0 -11
- package/dist/cjs/shared/constant/api-property.constant.js.map +0 -1
- package/dist/cjs/shared/constant/config/data.constant.js +0 -17
- package/dist/cjs/shared/constant/config/data.constant.js.map +0 -1
- package/dist/cjs/shared/constant/config/index.d.ts +0 -3
- package/dist/cjs/shared/constant/config/migration.constant.js +0 -15
- package/dist/cjs/shared/constant/config/migration.constant.js.map +0 -1
- package/dist/cjs/shared/constant/config/section.constant.js +0 -13
- package/dist/cjs/shared/constant/config/section.constant.js.map +0 -1
- package/dist/cjs/shared/constant/crypto.constant.js +0 -17
- package/dist/cjs/shared/constant/crypto.constant.js.map +0 -1
- package/dist/cjs/shared/constant/index.d.ts +0 -4
- package/dist/cjs/shared/constant/token.constant.js +0 -24
- package/dist/cjs/shared/constant/token.constant.js.map +0 -1
- package/dist/cjs/shared/enum/environment.enum.js +0 -20
- package/dist/cjs/shared/enum/environment.enum.js.map +0 -1
- package/dist/cjs/shared/enum/index.d.ts +0 -6
- package/dist/cjs/shared/enum/instance-name.enum.js +0 -11
- package/dist/cjs/shared/enum/instance-name.enum.js.map +0 -1
- package/dist/cjs/shared/enum/service.enum.js +0 -224
- package/dist/cjs/shared/enum/service.enum.js.map +0 -1
- package/dist/cjs/shared/index.d.ts +0 -5
- package/dist/cjs/shared/interface/config/entity/options.interface.d.ts +0 -25
- package/dist/cjs/shared/interface/config/options.interface.d.ts +0 -39
- package/dist/cjs/shared/interface/config/static-options.interface.d.ts +0 -45
- package/dist/cjs/shared/interface/index.d.ts +0 -2
- package/dist/cjs/shared/interface/utility/create-dynamic-entity/options.interface.d.ts +0 -15
- package/dist/cjs/shared/interface/utility/index.d.ts +0 -1
- package/dist/cjs/shared/type/index.d.ts +0 -1
- package/dist/cjs/shared/utility/create-dynamic/entity.utility.js +0 -68
- package/dist/cjs/shared/utility/create-dynamic/entity.utility.js.map +0 -1
- package/dist/cjs/shared/utility/create-dynamic/index.d.ts +0 -2
- package/dist/cjs/shared/utility/create-dynamic/service.utility.js +0 -35
- package/dist/cjs/shared/utility/create-dynamic/service.utility.js.map +0 -1
- package/dist/cjs/shared/utility/crypto.utility.js +0 -133
- package/dist/cjs/shared/utility/crypto.utility.js.map +0 -1
- package/dist/cjs/shared/utility/index.d.ts +0 -4
- package/dist/cjs/shared/utility/logger.utility.d.ts +0 -21
- package/dist/cjs/shared/utility/logger.utility.js +0 -68
- package/dist/cjs/shared/utility/logger.utility.js.map +0 -1
- package/dist/esm/external/tslib/tslib.es6.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/modules/config/config.module.js.map +0 -1
- package/dist/esm/modules/config/config.service.d.ts +0 -56
- package/dist/esm/modules/config/config.service.js.map +0 -1
- package/dist/esm/modules/config/data/controller.d.ts +0 -11
- package/dist/esm/modules/config/data/controller.js.map +0 -1
- package/dist/esm/modules/config/data/entity/entity.d.ts +0 -25
- package/dist/esm/modules/config/data/entity/entity.js.map +0 -1
- package/dist/esm/modules/config/data/entity/index.d.ts +0 -1
- package/dist/esm/modules/config/data/index.d.ts +0 -3
- package/dist/esm/modules/config/data/interface/index.d.ts +0 -1
- package/dist/esm/modules/config/data/interface/interface.d.ts +0 -13
- package/dist/esm/modules/config/index.d.ts +0 -11
- package/dist/esm/modules/config/interface/delete-options.interface.d.ts +0 -24
- package/dist/esm/modules/config/interface/get-list-options.interface.d.ts +0 -24
- package/dist/esm/modules/config/interface/get-options.interface.d.ts +0 -32
- package/dist/esm/modules/config/interface/index.d.ts +0 -4
- package/dist/esm/modules/config/interface/set-options.interface.d.ts +0 -36
- package/dist/esm/modules/config/migration/entity/entity.d.ts +0 -16
- package/dist/esm/modules/config/migration/entity/entity.js.map +0 -1
- package/dist/esm/modules/config/migration/entity/index.d.ts +0 -1
- package/dist/esm/modules/config/migration/enum/index.d.ts +0 -1
- package/dist/esm/modules/config/migration/enum/status.d.ts +0 -7
- package/dist/esm/modules/config/migration/enum/status.js.map +0 -1
- package/dist/esm/modules/config/migration/index.d.ts +0 -5
- package/dist/esm/modules/config/migration/interface/index.d.ts +0 -3
- package/dist/esm/modules/config/migration/interface/migration-definition.interface.d.ts +0 -31
- package/dist/esm/modules/config/migration/migration-runner.service.js.map +0 -1
- package/dist/esm/modules/config/migration/migration.service.js.map +0 -1
- package/dist/esm/modules/config/section/controller.d.ts +0 -11
- package/dist/esm/modules/config/section/controller.js.map +0 -1
- package/dist/esm/modules/config/section/entity/entity.js.map +0 -1
- package/dist/esm/modules/config/section/entity/index.d.ts +0 -1
- package/dist/esm/modules/config/section/index.d.ts +0 -2
- package/dist/esm/modules/config/section/interface/index.d.ts +0 -1
- package/dist/esm/modules/config/section/interface/interface.d.ts +0 -8
- package/dist/esm/modules/config/type/index.d.ts +0 -2
- package/dist/esm/modules/config/type/item.type.d.ts +0 -1
- package/dist/esm/modules/config/type/type.d.ts +0 -2
- package/dist/esm/modules/index.d.ts +0 -1
- package/dist/esm/package.json +0 -8
- package/dist/esm/shared/constant/api-property.constant.d.ts +0 -4
- package/dist/esm/shared/constant/api-property.constant.js.map +0 -1
- package/dist/esm/shared/constant/config/data.constant.d.ts +0 -7
- package/dist/esm/shared/constant/config/data.constant.js.map +0 -1
- package/dist/esm/shared/constant/config/index.d.ts +0 -3
- package/dist/esm/shared/constant/config/migration.constant.d.ts +0 -6
- package/dist/esm/shared/constant/config/migration.constant.js.map +0 -1
- package/dist/esm/shared/constant/config/section.constant.d.ts +0 -5
- package/dist/esm/shared/constant/config/section.constant.js.map +0 -1
- package/dist/esm/shared/constant/crypto.constant.d.ts +0 -7
- package/dist/esm/shared/constant/crypto.constant.js.map +0 -1
- package/dist/esm/shared/constant/index.d.ts +0 -4
- package/dist/esm/shared/constant/token.constant.d.ts +0 -10
- package/dist/esm/shared/constant/token.constant.js.map +0 -1
- package/dist/esm/shared/enum/environment.enum.d.ts +0 -16
- package/dist/esm/shared/enum/environment.enum.js.map +0 -1
- package/dist/esm/shared/enum/index.d.ts +0 -6
- package/dist/esm/shared/enum/instance-name.enum.d.ts +0 -7
- package/dist/esm/shared/enum/instance-name.enum.js.map +0 -1
- package/dist/esm/shared/enum/service.enum.d.ts +0 -220
- package/dist/esm/shared/enum/service.enum.js.map +0 -1
- package/dist/esm/shared/index.d.ts +0 -5
- package/dist/esm/shared/interface/config/async-module-properties.interface.d.ts +0 -47
- package/dist/esm/shared/interface/config/cache-options.interface.d.ts +0 -18
- package/dist/esm/shared/interface/config/controller-options.interface.d.ts +0 -32
- package/dist/esm/shared/interface/config/encryption-options.interface.d.ts +0 -19
- package/dist/esm/shared/interface/config/entity/data-options.interface.d.ts +0 -25
- package/dist/esm/shared/interface/config/entity/index.d.ts +0 -3
- package/dist/esm/shared/interface/config/entity/section-options.interface.d.ts +0 -17
- package/dist/esm/shared/interface/config/index.d.ts +0 -8
- package/dist/esm/shared/interface/config/properties-factory.interface.d.ts +0 -11
- package/dist/esm/shared/interface/index.d.ts +0 -2
- package/dist/esm/shared/interface/utility/create-dynamic-entity/index.d.ts +0 -2
- package/dist/esm/shared/interface/utility/create-dynamic-entity/relation-options.interface.d.ts +0 -9
- package/dist/esm/shared/interface/utility/index.d.ts +0 -1
- package/dist/esm/shared/type/dynamic-entity.type.d.ts +0 -2
- package/dist/esm/shared/type/index.d.ts +0 -1
- package/dist/esm/shared/utility/create-dynamic/entity.utility.d.ts +0 -11
- package/dist/esm/shared/utility/create-dynamic/entity.utility.js.map +0 -1
- package/dist/esm/shared/utility/create-dynamic/index.d.ts +0 -2
- package/dist/esm/shared/utility/create-dynamic/service.utility.d.ts +0 -10
- package/dist/esm/shared/utility/create-dynamic/service.utility.js.map +0 -1
- package/dist/esm/shared/utility/crypto.utility.d.ts +0 -37
- package/dist/esm/shared/utility/crypto.utility.js.map +0 -1
- package/dist/esm/shared/utility/index.d.ts +0 -4
- package/dist/esm/shared/utility/logger.utility.d.ts +0 -21
- package/dist/esm/shared/utility/logger.utility.js.map +0 -1
- /package/dist/{cjs/modules → modules}/config/interface/delete-options.interface.d.ts +0 -0
- /package/dist/{cjs/modules → modules}/config/interface/get-list-options.interface.d.ts +0 -0
- /package/dist/{cjs/modules → modules}/config/interface/get-options.interface.d.ts +0 -0
- /package/dist/{cjs/modules → modules}/config/interface/set-options.interface.d.ts +0 -0
- /package/dist/{cjs/modules → modules}/config/migration/enum/status.d.ts +0 -0
- /package/dist/{cjs/modules → modules}/config/section/interface/interface.d.ts +0 -0
- /package/dist/{cjs/modules → modules}/config/type/item.type.d.ts +0 -0
- /package/dist/{cjs/shared → shared}/constant/api-property.constant.d.ts +0 -0
- /package/dist/{cjs/shared → shared}/constant/config/data.constant.d.ts +0 -0
- /package/dist/{cjs/shared → shared}/constant/config/migration.constant.d.ts +0 -0
- /package/dist/{cjs/shared → shared}/constant/config/section.constant.d.ts +0 -0
- /package/dist/{cjs/shared → shared}/constant/crypto.constant.d.ts +0 -0
- /package/dist/{cjs/shared → shared}/constant/token.constant.d.ts +0 -0
- /package/dist/{cjs/shared → shared}/enum/environment.enum.d.ts +0 -0
- /package/dist/{cjs/shared → shared}/enum/instance-name.enum.d.ts +0 -0
- /package/dist/{cjs/shared → shared}/enum/service.enum.d.ts +0 -0
- /package/dist/{cjs/shared → shared}/interface/config/cache-options.interface.d.ts +0 -0
- /package/dist/{cjs/shared → shared}/interface/config/encryption-options.interface.d.ts +0 -0
- /package/dist/{cjs/shared → shared}/interface/config/entity/data-options.interface.d.ts +0 -0
- /package/dist/{cjs/shared → shared}/interface/config/entity/section-options.interface.d.ts +0 -0
- /package/dist/{cjs/shared → shared}/interface/utility/create-dynamic-entity/relation-options.interface.d.ts +0 -0
- /package/dist/{cjs/shared → shared}/type/dynamic-entity.type.d.ts +0 -0
|
@@ -1,377 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var tslib_es6 = require('../../../external/tslib/tslib.es6.js');
|
|
4
|
-
var nestjsCrudAutomator = require('@elsikora/nestjs-crud-automator');
|
|
5
|
-
var config_service = require('../config.service.js');
|
|
6
|
-
var common = require('@nestjs/common');
|
|
7
|
-
var migration_constant = require('../../../shared/constant/config/migration.constant.js');
|
|
8
|
-
var token_constant = require('../../../shared/constant/token.constant.js');
|
|
9
|
-
var typeorm = require('typeorm');
|
|
10
|
-
var status = require('./enum/status.js');
|
|
11
|
-
|
|
12
|
-
var ConfigMigrationService_1;
|
|
13
|
-
/**
|
|
14
|
-
* Service responsible for coordinating and tracking execution of migrations.
|
|
15
|
-
* @see {@link https://elsikora.com/docs/nestjs-crud-config/migration-system | Migration System}
|
|
16
|
-
* @see {@link https://elsikora.com/docs/nestjs-crud-config/api-reference/classes/config-migration-service | API Reference - ConfigMigrationService}
|
|
17
|
-
*/
|
|
18
|
-
exports.ConfigMigrationService = ConfigMigrationService_1 = class ConfigMigrationService {
|
|
19
|
-
dataSource;
|
|
20
|
-
options;
|
|
21
|
-
configService;
|
|
22
|
-
LOGGER = new common.Logger(ConfigMigrationService_1.name);
|
|
23
|
-
MIGRATION_SERVICE;
|
|
24
|
-
constructor(dataSource, options, configService, migrationService) {
|
|
25
|
-
this.dataSource = dataSource;
|
|
26
|
-
this.options = options;
|
|
27
|
-
this.configService = configService;
|
|
28
|
-
this.MIGRATION_SERVICE = migrationService;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Cleans up failed migrations
|
|
32
|
-
* @param {string} [migrationName] - Optional migration name to clean up
|
|
33
|
-
* @returns {Promise<void>} Promise that resolves when cleanup is complete
|
|
34
|
-
*/
|
|
35
|
-
async cleanupFailedMigrations(migrationName) {
|
|
36
|
-
try {
|
|
37
|
-
const whereCondition = migrationName
|
|
38
|
-
? { name: migrationName, status: status.EConfigMigrationStatus.FAILED }
|
|
39
|
-
: { status: status.EConfigMigrationStatus.FAILED };
|
|
40
|
-
// Use bulk delete operation to avoid N+1 problem
|
|
41
|
-
const result = await this.MIGRATION_SERVICE.getList({ where: whereCondition });
|
|
42
|
-
if (result.items.length === 0) {
|
|
43
|
-
this.LOGGER.verbose("No failed migrations found to clean up");
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
// Delete all failed migrations in bulk
|
|
47
|
-
const migrationIds = result.items.map((m) => m.id);
|
|
48
|
-
for (const id of migrationIds) {
|
|
49
|
-
await this.MIGRATION_SERVICE.delete({ id });
|
|
50
|
-
}
|
|
51
|
-
this.LOGGER.verbose(`Cleaned up ${result.items.length} failed migration(s): ${result.items.map((m) => m.name).join(", ")}`);
|
|
52
|
-
}
|
|
53
|
-
catch (error) {
|
|
54
|
-
this.LOGGER.error("Failed to cleanup failed migrations:", error);
|
|
55
|
-
throw error;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Cleans up stuck migrations (running for too long)
|
|
60
|
-
* @param {number} [timeoutMinutes] - Minutes after which a RUNNING migration is considered stuck
|
|
61
|
-
* @returns {Promise<void>} Promise that resolves when cleanup is complete
|
|
62
|
-
*/
|
|
63
|
-
async cleanupStuckMigrations(timeoutMinutes = migration_constant.CONFIG_MIGRATION_CONSTANT.DEFAULT_STUCK_MIGRATION_TIMEOUT_MINUTES) {
|
|
64
|
-
try {
|
|
65
|
-
const cutoffTime = new Date();
|
|
66
|
-
cutoffTime.setMinutes(cutoffTime.getMinutes() - timeoutMinutes);
|
|
67
|
-
const runningMigrations = await this.MIGRATION_SERVICE.getList({
|
|
68
|
-
where: { status: status.EConfigMigrationStatus.RUNNING },
|
|
69
|
-
});
|
|
70
|
-
const stuckMigrations = runningMigrations.items.filter((migration) => {
|
|
71
|
-
return migration.startedAt && new Date(migration.startedAt) < cutoffTime;
|
|
72
|
-
});
|
|
73
|
-
if (stuckMigrations.length === 0) {
|
|
74
|
-
this.LOGGER.verbose("No stuck migrations found");
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
this.LOGGER.warn(`Found ${stuckMigrations.length} stuck migration(s): ${stuckMigrations.map((m) => m.name).join(", ")}`);
|
|
78
|
-
// Mark stuck migrations as STUCK status
|
|
79
|
-
for (const migration of stuckMigrations) {
|
|
80
|
-
await this.MIGRATION_SERVICE.update({ id: migration.id }, {
|
|
81
|
-
failedAt: new Date(),
|
|
82
|
-
status: status.EConfigMigrationStatus.STUCK,
|
|
83
|
-
});
|
|
84
|
-
this.LOGGER.verbose(`Marked migration as stuck: ${migration.name}`);
|
|
85
|
-
}
|
|
86
|
-
this.LOGGER.warn(`Marked ${stuckMigrations.length} migration(s) as stuck. You may need to investigate and clean them up manually.`);
|
|
87
|
-
}
|
|
88
|
-
catch (error) {
|
|
89
|
-
this.LOGGER.error("Failed to cleanup stuck migrations:", error);
|
|
90
|
-
throw error;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Executes pending migrations
|
|
95
|
-
* @param {Array<IConfigMigrationDefinition>} migrations - Array of migration definitions
|
|
96
|
-
* @param {boolean} [useTransaction] - Whether to use the named crud-config-migrations owner; defaults to true
|
|
97
|
-
* @param {EntityManager} [ownerManager] - Existing active Automator owner manager; requires useTransaction
|
|
98
|
-
* @returns {Promise<void>} Promise that resolves when all migrations are executed
|
|
99
|
-
*/
|
|
100
|
-
async executeMigrations(migrations, useTransaction = true, ownerManager) {
|
|
101
|
-
if (ownerManager !== undefined) {
|
|
102
|
-
if (!useTransaction) {
|
|
103
|
-
throw new Error("Owner manager requires transaction-enabled migrations");
|
|
104
|
-
}
|
|
105
|
-
await this.runWithOwnerManager(ownerManager, async () => {
|
|
106
|
-
await this.executePendingMigrations(migrations, true, ownerManager);
|
|
107
|
-
});
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
await this.executePendingMigrations(migrations, useTransaction);
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Gets list of executed migration names
|
|
114
|
-
* @returns {Promise<string[]>} Promise that resolves to list of executed migration names
|
|
115
|
-
*/
|
|
116
|
-
async getExecutedMigrationList() {
|
|
117
|
-
const executedMigrations = await this.getExecutedMigrations();
|
|
118
|
-
return executedMigrations.map((migration) => migration.name);
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Gets list of executed migrations
|
|
122
|
-
* @returns {Promise<IConfigMigration[]>} Promise that resolves to list of executed migrations
|
|
123
|
-
*/
|
|
124
|
-
async getExecutedMigrations() {
|
|
125
|
-
try {
|
|
126
|
-
const result = await this.MIGRATION_SERVICE.getList({
|
|
127
|
-
order: { name: "ASC" },
|
|
128
|
-
});
|
|
129
|
-
return result.items;
|
|
130
|
-
}
|
|
131
|
-
catch (error) {
|
|
132
|
-
const errorMessage = `Failed to get executed migrations: ${error instanceof Error ? error.message : String(error)}`;
|
|
133
|
-
this.LOGGER.error(errorMessage);
|
|
134
|
-
throw error;
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Checks if a migration has been executed
|
|
139
|
-
* @param {string} migrationName - The name of the migration to check
|
|
140
|
-
* @returns {Promise<boolean>} Promise that resolves to true if migration is executed
|
|
141
|
-
*/
|
|
142
|
-
async isMigrationExecuted(migrationName) {
|
|
143
|
-
try {
|
|
144
|
-
const result = await this.MIGRATION_SERVICE.getList({
|
|
145
|
-
where: { name: migrationName },
|
|
146
|
-
});
|
|
147
|
-
return result.items.length > 0 && result.items[0]?.status === status.EConfigMigrationStatus.COMPLETED;
|
|
148
|
-
}
|
|
149
|
-
catch (error) {
|
|
150
|
-
this.LOGGER.error(`Failed to check if migration '${migrationName}' is executed:`, error);
|
|
151
|
-
throw error;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
onModuleInit() {
|
|
155
|
-
// Remove the dynamic entity creation - we already have the service injected
|
|
156
|
-
this.LOGGER.log("Migration service initialized");
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Rolls back a migration inside the named owner or a supplied active Automator owner
|
|
160
|
-
* @param {string} migrationName - The name of the migration to roll back
|
|
161
|
-
* @param {Array<IConfigMigrationDefinition>} migrations - Array of migration definitions
|
|
162
|
-
* @param {EntityManager} [ownerManager] - Existing active Automator owner manager
|
|
163
|
-
* @returns {Promise<void>} Promise that resolves when rollback is complete
|
|
164
|
-
*/
|
|
165
|
-
async rollbackMigration(migrationName, migrations, ownerManager) {
|
|
166
|
-
if (ownerManager !== undefined) {
|
|
167
|
-
await this.runWithOwnerManager(ownerManager, async () => {
|
|
168
|
-
await this.executeRollback(migrationName, migrations, ownerManager);
|
|
169
|
-
});
|
|
170
|
-
return;
|
|
171
|
-
}
|
|
172
|
-
await this.executeRollback(migrationName, migrations);
|
|
173
|
-
}
|
|
174
|
-
async executePendingMigrations(migrations, useTransaction, ownerManager) {
|
|
175
|
-
if (!migrations || migrations.length === 0) {
|
|
176
|
-
this.LOGGER.verbose("No migrations to execute");
|
|
177
|
-
return;
|
|
178
|
-
}
|
|
179
|
-
// Validate migrations
|
|
180
|
-
this.validateMigrations(migrations);
|
|
181
|
-
// Sort migrations by name to ensure consistent order
|
|
182
|
-
const sortedMigrations = [];
|
|
183
|
-
for (const migration of migrations) {
|
|
184
|
-
const insertIndex = sortedMigrations.findIndex((item) => migration.name.localeCompare(item.name) < 0);
|
|
185
|
-
if (insertIndex === -1) {
|
|
186
|
-
sortedMigrations.push(migration);
|
|
187
|
-
}
|
|
188
|
-
else {
|
|
189
|
-
sortedMigrations.splice(insertIndex, 0, migration);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
this.LOGGER.verbose(`Starting migration execution for ${sortedMigrations.length} migrations`);
|
|
193
|
-
// Clean up stuck migrations before starting new ones
|
|
194
|
-
const timeoutMinutes = this.options.migrationOptions?.stuckMigrationTimeoutMinutes ??
|
|
195
|
-
migration_constant.CONFIG_MIGRATION_CONSTANT.DEFAULT_STUCK_MIGRATION_TIMEOUT_MINUTES;
|
|
196
|
-
await this.cleanupStuckMigrations(timeoutMinutes);
|
|
197
|
-
const executedMigrations = await this.getExecutedMigrations();
|
|
198
|
-
const completedMigrationNames = new Set(executedMigrations
|
|
199
|
-
.filter((m) => m.status === status.EConfigMigrationStatus.COMPLETED)
|
|
200
|
-
.map((m) => m.name));
|
|
201
|
-
// Also check for currently running migrations to avoid conflicts
|
|
202
|
-
const runningMigrationNames = new Set(executedMigrations
|
|
203
|
-
.filter((m) => m.status === status.EConfigMigrationStatus.RUNNING)
|
|
204
|
-
.map((m) => m.name));
|
|
205
|
-
const pendingMigrations = sortedMigrations.filter((migration) => !completedMigrationNames.has(migration.name) && !runningMigrationNames.has(migration.name));
|
|
206
|
-
if (pendingMigrations.length === 0) {
|
|
207
|
-
this.LOGGER.verbose("No pending migrations to execute");
|
|
208
|
-
return;
|
|
209
|
-
}
|
|
210
|
-
this.LOGGER.verbose(`Found ${pendingMigrations.length} pending migration(s): ${pendingMigrations.map((m) => m.name).join(", ")}`);
|
|
211
|
-
if (ownerManager !== undefined) {
|
|
212
|
-
for (const migration of pendingMigrations) {
|
|
213
|
-
await this.executeSingleMigration(migration, ownerManager);
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
else if (useTransaction) {
|
|
217
|
-
await nestjsCrudAutomator.ApiFunctionTransactionScope.runWithDataSource(this.dataSource, { name: "crud-config-migrations" }, async (transactionalEntityManager) => {
|
|
218
|
-
for (const migration of pendingMigrations) {
|
|
219
|
-
await this.executeSingleMigration(migration, transactionalEntityManager);
|
|
220
|
-
}
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
else {
|
|
224
|
-
for (const migration of pendingMigrations) {
|
|
225
|
-
await this.executeSingleMigration(migration);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
this.LOGGER.verbose(`Successfully executed ${pendingMigrations.length} migration(s): ${pendingMigrations.map((m) => m.name).join(", ")}`);
|
|
229
|
-
}
|
|
230
|
-
async executeRollback(migrationName, migrations, ownerManager) {
|
|
231
|
-
const migration = migrations.find((m) => m.name === migrationName);
|
|
232
|
-
if (!migration) {
|
|
233
|
-
throw new Error(`Migration '${migrationName}' not found`);
|
|
234
|
-
}
|
|
235
|
-
if (!migration.down) {
|
|
236
|
-
throw new Error(`Migration '${migrationName}' does not have a down method`);
|
|
237
|
-
}
|
|
238
|
-
const startTime = new Date();
|
|
239
|
-
try {
|
|
240
|
-
this.LOGGER.verbose(`Starting rollback for migration: ${migration.name}`);
|
|
241
|
-
const executeDown = async (transactionalEntityManager) => {
|
|
242
|
-
try {
|
|
243
|
-
// Execute the down method
|
|
244
|
-
await migration.down?.(this.configService, transactionalEntityManager);
|
|
245
|
-
// Delete the migration record in the rollback transaction context.
|
|
246
|
-
await this.MIGRATION_SERVICE.delete({ name: migrationName });
|
|
247
|
-
this.LOGGER.verbose(`Successfully rolled back migration: ${migration.name}`);
|
|
248
|
-
}
|
|
249
|
-
catch (downError) {
|
|
250
|
-
const errorMessage = `Failed to rollback migration '${migration.name}': ${downError instanceof Error ? downError.message : String(downError)}`;
|
|
251
|
-
this.LOGGER.error(errorMessage);
|
|
252
|
-
// Don't update the migration record on rollback failure
|
|
253
|
-
throw downError;
|
|
254
|
-
}
|
|
255
|
-
};
|
|
256
|
-
if (ownerManager === undefined) {
|
|
257
|
-
await nestjsCrudAutomator.ApiFunctionTransactionScope.runWithDataSource(this.dataSource, { name: "crud-config-migrations" }, executeDown);
|
|
258
|
-
}
|
|
259
|
-
else {
|
|
260
|
-
await executeDown(ownerManager);
|
|
261
|
-
}
|
|
262
|
-
const completedTime = new Date();
|
|
263
|
-
this.LOGGER.verbose(`Migration rollback completed: ${migration.name} (took ${completedTime.getTime() - startTime.getTime()}ms)`);
|
|
264
|
-
}
|
|
265
|
-
catch (error) {
|
|
266
|
-
const duration = Date.now() - startTime.getTime();
|
|
267
|
-
this.LOGGER.error(`Migration rollback failed: ${migration.name} (took ${duration}ms)`, error);
|
|
268
|
-
const failedTime = new Date();
|
|
269
|
-
// A failed participant SQL operation can leave the caller's transaction aborted.
|
|
270
|
-
try {
|
|
271
|
-
await this.MIGRATION_SERVICE.update({ name: migrationName }, {
|
|
272
|
-
failedAt: failedTime,
|
|
273
|
-
status: status.EConfigMigrationStatus.FAILED,
|
|
274
|
-
});
|
|
275
|
-
}
|
|
276
|
-
catch (updateError) {
|
|
277
|
-
if (ownerManager === undefined) {
|
|
278
|
-
throw updateError;
|
|
279
|
-
}
|
|
280
|
-
this.LOGGER.error(`Failed to update migration status for ${migration.name}:`, updateError);
|
|
281
|
-
}
|
|
282
|
-
throw error;
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
/**
|
|
286
|
-
* Executes a single migration
|
|
287
|
-
* @param {IConfigMigrationDefinition} migration - Migration definition
|
|
288
|
-
* @param {EntityManager} [transactionalEntityManager] - Optional transaction manager
|
|
289
|
-
* @returns {Promise<void>} Promise that resolves when migration is executed
|
|
290
|
-
*/
|
|
291
|
-
async executeSingleMigration(migration, transactionalEntityManager) {
|
|
292
|
-
this.LOGGER.verbose(`Executing migration: ${migration.name}`);
|
|
293
|
-
// First, record the migration as started (to prevent race conditions)
|
|
294
|
-
const startTime = new Date();
|
|
295
|
-
const migrationRecord = await this.MIGRATION_SERVICE.create({
|
|
296
|
-
name: migration.name,
|
|
297
|
-
startedAt: startTime,
|
|
298
|
-
status: status.EConfigMigrationStatus.RUNNING,
|
|
299
|
-
});
|
|
300
|
-
try {
|
|
301
|
-
// Execute the migration
|
|
302
|
-
await migration.up(this.configService, transactionalEntityManager);
|
|
303
|
-
// Update status to completed with executedAt timestamp
|
|
304
|
-
const completedTime = new Date();
|
|
305
|
-
await this.MIGRATION_SERVICE.update({ id: migrationRecord.id }, {
|
|
306
|
-
executedAt: completedTime,
|
|
307
|
-
status: status.EConfigMigrationStatus.COMPLETED,
|
|
308
|
-
});
|
|
309
|
-
const duration = completedTime.getTime() - startTime.getTime();
|
|
310
|
-
this.LOGGER.verbose(`Successfully executed migration: ${migration.name} (${duration}ms)`);
|
|
311
|
-
}
|
|
312
|
-
catch (error) {
|
|
313
|
-
this.LOGGER.error(`Failed to execute migration: ${migration.name}`, error);
|
|
314
|
-
// Mark migration as failed with failedAt timestamp
|
|
315
|
-
const failedTime = new Date();
|
|
316
|
-
try {
|
|
317
|
-
await this.MIGRATION_SERVICE.update({ id: migrationRecord.id }, {
|
|
318
|
-
failedAt: failedTime,
|
|
319
|
-
status: status.EConfigMigrationStatus.FAILED,
|
|
320
|
-
});
|
|
321
|
-
}
|
|
322
|
-
catch (updateError) {
|
|
323
|
-
this.LOGGER.error(`Failed to update migration status for ${migration.name}:`, updateError);
|
|
324
|
-
}
|
|
325
|
-
throw error;
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
async runWithOwnerManager(ownerManager, callback) {
|
|
329
|
-
const queryRunner = ownerManager.queryRunner;
|
|
330
|
-
if (
|
|
331
|
-
// eslint-disable-next-line @elsikora/sonar/deprecation -- The supported TypeORM 0.3 peer exposes DataSource identity as connection.
|
|
332
|
-
ownerManager.connection !== this.dataSource ||
|
|
333
|
-
// eslint-disable-next-line @elsikora/sonar/deprecation -- The supported TypeORM 0.3 QueryRunner exposes DataSource identity as connection.
|
|
334
|
-
queryRunner?.connection !== this.dataSource ||
|
|
335
|
-
queryRunner.manager !== ownerManager ||
|
|
336
|
-
!queryRunner.isTransactionActive ||
|
|
337
|
-
queryRunner.isReleased) {
|
|
338
|
-
throw new Error("Migration participation requires the active owner manager for this DataSource");
|
|
339
|
-
}
|
|
340
|
-
await nestjsCrudAutomator.ApiFunctionTransactionScope.runWithEntityManager(ownerManager, callback);
|
|
341
|
-
}
|
|
342
|
-
/**
|
|
343
|
-
* Validates migrations for duplicates and naming issues
|
|
344
|
-
* @param {Array<IConfigMigrationDefinition>} migrations - Array of migration definitions
|
|
345
|
-
*/
|
|
346
|
-
validateMigrations(migrations) {
|
|
347
|
-
// Check for duplicate names
|
|
348
|
-
const migrationNames = migrations.map((m) => m.name);
|
|
349
|
-
const duplicates = migrationNames.filter((name, index) => migrationNames.indexOf(name) !== index);
|
|
350
|
-
if (duplicates.length > 0) {
|
|
351
|
-
throw new Error(`Duplicate migration names found: ${duplicates.join(", ")}`);
|
|
352
|
-
}
|
|
353
|
-
// Check for invalid names (cannot be empty or contain only whitespace)
|
|
354
|
-
const invalidNames = migrationNames.filter((name) => !name?.trim());
|
|
355
|
-
if (invalidNames.length > 0) {
|
|
356
|
-
throw new Error("Migration names cannot be empty or contain only whitespace");
|
|
357
|
-
}
|
|
358
|
-
// Check for missing required methods
|
|
359
|
-
const invalidMigrations = migrations.filter((m) => !m.up || typeof m.up !== "function");
|
|
360
|
-
if (invalidMigrations.length > 0) {
|
|
361
|
-
throw new Error(`Migrations missing required 'up' method: ${invalidMigrations.map((m) => m.name).join(", ")}`);
|
|
362
|
-
}
|
|
363
|
-
// Check for names that are too long
|
|
364
|
-
const tooLongNames = migrationNames.filter((name) => name.length > migration_constant.CONFIG_MIGRATION_CONSTANT.MAX_NAME_LENGTH);
|
|
365
|
-
if (tooLongNames.length > 0) {
|
|
366
|
-
throw new Error(`Migration names too long (max ${migration_constant.CONFIG_MIGRATION_CONSTANT.MAX_NAME_LENGTH} characters): ${tooLongNames.join(", ")}`);
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
|
-
};
|
|
370
|
-
exports.ConfigMigrationService = ConfigMigrationService_1 = tslib_es6.__decorate([
|
|
371
|
-
common.Injectable(),
|
|
372
|
-
tslib_es6.__param(0, common.Inject(typeorm.DataSource)),
|
|
373
|
-
tslib_es6.__param(1, common.Inject(token_constant.TOKEN_CONSTANT.CONFIG_OPTIONS)),
|
|
374
|
-
tslib_es6.__param(3, common.Inject(token_constant.TOKEN_CONSTANT.CONFIG_MIGRATION_SERVICE)),
|
|
375
|
-
tslib_es6.__metadata("design:paramtypes", [typeorm.DataSource, Object, config_service.CrudConfigService, Function])
|
|
376
|
-
], exports.ConfigMigrationService);
|
|
377
|
-
//# sourceMappingURL=migration.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"migration.service.js","sources":["../../../../../../src/modules/config/migration/migration.service.ts"],"sourcesContent":[null],"names":["ConfigMigrationService","Logger","EConfigMigrationStatus","CONFIG_MIGRATION_CONSTANT","ApiFunctionTransactionScope","__decorate","Injectable","__param","Inject","DataSource","TOKEN_CONSTANT","__metadata","CrudConfigService"],"mappings":"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"}
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var tslib_es6 = require('../../../external/tslib/tslib.es6.js');
|
|
4
|
-
var nestjsCrudAutomator = require('@elsikora/nestjs-crud-automator');
|
|
5
|
-
var common = require('@nestjs/common');
|
|
6
|
-
var token_constant = require('../../../shared/constant/token.constant.js');
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Factory to create dynamic ConfigSection controller with the correct entity
|
|
10
|
-
* @param {TDynamicEntity} entity The entity type to create controller for
|
|
11
|
-
* @param {IConfigControllerOptions} [options] Controller configuration options
|
|
12
|
-
* @returns {Type} The dynamic controller class
|
|
13
|
-
*/
|
|
14
|
-
function createDynamicSectionController(entity, options) {
|
|
15
|
-
const defaultConfig = {
|
|
16
|
-
entity,
|
|
17
|
-
name: "ConfigSection",
|
|
18
|
-
path: "config/section",
|
|
19
|
-
routes: {
|
|
20
|
-
[nestjsCrudAutomator.EApiRouteType.CREATE]: { generation: { isEnabled: true } },
|
|
21
|
-
[nestjsCrudAutomator.EApiRouteType.DELETE]: { generation: { isEnabled: true } },
|
|
22
|
-
[nestjsCrudAutomator.EApiRouteType.GET]: { generation: { isEnabled: true } },
|
|
23
|
-
[nestjsCrudAutomator.EApiRouteType.GET_LIST]: { generation: { isEnabled: true } },
|
|
24
|
-
[nestjsCrudAutomator.EApiRouteType.UPDATE]: { generation: { isEnabled: true } },
|
|
25
|
-
},
|
|
26
|
-
};
|
|
27
|
-
const customRoutes = options?.properties?.routes;
|
|
28
|
-
const createRoute = Object.assign({}, defaultConfig.routes[nestjsCrudAutomator.EApiRouteType.CREATE], customRoutes?.[nestjsCrudAutomator.EApiRouteType.CREATE], {
|
|
29
|
-
generation: {
|
|
30
|
-
...defaultConfig.routes[nestjsCrudAutomator.EApiRouteType.CREATE]?.generation,
|
|
31
|
-
...customRoutes?.[nestjsCrudAutomator.EApiRouteType.CREATE]?.generation,
|
|
32
|
-
},
|
|
33
|
-
});
|
|
34
|
-
const deleteRoute = Object.assign({}, defaultConfig.routes[nestjsCrudAutomator.EApiRouteType.DELETE], customRoutes?.[nestjsCrudAutomator.EApiRouteType.DELETE], {
|
|
35
|
-
generation: {
|
|
36
|
-
...defaultConfig.routes[nestjsCrudAutomator.EApiRouteType.DELETE]?.generation,
|
|
37
|
-
...customRoutes?.[nestjsCrudAutomator.EApiRouteType.DELETE]?.generation,
|
|
38
|
-
},
|
|
39
|
-
});
|
|
40
|
-
const getRoute = Object.assign({}, defaultConfig.routes[nestjsCrudAutomator.EApiRouteType.GET], customRoutes?.[nestjsCrudAutomator.EApiRouteType.GET], {
|
|
41
|
-
generation: {
|
|
42
|
-
...defaultConfig.routes[nestjsCrudAutomator.EApiRouteType.GET]?.generation,
|
|
43
|
-
...customRoutes?.[nestjsCrudAutomator.EApiRouteType.GET]?.generation,
|
|
44
|
-
},
|
|
45
|
-
});
|
|
46
|
-
const getListRoute = Object.assign({}, defaultConfig.routes[nestjsCrudAutomator.EApiRouteType.GET_LIST], customRoutes?.[nestjsCrudAutomator.EApiRouteType.GET_LIST], {
|
|
47
|
-
generation: {
|
|
48
|
-
...defaultConfig.routes[nestjsCrudAutomator.EApiRouteType.GET_LIST]?.generation,
|
|
49
|
-
...customRoutes?.[nestjsCrudAutomator.EApiRouteType.GET_LIST]?.generation,
|
|
50
|
-
},
|
|
51
|
-
});
|
|
52
|
-
const updateRoute = Object.assign({}, defaultConfig.routes[nestjsCrudAutomator.EApiRouteType.UPDATE], customRoutes?.[nestjsCrudAutomator.EApiRouteType.UPDATE], {
|
|
53
|
-
generation: {
|
|
54
|
-
...defaultConfig.routes[nestjsCrudAutomator.EApiRouteType.UPDATE]?.generation,
|
|
55
|
-
...customRoutes?.[nestjsCrudAutomator.EApiRouteType.UPDATE]?.generation,
|
|
56
|
-
},
|
|
57
|
-
});
|
|
58
|
-
const config = {
|
|
59
|
-
...defaultConfig,
|
|
60
|
-
...options?.properties,
|
|
61
|
-
routes: {
|
|
62
|
-
...defaultConfig.routes,
|
|
63
|
-
...customRoutes,
|
|
64
|
-
[nestjsCrudAutomator.EApiRouteType.CREATE]: createRoute,
|
|
65
|
-
[nestjsCrudAutomator.EApiRouteType.DELETE]: deleteRoute,
|
|
66
|
-
[nestjsCrudAutomator.EApiRouteType.GET]: getRoute,
|
|
67
|
-
[nestjsCrudAutomator.EApiRouteType.GET_LIST]: getListRoute,
|
|
68
|
-
[nestjsCrudAutomator.EApiRouteType.UPDATE]: updateRoute,
|
|
69
|
-
},
|
|
70
|
-
};
|
|
71
|
-
let DynamicConfigSectionController = class DynamicConfigSectionController {
|
|
72
|
-
service;
|
|
73
|
-
constructor(service) {
|
|
74
|
-
this.service = service;
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
DynamicConfigSectionController = tslib_es6.__decorate([
|
|
78
|
-
nestjsCrudAutomator.ApiController(config),
|
|
79
|
-
tslib_es6.__param(0, common.Inject(token_constant.TOKEN_CONSTANT.CONFIG_SECTION_SERVICE)),
|
|
80
|
-
tslib_es6.__metadata("design:paramtypes", [nestjsCrudAutomator.ApiServiceBase])
|
|
81
|
-
], DynamicConfigSectionController);
|
|
82
|
-
return DynamicConfigSectionController;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
exports.createDynamicSectionController = createDynamicSectionController;
|
|
86
|
-
//# sourceMappingURL=controller.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"controller.js","sources":["../../../../../../src/modules/config/section/controller.ts"],"sourcesContent":[null],"names":["EApiRouteType","__decorate","ApiController","__param","Inject","TOKEN_CONSTANT","ApiServiceBase"],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { TDynamicEntity } from '../../../../shared/type';
|
|
2
|
-
import { ColumnType } from 'typeorm';
|
|
3
|
-
import { IConfigSection } from '../interface';
|
|
4
|
-
/**
|
|
5
|
-
* Creates a dynamic ConfigSection entity with TypeORM decorators
|
|
6
|
-
* @param {object} options - Configuration options for the entity
|
|
7
|
-
* @param {number} options.maxDescriptionLength - Maximum length for description field
|
|
8
|
-
* @param {number} options.maxNameLength - Maximum length for name field
|
|
9
|
-
* @param {string} options.tableName - Name of the database table
|
|
10
|
-
* @param {ColumnType} [options.timestampColumnType] - TypeORM type for timestamp fields; defaults to `timestamp`
|
|
11
|
-
* @returns {TDynamicEntity} Dynamically created ConfigSection entity class
|
|
12
|
-
*/
|
|
13
|
-
export declare function createConfigSectionEntity(options: {
|
|
14
|
-
maxDescriptionLength: number;
|
|
15
|
-
maxNameLength: number;
|
|
16
|
-
tableName: string;
|
|
17
|
-
timestampColumnType?: ColumnType;
|
|
18
|
-
}): TDynamicEntity<IConfigSection>;
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var nestjsCrudAutomator = require('@elsikora/nestjs-crud-automator');
|
|
4
|
-
var apiProperty_constant = require('../../../../shared/constant/api-property.constant.js');
|
|
5
|
-
var entity_utility = require('../../../../shared/utility/create-dynamic/entity.utility.js');
|
|
6
|
-
require('../../../../external/tslib/tslib.es6.js');
|
|
7
|
-
require('@nestjs/common');
|
|
8
|
-
require('@nestjs/typeorm');
|
|
9
|
-
var typeorm = require('typeorm');
|
|
10
|
-
require('../../../../shared/utility/crypto.utility.js');
|
|
11
|
-
require('../../../../shared/utility/logger.utility.js');
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Creates a dynamic ConfigSection entity with TypeORM decorators
|
|
15
|
-
* @param {object} options - Configuration options for the entity
|
|
16
|
-
* @param {number} options.maxDescriptionLength - Maximum length for description field
|
|
17
|
-
* @param {number} options.maxNameLength - Maximum length for name field
|
|
18
|
-
* @param {string} options.tableName - Name of the database table
|
|
19
|
-
* @param {ColumnType} [options.timestampColumnType] - TypeORM type for timestamp fields; defaults to `timestamp`
|
|
20
|
-
* @returns {TDynamicEntity} Dynamically created ConfigSection entity class
|
|
21
|
-
*/
|
|
22
|
-
function createConfigSectionEntity(options) {
|
|
23
|
-
const timestampColumnType = options.timestampColumnType ?? "timestamp";
|
|
24
|
-
return entity_utility.createDynamicEntityClass({
|
|
25
|
-
columns: {
|
|
26
|
-
createdAt: {
|
|
27
|
-
default: () => "CURRENT_TIMESTAMP",
|
|
28
|
-
nullable: false,
|
|
29
|
-
type: timestampColumnType,
|
|
30
|
-
},
|
|
31
|
-
description: {
|
|
32
|
-
length: options.maxDescriptionLength,
|
|
33
|
-
nullable: true,
|
|
34
|
-
type: "varchar",
|
|
35
|
-
},
|
|
36
|
-
name: {
|
|
37
|
-
length: options.maxNameLength,
|
|
38
|
-
nullable: false,
|
|
39
|
-
type: "varchar",
|
|
40
|
-
},
|
|
41
|
-
updatedAt: {
|
|
42
|
-
default: () => "CURRENT_TIMESTAMP",
|
|
43
|
-
nullable: false,
|
|
44
|
-
type: timestampColumnType,
|
|
45
|
-
},
|
|
46
|
-
},
|
|
47
|
-
decorators: {
|
|
48
|
-
createdAt: [
|
|
49
|
-
typeorm.CreateDateColumn({ type: timestampColumnType }),
|
|
50
|
-
nestjsCrudAutomator.ApiPropertyDescribe({
|
|
51
|
-
format: nestjsCrudAutomator.EApiPropertyDateType.DATE_TIME,
|
|
52
|
-
identifier: nestjsCrudAutomator.EApiPropertyDateIdentifier.CREATED_AT,
|
|
53
|
-
type: nestjsCrudAutomator.EApiPropertyDescribeType.DATE,
|
|
54
|
-
}),
|
|
55
|
-
],
|
|
56
|
-
description: [
|
|
57
|
-
nestjsCrudAutomator.ApiPropertyDescribe({
|
|
58
|
-
description: "name",
|
|
59
|
-
exampleValue: "Section",
|
|
60
|
-
format: nestjsCrudAutomator.EApiPropertyStringType.STRING,
|
|
61
|
-
isNullable: true,
|
|
62
|
-
maxLength: options.maxDescriptionLength,
|
|
63
|
-
minLength: apiProperty_constant.API_PROPERTY_CONSTANT.MIN_NAME_LENGTH,
|
|
64
|
-
pattern: `/.{1,${options.maxDescriptionLength}}/`,
|
|
65
|
-
type: nestjsCrudAutomator.EApiPropertyDescribeType.STRING,
|
|
66
|
-
}),
|
|
67
|
-
],
|
|
68
|
-
id: [
|
|
69
|
-
nestjsCrudAutomator.ApiPropertyDescribe({
|
|
70
|
-
type: nestjsCrudAutomator.EApiPropertyDescribeType.UUID,
|
|
71
|
-
}),
|
|
72
|
-
],
|
|
73
|
-
name: [
|
|
74
|
-
nestjsCrudAutomator.ApiPropertyDescribe({
|
|
75
|
-
description: "name",
|
|
76
|
-
exampleValue: "section",
|
|
77
|
-
format: nestjsCrudAutomator.EApiPropertyStringType.STRING,
|
|
78
|
-
maxLength: options.maxNameLength,
|
|
79
|
-
minLength: apiProperty_constant.API_PROPERTY_CONSTANT.MIN_NAME_LENGTH,
|
|
80
|
-
pattern: `/^[a-z0-9-]{1,${options.maxNameLength}}/`,
|
|
81
|
-
type: nestjsCrudAutomator.EApiPropertyDescribeType.STRING,
|
|
82
|
-
}),
|
|
83
|
-
],
|
|
84
|
-
updatedAt: [
|
|
85
|
-
typeorm.UpdateDateColumn({ type: timestampColumnType }),
|
|
86
|
-
nestjsCrudAutomator.ApiPropertyDescribe({
|
|
87
|
-
format: nestjsCrudAutomator.EApiPropertyDateType.DATE_TIME,
|
|
88
|
-
identifier: nestjsCrudAutomator.EApiPropertyDateIdentifier.UPDATED_AT,
|
|
89
|
-
type: nestjsCrudAutomator.EApiPropertyDescribeType.DATE,
|
|
90
|
-
}),
|
|
91
|
-
],
|
|
92
|
-
},
|
|
93
|
-
name: "ConfigSection",
|
|
94
|
-
tableName: options.tableName,
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
exports.createConfigSectionEntity = createConfigSectionEntity;
|
|
99
|
-
//# sourceMappingURL=entity.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entity.js","sources":["../../../../../../../src/modules/config/section/entity/entity.ts"],"sourcesContent":[null],"names":["createDynamicEntityClass","CreateDateColumn","ApiPropertyDescribe","EApiPropertyDateType","EApiPropertyDateIdentifier","EApiPropertyDescribeType","EApiPropertyStringType","API_PROPERTY_CONSTANT","UpdateDateColumn"],"mappings":";;;;;;;;;;;;AAiBA;;;;;;;;AAQG;AACG,SAAU,yBAAyB,CAAC,OAKzC,EAAA;AACA,IAAA,MAAM,mBAAmB,GAAe,OAAO,CAAC,mBAAmB,IAAI,WAAW;AAElF,IAAA,OAAOA,uCAAwB,CAAC;AAC/B,QAAA,OAAO,EAAE;AACR,YAAA,SAAS,EAAE;AACV,gBAAA,OAAO,EAAE,MAAM,mBAAmB;AAClC,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,IAAI,EAAE,mBAAmB;AACzB,aAAA;AACD,YAAA,WAAW,EAAE;gBACZ,MAAM,EAAE,OAAO,CAAC,oBAAoB;AACpC,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,IAAI,EAAE,SAAS;AACf,aAAA;AACD,YAAA,IAAI,EAAE;gBACL,MAAM,EAAE,OAAO,CAAC,aAAa;AAC7B,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,IAAI,EAAE,SAAS;AACf,aAAA;AACD,YAAA,SAAS,EAAE;AACV,gBAAA,OAAO,EAAE,MAAM,mBAAmB;AAClC,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,IAAI,EAAE,mBAAmB;AACzB,aAAA;AACD,SAAA;AACD,QAAA,UAAU,EAAE;AACX,YAAA,SAAS,EAAE;AACV,gBAAAC,wBAAgB,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;AAC/C,gBAAAC,uCAAmB,CAAC;oBACnB,MAAM,EAAEC,wCAAoB,CAAC,SAAS;oBACtC,UAAU,EAAEC,8CAA0B,CAAC,UAAU;oBACjD,IAAI,EAAEC,4CAAwB,CAAC,IAAI;iBACnC,CAAC;AACF,aAAA;AACD,YAAA,WAAW,EAAE;AACZ,gBAAAH,uCAAmB,CAAC;AACnB,oBAAA,WAAW,EAAE,MAAM;AACnB,oBAAA,YAAY,EAAE,SAAS;oBACvB,MAAM,EAAEI,0CAAsB,CAAC,MAAM;AACrC,oBAAA,UAAU,EAAE,IAAI;oBAChB,SAAS,EAAE,OAAO,CAAC,oBAAoB;oBACvC,SAAS,EAAEC,0CAAqB,CAAC,eAAe;AAChD,oBAAA,OAAO,EAAE,CAAA,KAAA,EAAQ,OAAO,CAAC,oBAAoB,CAAA,EAAA,CAAI;oBACjD,IAAI,EAAEF,4CAAwB,CAAC,MAAM;iBACrC,CAAC;AACF,aAAA;AACD,YAAA,EAAE,EAAE;AACH,gBAAAH,uCAAmB,CAAC;oBACnB,IAAI,EAAEG,4CAAwB,CAAC,IAAI;iBACnC,CAAC;AACF,aAAA;AACD,YAAA,IAAI,EAAE;AACL,gBAAAH,uCAAmB,CAAC;AACnB,oBAAA,WAAW,EAAE,MAAM;AACnB,oBAAA,YAAY,EAAE,SAAS;oBACvB,MAAM,EAAEI,0CAAsB,CAAC,MAAM;oBACrC,SAAS,EAAE,OAAO,CAAC,aAAa;oBAChC,SAAS,EAAEC,0CAAqB,CAAC,eAAe;AAChD,oBAAA,OAAO,EAAE,CAAA,cAAA,EAAiB,OAAO,CAAC,aAAa,CAAA,EAAA,CAAI;oBACnD,IAAI,EAAEF,4CAAwB,CAAC,MAAM;iBACrC,CAAC;AACF,aAAA;AACD,YAAA,SAAS,EAAE;AACV,gBAAAG,wBAAgB,CAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;AAC/C,gBAAAN,uCAAmB,CAAC;oBACnB,MAAM,EAAEC,wCAAoB,CAAC,SAAS;oBACtC,UAAU,EAAEC,8CAA0B,CAAC,UAAU;oBACjD,IAAI,EAAEC,4CAAwB,CAAC,IAAI;iBACnC,CAAC;AACF,aAAA;AACD,SAAA;AACD,QAAA,IAAI,EAAE,eAAe;QACrB,SAAS,EAAE,OAAO,CAAC,SAAS;AAC5B,KAAA,CAAC;AACH;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { createConfigSectionEntity } from './entity';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export type { IConfigSection } from './interface';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './config';
|