@steroidsjs/nest 1.0.4 → 1.0.8
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/infrastructure/commands/MigrateCommand.d.ts +1 -15
- package/infrastructure/commands/MigrateCommand.js +6 -113
- package/infrastructure/commands/MigrateCommand.js.map +1 -1
- package/infrastructure/commands/generate/CustomPostgresQueryRunner.d.ts +45 -0
- package/infrastructure/commands/generate/CustomPostgresQueryRunner.js +762 -0
- package/infrastructure/commands/generate/CustomPostgresQueryRunner.js.map +1 -0
- package/infrastructure/commands/generate/CustomRdbmsSchemaBuilder.d.ts +6 -0
- package/infrastructure/commands/generate/CustomRdbmsSchemaBuilder.js +32 -0
- package/infrastructure/commands/generate/CustomRdbmsSchemaBuilder.js.map +1 -0
- package/infrastructure/commands/generate/index.d.ts +2 -0
- package/infrastructure/commands/generate/index.js +105 -0
- package/infrastructure/commands/generate/index.js.map +1 -0
- package/infrastructure/decorators/fields/BaseField.d.ts +1 -0
- package/infrastructure/decorators/fields/BaseField.js +5 -1
- package/infrastructure/decorators/fields/BaseField.js.map +1 -1
- package/infrastructure/decorators/fields/CoordinateField.js +12 -7
- package/infrastructure/decorators/fields/CoordinateField.js.map +1 -1
- package/infrastructure/decorators/fields/DecimalField.js +12 -7
- package/infrastructure/decorators/fields/DecimalField.js.map +1 -1
- package/infrastructure/decorators/fields/EnumField.js +10 -5
- package/infrastructure/decorators/fields/EnumField.js.map +1 -1
- package/infrastructure/decorators/fields/FileField.js +1 -1
- package/infrastructure/decorators/fields/FileField.js.map +1 -1
- package/infrastructure/decorators/fields/IntegerField.js +1 -0
- package/infrastructure/decorators/fields/IntegerField.js.map +1 -1
- package/infrastructure/decorators/fields/RelationField.js +31 -22
- package/infrastructure/decorators/fields/RelationField.js.map +1 -1
- package/infrastructure/filters/ValidationExceptionFilter.js +1 -2
- package/infrastructure/filters/ValidationExceptionFilter.js.map +1 -1
- package/infrastructure/schemas/BaseSchema.d.ts +1 -1
- package/infrastructure/schemas/BaseSchema.js +2 -1
- package/infrastructure/schemas/BaseSchema.js.map +1 -1
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
- package/usecases/helpers/DataMapperHelper.d.ts +1 -0
- package/usecases/helpers/DataMapperHelper.js +4 -0
- package/usecases/helpers/DataMapperHelper.js.map +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomPostgresQueryRunner.js","sourceRoot":"","sources":["../../../../src/infrastructure/commands/generate/CustomPostgresQueryRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { RdbmsSchemaBuilder } from 'typeorm/schema-builder/RdbmsSchemaBuilder';
|
|
2
|
+
import { TableSqlInMemory } from './CustomPostgresQueryRunner';
|
|
3
|
+
export declare class CustomRdbmsSchemaBuilder extends RdbmsSchemaBuilder {
|
|
4
|
+
log(): Promise<TableSqlInMemory>;
|
|
5
|
+
private getTablePathCustom;
|
|
6
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CustomRdbmsSchemaBuilder = void 0;
|
|
4
|
+
const RdbmsSchemaBuilder_1 = require("typeorm/schema-builder/RdbmsSchemaBuilder");
|
|
5
|
+
const CustomPostgresQueryRunner_1 = require("./CustomPostgresQueryRunner");
|
|
6
|
+
class CustomRdbmsSchemaBuilder extends RdbmsSchemaBuilder_1.RdbmsSchemaBuilder {
|
|
7
|
+
async log() {
|
|
8
|
+
const queryRunner = new CustomPostgresQueryRunner_1.CustomPostgresQueryRunner(this.connection.driver, 'master');
|
|
9
|
+
queryRunner.manager = this.connection.createEntityManager(queryRunner);
|
|
10
|
+
this.queryRunner = queryRunner;
|
|
11
|
+
try {
|
|
12
|
+
const tablePaths = this.entityToSyncMetadatas.map(metadata => this.getTablePathCustom(metadata));
|
|
13
|
+
await this.queryRunner.getTables(tablePaths);
|
|
14
|
+
await this.queryRunner.getViews([]);
|
|
15
|
+
this.queryRunner.enableSqlMemory();
|
|
16
|
+
await this.executeSchemaSyncOperationsInProperOrder();
|
|
17
|
+
if (this.connection.queryResultCache)
|
|
18
|
+
await this.connection.queryResultCache.synchronize(this.queryRunner);
|
|
19
|
+
return this.queryRunner.getMemorySql();
|
|
20
|
+
}
|
|
21
|
+
finally {
|
|
22
|
+
this.queryRunner.disableSqlMemory();
|
|
23
|
+
await this.queryRunner.release();
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
getTablePathCustom(target) {
|
|
27
|
+
const parsed = this.connection.driver.parseTableName(target);
|
|
28
|
+
return this.connection.driver.buildTableName(parsed.tableName, parsed.schema || this.connection.driver.schema, parsed.database || this.connection.driver.database);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
exports.CustomRdbmsSchemaBuilder = CustomRdbmsSchemaBuilder;
|
|
32
|
+
//# sourceMappingURL=CustomRdbmsSchemaBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomRdbmsSchemaBuilder.js","sourceRoot":"","sources":["../../../../src/infrastructure/commands/generate/CustomRdbmsSchemaBuilder.ts"],"names":[],"mappings":";;;AAIA,kFAA6E;AAC7E,2EAAwF;AAExF,MAAa,wBAAyB,SAAQ,uCAAkB;IAE5D,KAAK,CAAC,GAAG;QAEL,MAAM,WAAW,GAAG,IAAI,qDAAyB,CAAC,IAAI,CAAC,UAAU,CAAC,MAAa,EAAE,QAAQ,CAAC,CAAC;QAC3F,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACvE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,IAAI;YAEA,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;YACjG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;YAC7C,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAEpC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,wCAAwC,EAAE,CAAC;YAGtD,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB;gBAChC,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAEzE,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,EAAsB,CAAC;SAE9D;gBAAS;YAIN,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;YACpC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;SACpC;IACL,CAAC;IAEO,kBAAkB,CAAC,MAAgE;QACvF,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAE7D,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,CACxC,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAC9C,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CACrD,CAAC;IACN,CAAC;CAEJ;AA1CD,4DA0CC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generate = void 0;
|
|
4
|
+
const load_configuration_1 = require("@nestjs/cli/lib/utils/load-configuration");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const lodash = require("lodash");
|
|
7
|
+
const fs = require("fs");
|
|
8
|
+
const CommandUtils_1 = require("typeorm/commands/CommandUtils");
|
|
9
|
+
const formatter_1 = require("@sqltools/formatter");
|
|
10
|
+
const CustomRdbmsSchemaBuilder_1 = require("./CustomRdbmsSchemaBuilder");
|
|
11
|
+
const queryParams = (parameters) => {
|
|
12
|
+
if (!parameters || !parameters.length) {
|
|
13
|
+
return '';
|
|
14
|
+
}
|
|
15
|
+
return `, ${JSON.stringify(parameters)}`;
|
|
16
|
+
};
|
|
17
|
+
const prettifyQuery = (query) => {
|
|
18
|
+
const formattedQuery = (0, formatter_1.format)(query, { indent: ' ' });
|
|
19
|
+
query = '\n' + formattedQuery.replace(/^/gm, ' ') + '\n ';
|
|
20
|
+
query = query.replace(/`/g, '\\`');
|
|
21
|
+
return query;
|
|
22
|
+
};
|
|
23
|
+
const getTemplate = (name, timestamp, upSqls, downSqls) => {
|
|
24
|
+
const migrationName = `${name}${timestamp}`;
|
|
25
|
+
return `import {MigrationInterface, QueryRunner} from 'typeorm';
|
|
26
|
+
|
|
27
|
+
export class ${migrationName} implements MigrationInterface {
|
|
28
|
+
name = '${migrationName}'
|
|
29
|
+
|
|
30
|
+
public async up(queryRunner: QueryRunner): Promise<void> {
|
|
31
|
+
${upSqls.join(`
|
|
32
|
+
`)}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
public async down(queryRunner: QueryRunner): Promise<void> {
|
|
36
|
+
${downSqls.join(`
|
|
37
|
+
`)}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
`;
|
|
41
|
+
};
|
|
42
|
+
const generate = async (connection) => {
|
|
43
|
+
const classesToTablesMap = connection.entityMetadatas.reduce((obj, entityMeta) => {
|
|
44
|
+
obj[entityMeta.targetName] = entityMeta.tableName;
|
|
45
|
+
return obj;
|
|
46
|
+
});
|
|
47
|
+
const cliConfiguration = await (0, load_configuration_1.loadConfiguration)();
|
|
48
|
+
const sourceRoot = (0, path_1.join)(process.cwd(), cliConfiguration.sourceRoot);
|
|
49
|
+
const tablesInfo = {};
|
|
50
|
+
const moduleDirs = fs.readdirSync(sourceRoot);
|
|
51
|
+
for (const moduleName of moduleDirs) {
|
|
52
|
+
if (fs.statSync((0, path_1.join)(sourceRoot, moduleName)).isDirectory()) {
|
|
53
|
+
const moduleDir = (0, path_1.join)(sourceRoot, moduleName);
|
|
54
|
+
const moduleClassPath = (0, path_1.join)(moduleDir, '/infrastructure/' + lodash.upperFirst(moduleName) + 'Module.ts');
|
|
55
|
+
if (fs.existsSync(moduleClassPath)) {
|
|
56
|
+
const tableClassDir = (0, path_1.join)(sourceRoot, moduleName, 'infrastructure/tables');
|
|
57
|
+
const tableFiles = fs.readdirSync(tableClassDir);
|
|
58
|
+
for (const tableFile of tableFiles) {
|
|
59
|
+
const tableClassName = tableFile.replace(/\.ts$/, '');
|
|
60
|
+
const tableName = classesToTablesMap[tableClassName];
|
|
61
|
+
tablesInfo[tableName] = {
|
|
62
|
+
tableClassName,
|
|
63
|
+
moduleDir,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
const migrationsByTables = {};
|
|
70
|
+
const sqlInMemory = await (new CustomRdbmsSchemaBuilder_1.CustomRdbmsSchemaBuilder(connection)).log();
|
|
71
|
+
for (const item of sqlInMemory.upTableQueries) {
|
|
72
|
+
if (!migrationsByTables[item.tableName]) {
|
|
73
|
+
migrationsByTables[item.tableName] = {
|
|
74
|
+
upQueries: [],
|
|
75
|
+
downQueries: [],
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
migrationsByTables[item.tableName].upQueries.push(' await queryRunner.query(`' + prettifyQuery(item.query.query) + '`' + queryParams(item.query.parameters) + ');');
|
|
79
|
+
}
|
|
80
|
+
for (const item of sqlInMemory.downTableQueries) {
|
|
81
|
+
migrationsByTables[item.tableName].downQueries.push(' await queryRunner.query(`' + prettifyQuery(item.query.query) + '`' + queryParams(item.query.parameters) + ');');
|
|
82
|
+
}
|
|
83
|
+
const timestamp = new Date().getTime();
|
|
84
|
+
if (Object.keys(migrationsByTables).length === 0) {
|
|
85
|
+
console.log('info', 'No changes in database schema were found');
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
console.log('info', 'Created migrations:');
|
|
89
|
+
for (const tableName in migrationsByTables) {
|
|
90
|
+
if (!tablesInfo[tableName]) {
|
|
91
|
+
console.error('[ERROR!] Not found info for table: ' + tableName);
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
const tableClassName = tablesInfo[tableName].tableClassName;
|
|
95
|
+
const moduleDir = tablesInfo[tableName].moduleDir;
|
|
96
|
+
const fileContent = getTemplate(tableClassName, timestamp, migrationsByTables[tableName].upQueries, migrationsByTables[tableName].downQueries.reverse());
|
|
97
|
+
const fileName = timestamp + '-' + tableClassName + '.ts';
|
|
98
|
+
const path = (0, path_1.join)(moduleDir, '/infrastructure/migrations', fileName);
|
|
99
|
+
console.log('info', '\t' + path);
|
|
100
|
+
await CommandUtils_1.CommandUtils.createFile(path, fileContent);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
exports.generate = generate;
|
|
105
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/infrastructure/commands/generate/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ColumnType } from 'typeorm/driver/types/ColumnTypes';
|
|
2
2
|
export declare const MODEL_META_KEY = "meta";
|
|
3
|
+
export declare const MODEL_FIELD_NAMES_KEY = "meta_field_names";
|
|
3
4
|
export declare type AppColumnType = 'boolean' | 'createTime' | 'date' | 'dateTime' | 'decimal' | 'email' | 'enum' | 'file' | 'html' | 'integer' | 'password' | 'phone' | 'primaryKey' | 'string' | 'text' | 'time' | 'updateTime' | string;
|
|
4
5
|
export interface IBaseFieldOptions {
|
|
5
6
|
decoratorName?: string;
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BaseField = exports.MODEL_META_KEY = void 0;
|
|
3
|
+
exports.BaseField = exports.MODEL_FIELD_NAMES_KEY = exports.MODEL_META_KEY = void 0;
|
|
4
4
|
const common_1 = require("@nestjs/common");
|
|
5
5
|
const swagger_1 = require("@nestjs/swagger");
|
|
6
6
|
exports.MODEL_META_KEY = 'meta';
|
|
7
|
+
exports.MODEL_FIELD_NAMES_KEY = 'meta_field_names';
|
|
7
8
|
const ColumnMetaDecorator = value => (object, propertyName) => {
|
|
8
9
|
Reflect.defineMetadata(exports.MODEL_META_KEY, value, object, propertyName);
|
|
10
|
+
const fieldNames = Reflect.getMetadata(exports.MODEL_FIELD_NAMES_KEY, object) || [];
|
|
11
|
+
fieldNames.push(propertyName);
|
|
12
|
+
Reflect.defineMetadata(exports.MODEL_FIELD_NAMES_KEY, fieldNames, object);
|
|
9
13
|
};
|
|
10
14
|
function BaseField(options = null) {
|
|
11
15
|
return (0, common_1.applyDecorators)(ColumnMetaDecorator({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/BaseField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,6CAA4C;
|
|
1
|
+
{"version":3,"file":"BaseField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/BaseField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,6CAA4C;AAI/B,QAAA,cAAc,GAAG,MAAM,CAAC;AACxB,QAAA,qBAAqB,GAAG,kBAAkB,CAAC;AAoBxD,MAAM,mBAAmB,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE;IAC1D,OAAO,CAAC,cAAc,CAAC,sBAAc,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;IAGpE,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,6BAAqB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAC5E,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC9B,OAAO,CAAC,cAAc,CAAC,6BAAqB,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;AACtE,CAAC,CAAC;AAEF,SAAgB,SAAS,CAAC,UAA6B,IAAI;IACvD,OAAO,IAAA,wBAAe,EAClB,mBAAmB,CAAC;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI;QAC5B,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;QAC1B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;QAChC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI;QAC5B,IAAI,EAAE,OAAO;KAChB,CAAC,EACF,IAAA,qBAAW,EAAC;QACR,WAAW,EAAE,OAAO,CAAC,KAAK,IAAI,SAAS;QACvC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,SAAS;QACrC,QAAQ,EAAE,OAAO,CAAC,QAAQ,KAAK,KAAK;KACvC,CAAC,CACL,CAAC;AACN,CAAC;AAfD,8BAeC"}
|
|
@@ -6,13 +6,18 @@ const typeorm_1 = require("typeorm");
|
|
|
6
6
|
const class_validator_1 = require("class-validator");
|
|
7
7
|
const BaseField_1 = require("./BaseField");
|
|
8
8
|
function CoordinateField(options = {}) {
|
|
9
|
-
return (0, common_1.applyDecorators)(
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
return (0, common_1.applyDecorators)(...[
|
|
10
|
+
(0, BaseField_1.BaseField)(Object.assign(Object.assign({}, options), { decoratorName: 'CoordinateField', appType: 'decimal' })),
|
|
11
|
+
(0, typeorm_1.Column)({
|
|
12
|
+
type: 'decimal',
|
|
13
|
+
default: options.defaultValue,
|
|
14
|
+
nullable: options.nullable,
|
|
15
|
+
precision: options.precision || 12,
|
|
16
|
+
scale: options.scale || 9,
|
|
17
|
+
}),
|
|
18
|
+
options.nullable && (0, class_validator_1.ValidateIf)((object, value) => value !== null),
|
|
19
|
+
(0, class_validator_1.IsString)(),
|
|
20
|
+
].filter(Boolean));
|
|
16
21
|
}
|
|
17
22
|
exports.CoordinateField = CoordinateField;
|
|
18
23
|
//# sourceMappingURL=CoordinateField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoordinateField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/CoordinateField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"CoordinateField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/CoordinateField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,qDAAqD;AACrD,2CAAyD;AAOzD,SAAgB,eAAe,CAAC,UAAmC,EAAE;IACjE,OAAO,IAAA,wBAAe,EAAC,GAAG;QACtB,IAAA,qBAAS,kCACF,OAAO,KACV,aAAa,EAAE,iBAAiB,EAChC,OAAO,EAAE,SAAS,IACpB;QACF,IAAA,gBAAM,EAAC;YACH,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,OAAO,CAAC,YAAY;YAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,EAAE;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;SAC5B,CAAC;QACF,OAAO,CAAC,QAAQ,IAAI,IAAA,4BAAU,EAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;QACjE,IAAA,0BAAQ,GAAE;KACT,CAAC,MAAM,CAAC,OAAO,CAAC,CACpB,CAAC;AACN,CAAC;AAlBD,0CAkBC"}
|
|
@@ -6,13 +6,18 @@ const typeorm_1 = require("typeorm");
|
|
|
6
6
|
const class_validator_1 = require("class-validator");
|
|
7
7
|
const BaseField_1 = require("./BaseField");
|
|
8
8
|
function DecimalField(options = {}) {
|
|
9
|
-
return (0, common_1.applyDecorators)(
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
return (0, common_1.applyDecorators)(...[
|
|
10
|
+
(0, BaseField_1.BaseField)(Object.assign(Object.assign({}, options), { decoratorName: 'DecimalField', appType: 'decimal' })),
|
|
11
|
+
(0, typeorm_1.Column)({
|
|
12
|
+
type: 'decimal',
|
|
13
|
+
default: options.defaultValue,
|
|
14
|
+
nullable: options.nullable,
|
|
15
|
+
precision: options.precision || 10,
|
|
16
|
+
scale: options.scale || 2,
|
|
17
|
+
}),
|
|
18
|
+
options.nullable && (0, class_validator_1.ValidateIf)((object, value) => value !== null),
|
|
19
|
+
(0, class_validator_1.IsString)(),
|
|
20
|
+
].filter(Boolean));
|
|
16
21
|
}
|
|
17
22
|
exports.DecimalField = DecimalField;
|
|
18
23
|
//# sourceMappingURL=DecimalField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DecimalField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/DecimalField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"DecimalField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/DecimalField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,qDAAqD;AACrD,2CAAyD;AAOzD,SAAgB,YAAY,CAAC,UAAgC,EAAE;IAC3D,OAAO,IAAA,wBAAe,EAAC,GAAG;QACtB,IAAA,qBAAS,kCACF,OAAO,KACV,aAAa,EAAE,cAAc,EAC7B,OAAO,EAAE,SAAS,IACpB;QACF,IAAA,gBAAM,EAAC;YACH,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,OAAO,CAAC,YAAY;YAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,EAAE;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;SAC5B,CAAC;QACF,OAAO,CAAC,QAAQ,IAAI,IAAA,4BAAU,EAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;QACjE,IAAA,0BAAQ,GAAE;KACT,CAAC,MAAM,CAAC,OAAO,CAAC,CACpB,CAAC;AACN,CAAC;AAlBD,oCAkBC"}
|
|
@@ -21,11 +21,16 @@ function EnumField(options = {}) {
|
|
|
21
21
|
else if (typeof options.enum === 'function' && options.enum.prototype instanceof BaseEnum_1.default) {
|
|
22
22
|
options.enum = options.enum.toEnum();
|
|
23
23
|
}
|
|
24
|
-
return (0, common_1.applyDecorators)(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
return (0, common_1.applyDecorators)(...[
|
|
25
|
+
(0, BaseField_1.BaseField)(Object.assign(Object.assign({}, options), { decoratorName: 'EnumField', appType: 'enum' })),
|
|
26
|
+
(0, typeorm_1.Column)({
|
|
27
|
+
type: 'varchar',
|
|
28
|
+
default: options.defaultValue,
|
|
29
|
+
nullable: options.nullable,
|
|
30
|
+
}),
|
|
31
|
+
options.nullable && (0, class_validator_1.ValidateIf)((object, value) => value !== null),
|
|
32
|
+
(0, class_validator_1.IsEnum)(options.enum),
|
|
33
|
+
].filter(Boolean));
|
|
29
34
|
}
|
|
30
35
|
exports.EnumField = EnumField;
|
|
31
36
|
//# sourceMappingURL=EnumField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnumField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/EnumField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"EnumField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/EnumField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,qDAAmD;AACnD,2CAAyD;AACzD,4DAAqD;AAMrD,SAAgB,SAAS,CAAC,UAA8B,EAAE;IACtD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;QAC7B,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC9C,IAAI,KAAK,CAAC,SAAS,YAAY,kBAAQ,EAAE;gBACrC,GAAG,mCACI,GAAG,GACH,KAAK,CAAC,MAAM,EAAE,CACpB,CAAC;aACL;iBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;gBAClC,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;aACtB;YACD,OAAO,GAAG,CAAC;QACf,CAAC,EAAE,EAAE,CAAC,CAAC;KACV;SAAM,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,YAAY,kBAAQ,EAAE;QACzF,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;KACxC;IAED,OAAO,IAAA,wBAAe,EAAC,GAAG;QAClB,IAAA,qBAAS,kCACF,OAAO,KACV,aAAa,EAAE,WAAW,EAC1B,OAAO,EAAE,MAAM,IACjB;QACF,IAAA,gBAAM,EAAC;YACH,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,OAAO,CAAC,YAAY;YAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC7B,CAAC;QACF,OAAO,CAAC,QAAQ,IAAI,IAAA,4BAAU,EAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;QACjE,IAAA,wBAAM,EAAC,OAAO,CAAC,IAAI,CAAC;KACvB,CAAC,MAAM,CAAC,OAAO,CAAC,CACpB,CAAC;AACN,CAAC;AAhCD,8BAgCC"}
|
|
@@ -10,7 +10,7 @@ function FileField(options = {}) {
|
|
|
10
10
|
type: 'integer',
|
|
11
11
|
default: options.defaultValue,
|
|
12
12
|
nullable: options.nullable,
|
|
13
|
-
}), (0, class_validator_1.IsInt)());
|
|
13
|
+
}), (0, class_validator_1.IsOptional)(), (0, class_validator_1.IsInt)());
|
|
14
14
|
}
|
|
15
15
|
exports.FileField = FileField;
|
|
16
16
|
//# sourceMappingURL=FileField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/FileField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"FileField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/FileField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,qDAAkD;AAClD,2CAAyD;AAEzD,SAAgB,SAAS,CAAC,UAA6B,EAAE;IACrD,OAAO,IAAA,wBAAe,EAClB,IAAA,qBAAS,kCACF,OAAO,KACV,aAAa,EAAE,WAAW,EAC1B,OAAO,EAAE,MAAM,IACjB,EACF,IAAA,gBAAM,EAAC;QACH,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,OAAO,CAAC,YAAY;QAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC7B,CAAC,EACF,IAAA,4BAAU,GAAE,EACZ,IAAA,uBAAK,GAAE,CACV,CAAC;AACN,CAAC;AAfD,8BAeC"}
|
|
@@ -13,6 +13,7 @@ function IntegerField(options = {}) {
|
|
|
13
13
|
default: options.defaultValue,
|
|
14
14
|
nullable: options.nullable,
|
|
15
15
|
}),
|
|
16
|
+
options.nullable && (0, class_validator_1.ValidateIf)((object, value) => value !== null),
|
|
16
17
|
(0, class_validator_1.IsInt)(),
|
|
17
18
|
typeof options.min === 'number' && (0, class_validator_1.Min)(options.min),
|
|
18
19
|
typeof options.max === 'number' && (0, class_validator_1.Max)(options.max),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IntegerField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/IntegerField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"IntegerField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/IntegerField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA+B;AAC/B,qDAA4D;AAC5D,2CAAyD;AAEzD,SAAgB,YAAY,CAAC,UAA6B,EAAE;IACxD,OAAO,IAAA,wBAAe,EAAC,GAAG;QACtB,IAAA,qBAAS,kCACF,OAAO,KACV,aAAa,EAAE,cAAc,EAC7B,OAAO,EAAE,SAAS,IACpB;QACF,IAAA,gBAAM,EAAC;YACH,IAAI,EAAE,SAAS;YACf,OAAO,EAAE,OAAO,CAAC,YAAY;YAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC7B,CAAC;QACF,OAAO,CAAC,QAAQ,IAAI,IAAA,4BAAU,EAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;QACjE,IAAA,uBAAK,GAAE;QACP,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAA,qBAAG,EAAC,OAAO,CAAC,GAAG,CAAC;QACnD,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAA,qBAAG,EAAC,OAAO,CAAC,GAAG,CAAC;KACtD,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACvB,CAAC;AAjBD,oCAiBC"}
|
|
@@ -6,29 +6,38 @@ const typeorm_1 = require("typeorm");
|
|
|
6
6
|
const class_validator_1 = require("class-validator");
|
|
7
7
|
const class_transformer_1 = require("class-transformer");
|
|
8
8
|
const BaseField_1 = require("./BaseField");
|
|
9
|
+
const getRelationDecorator = (relation) => {
|
|
10
|
+
switch (relation) {
|
|
11
|
+
case 'OneToOne':
|
|
12
|
+
return typeorm_1.OneToOne;
|
|
13
|
+
case 'ManyToMany':
|
|
14
|
+
return typeorm_1.ManyToMany;
|
|
15
|
+
case 'OneToMany':
|
|
16
|
+
return typeorm_1.OneToMany;
|
|
17
|
+
case 'ManyToOne':
|
|
18
|
+
return typeorm_1.ManyToOne;
|
|
19
|
+
default:
|
|
20
|
+
throw new Error('Wrong relation type: ' + relation);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
const getOwningDecorator = (relation, owningSide) => {
|
|
24
|
+
if (relation === 'ManyToMany' && owningSide) {
|
|
25
|
+
return typeorm_1.JoinTable;
|
|
26
|
+
}
|
|
27
|
+
if (relation === 'OneToOne' && owningSide) {
|
|
28
|
+
return typeorm_1.JoinColumn;
|
|
29
|
+
}
|
|
30
|
+
return null;
|
|
31
|
+
};
|
|
9
32
|
function RelationField(options) {
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
case 'ManyToOne':
|
|
19
|
-
return typeorm_1.ManyToOne;
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
const getOwningDecorator = (relation, owningSide) => {
|
|
23
|
-
if (relation === 'ManyToMany' && owningSide) {
|
|
24
|
-
return typeorm_1.JoinTable;
|
|
25
|
-
}
|
|
26
|
-
if (relation === 'OneToOne' && owningSide) {
|
|
27
|
-
return typeorm_1.JoinColumn;
|
|
28
|
-
}
|
|
29
|
-
return null;
|
|
30
|
-
};
|
|
31
|
-
return (0, common_1.applyDecorators)((0, BaseField_1.BaseField)(Object.assign(Object.assign({}, options), { decoratorName: 'RelationField', appType: 'integer' })), getRelationDecorator(options.type)(options.modelClass().name.replace(/Model$/, 'Table'), options.inverseSide, { cascade: true, onUpdate: 'CASCADE', onDelete: 'RESTRICT' }), getOwningDecorator(options.type, options.isOwningSide)(), (0, class_validator_1.ValidateNested)({ each: true }), (0, class_transformer_1.Type)(options.modelClass));
|
|
33
|
+
const OwningDecorator = getOwningDecorator(options.type, options.isOwningSide);
|
|
34
|
+
return (0, common_1.applyDecorators)(...[
|
|
35
|
+
(0, BaseField_1.BaseField)(Object.assign(Object.assign({}, options), { decoratorName: 'RelationField', appType: 'integer' })),
|
|
36
|
+
getRelationDecorator(options.type)(() => options.modelClass().name.replace(/Model$/, 'Table'), options.inverseSide, { cascade: ['insert', 'update'], onUpdate: 'CASCADE' }),
|
|
37
|
+
OwningDecorator && OwningDecorator(),
|
|
38
|
+
(0, class_validator_1.ValidateNested)({ each: true }),
|
|
39
|
+
(0, class_transformer_1.Type)(options.modelClass),
|
|
40
|
+
].filter(Boolean));
|
|
32
41
|
}
|
|
33
42
|
exports.RelationField = RelationField;
|
|
34
43
|
//# sourceMappingURL=RelationField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelationField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/RelationField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA0F;AAC1F,qDAA+C;AAC/C,yDAAuC;AACvC,2CAAyD;
|
|
1
|
+
{"version":3,"file":"RelationField.js","sourceRoot":"","sources":["../../../../src/infrastructure/decorators/fields/RelationField.ts"],"names":[],"mappings":";;;AAAA,2CAA+C;AAC/C,qCAA0F;AAC1F,qDAA+C;AAC/C,yDAAuC;AACvC,2CAAyD;AASzD,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAO,EAAE;IAC3C,QAAQ,QAAQ,EAAE;QACd,KAAK,UAAU;YACX,OAAO,kBAAQ,CAAC;QACpB,KAAK,YAAY;YACb,OAAO,oBAAU,CAAC;QACtB,KAAK,WAAW;YACZ,OAAO,mBAAS,CAAC;QACrB,KAAK,WAAW;YACZ,OAAO,mBAAS,CAAC;QACrB;YACI,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,QAAQ,CAAC,CAAC;KAC3D;AACL,CAAC,CAAA;AAED,MAAM,kBAAkB,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE;IAChD,IAAI,QAAQ,KAAK,YAAY,IAAI,UAAU,EAAE;QACzC,OAAO,mBAAS,CAAC;KACpB;IACD,IAAI,QAAQ,KAAK,UAAU,IAAI,UAAU,EAAE;QACvC,OAAO,oBAAU,CAAC;KACrB;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAA;AAED,SAAgB,aAAa,CAAC,OAA8B;IACxD,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;IAE/E,OAAO,IAAA,wBAAe,EAClB,GAAG;QACC,IAAA,qBAAS,kCACF,OAAO,KACV,aAAa,EAAE,eAAe,EAC9B,OAAO,EAAE,SAAS,IACpB;QACF,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,CAC9B,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,EAC1D,OAAO,CAAC,WAAW,EACnB,EAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAC,CACvD;QACD,eAAe,IAAI,eAAe,EAAE;QACpC,IAAA,gCAAc,EAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC;QAC5B,IAAA,wBAAI,EAAC,OAAO,CAAC,UAAU,CAAC;KAC3B,CAAC,MAAM,CAAC,OAAO,CAAC,CACpB,CAAC;AACN,CAAC;AApBD,sCAoBC"}
|
|
@@ -29,10 +29,9 @@ let ValidationExceptionFilter = class ValidationExceptionFilter {
|
|
|
29
29
|
catch(exception, host) {
|
|
30
30
|
const ctx = host.switchToHttp();
|
|
31
31
|
const response = ctx.getResponse();
|
|
32
|
-
console.log(exception.errors);
|
|
33
32
|
const errors = this.parseErrors(exception.errors);
|
|
34
33
|
response
|
|
35
|
-
.status(common_1.HttpStatus.
|
|
34
|
+
.status(common_1.HttpStatus.OK)
|
|
36
35
|
.json({
|
|
37
36
|
statusCode: common_1.HttpStatus.BAD_REQUEST,
|
|
38
37
|
errors,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValidationExceptionFilter.js","sourceRoot":"","sources":["../../../src/infrastructure/filters/ValidationExceptionFilter.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAiF;AAEjF,qDAAgD;AAChD,uFAAkF;AAGlF,IAAa,yBAAyB,GAAtC,MAAa,yBAAyB;IAClC,WAAW,CAAC,MAAM;QACd,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,YAAY,iCAAe,EAAE;YAC/D,OAAO,MAAM,CAAC,MAAM,CAChB,CAAC,MAAW,EAAE,IAAI,EAAE,EAAE;;gBAClB,IAAI,IAAI,CAAC,WAAW,EAAE;oBAClB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;iBACtE;gBACD,IAAI,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,IAAG,CAAC,EAAE;oBAC3B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC3D;gBACD,OAAO,MAAM,CAAC;YAClB,CAAC,EACD,EAAE,CACL,CAAC;SACL;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,SAA8B,EAAE,IAAmB;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAY,CAAC;QAC7C,
|
|
1
|
+
{"version":3,"file":"ValidationExceptionFilter.js","sourceRoot":"","sources":["../../../src/infrastructure/filters/ValidationExceptionFilter.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAiF;AAEjF,qDAAgD;AAChD,uFAAkF;AAGlF,IAAa,yBAAyB,GAAtC,MAAa,yBAAyB;IAClC,WAAW,CAAC,MAAM;QACd,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,YAAY,iCAAe,EAAE;YAC/D,OAAO,MAAM,CAAC,MAAM,CAChB,CAAC,MAAW,EAAE,IAAI,EAAE,EAAE;;gBAClB,IAAI,IAAI,CAAC,WAAW,EAAE;oBAClB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;iBACtE;gBACD,IAAI,CAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,IAAG,CAAC,EAAE;oBAC3B,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC3D;gBACD,OAAO,MAAM,CAAC;YAClB,CAAC,EACD,EAAE,CACL,CAAC;SACL;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,SAA8B,EAAE,IAAmB;QACrD,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAY,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAElD,QAAQ;aAEH,MAAM,CAAC,mBAAU,CAAC,EAAE,CAAC;aACrB,IAAI,CAAC;YACF,UAAU,EAAE,mBAAU,CAAC,WAAW;YAClC,MAAM;SACT,CAAC,CAAC;IACX,CAAC;CACJ,CAAA;AAhCY,yBAAyB;IADrC,IAAA,cAAK,EAAC,yCAAmB,CAAC;GACd,yBAAyB,CAgCrC;AAhCY,8DAAyB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SearchSchema } from './SearchSchema';
|
|
2
2
|
export default class BaseSchema<Model> {
|
|
3
3
|
constructor();
|
|
4
|
-
static createFromModel(model: any): BaseSchema<unknown>;
|
|
4
|
+
static createFromModel(model: any): BaseSchema<unknown> & Record<string, any>;
|
|
5
5
|
static createFromSearch<Model>(searchResult: SearchSchema<Model>): SearchSchema<BaseSchema<Model>>;
|
|
6
6
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const class_transformer_1 = require("class-transformer");
|
|
3
4
|
class BaseSchema {
|
|
4
5
|
constructor() {
|
|
5
6
|
}
|
|
6
7
|
static createFromModel(model) {
|
|
7
8
|
const schema = new this();
|
|
8
|
-
return schema;
|
|
9
|
+
return Object.assign(schema, (0, class_transformer_1.instanceToPlain)(model));
|
|
9
10
|
}
|
|
10
11
|
static createFromSearch(searchResult) {
|
|
11
12
|
const result = { total: null, items: [] };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseSchema.js","sourceRoot":"","sources":["../../../src/infrastructure/schemas/BaseSchema.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"BaseSchema.js","sourceRoot":"","sources":["../../../src/infrastructure/schemas/BaseSchema.ts"],"names":[],"mappings":";;AACA,yDAAkD;AAElD,MAAqB,UAAU;IAC3B;IAEA,CAAC;IAED,MAAM,CAAC,eAAe,CAAC,KAAU;QAC7B,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAA,mCAAe,EAAC,KAAK,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,gBAAgB,CAAQ,YAAiC;QAC5D,MAAM,MAAM,GAAoC,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAC,CAAC;QACzE,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;QAClC,MAAM,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;QAChC,MAAM,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QAClF,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAjBD,6BAiBC"}
|