@joktec/mysql 0.2.14 → 0.2.16
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 +214 -2
- package/dist/__tests__/mysql.column.decorator.spec.js +515 -1
- package/dist/__tests__/mysql.column.decorator.spec.js.map +1 -1
- package/dist/__tests__/mysql.dialect.spec.js +1 -0
- package/dist/__tests__/mysql.dialect.spec.js.map +1 -1
- package/dist/decorators/column.decorator.d.ts +4 -5
- package/dist/decorators/column.decorator.d.ts.map +1 -1
- package/dist/decorators/column.decorator.js +151 -5
- package/dist/decorators/column.decorator.js.map +1 -1
- package/dist/decorators/columns/array.column.d.ts +2 -1
- package/dist/decorators/columns/array.column.d.ts.map +1 -1
- package/dist/decorators/columns/array.column.js +7 -2
- package/dist/decorators/columns/array.column.js.map +1 -1
- package/dist/decorators/columns/column.factory.d.ts +3 -3
- package/dist/decorators/columns/column.factory.d.ts.map +1 -1
- package/dist/decorators/columns/column.factory.js +4 -2
- package/dist/decorators/columns/column.factory.js.map +1 -1
- package/dist/decorators/columns/column.type.d.ts +107 -4
- package/dist/decorators/columns/column.type.d.ts.map +1 -1
- package/dist/decorators/columns/column.util.d.ts +13 -6
- package/dist/decorators/columns/column.util.d.ts.map +1 -1
- package/dist/decorators/columns/column.util.js +85 -4
- package/dist/decorators/columns/column.util.js.map +1 -1
- package/dist/decorators/columns/enum.column.d.ts +2 -2
- package/dist/decorators/columns/enum.column.d.ts.map +1 -1
- package/dist/decorators/columns/enum.column.js.map +1 -1
- package/dist/decorators/columns/index.d.ts +3 -0
- package/dist/decorators/columns/index.d.ts.map +1 -1
- package/dist/decorators/columns/index.js +3 -0
- package/dist/decorators/columns/index.js.map +1 -1
- package/dist/decorators/columns/nested.column.d.ts +2 -2
- package/dist/decorators/columns/nested.column.d.ts.map +1 -1
- package/dist/decorators/columns/nested.column.js +2 -2
- package/dist/decorators/columns/nested.column.js.map +1 -1
- package/dist/decorators/columns/number.column.d.ts +2 -2
- package/dist/decorators/columns/number.column.d.ts.map +1 -1
- package/dist/decorators/columns/number.column.js +2 -1
- package/dist/decorators/columns/number.column.js.map +1 -1
- package/dist/decorators/columns/object.column.d.ts +4 -0
- package/dist/decorators/columns/object.column.d.ts.map +1 -0
- package/dist/decorators/columns/object.column.js +13 -0
- package/dist/decorators/columns/object.column.js.map +1 -0
- package/dist/decorators/columns/string.column.d.ts +2 -2
- package/dist/decorators/columns/string.column.d.ts.map +1 -1
- package/dist/decorators/columns/string.column.js +10 -7
- package/dist/decorators/columns/string.column.js.map +1 -1
- package/dist/decorators/columns/swagger.column.d.ts +2 -2
- package/dist/decorators/columns/swagger.column.d.ts.map +1 -1
- package/dist/decorators/columns/swagger.column.js +10 -1
- package/dist/decorators/columns/swagger.column.js.map +1 -1
- package/dist/decorators/columns/timestamp.column.d.ts +6 -0
- package/dist/decorators/columns/timestamp.column.d.ts.map +1 -0
- package/dist/decorators/columns/timestamp.column.js +55 -0
- package/dist/decorators/columns/timestamp.column.js.map +1 -0
- package/dist/decorators/columns/transform.column.d.ts +2 -2
- package/dist/decorators/columns/transform.column.d.ts.map +1 -1
- package/dist/decorators/columns/transform.column.js +5 -2
- package/dist/decorators/columns/transform.column.js.map +1 -1
- package/dist/decorators/columns/virtual.column.d.ts +4 -0
- package/dist/decorators/columns/virtual.column.d.ts.map +1 -0
- package/dist/decorators/columns/virtual.column.js +23 -0
- package/dist/decorators/columns/virtual.column.js.map +1 -0
- package/dist/decorators/index.d.ts +2 -0
- package/dist/decorators/index.d.ts.map +1 -1
- package/dist/decorators/index.js +1 -0
- package/dist/decorators/index.js.map +1 -1
- package/dist/decorators/table.decorator.d.ts +31 -2
- package/dist/decorators/table.decorator.d.ts.map +1 -1
- package/dist/decorators/table.decorator.js +55 -24
- package/dist/decorators/table.decorator.js.map +1 -1
- package/dist/decorators/timestamp.decorator.d.ts +4 -0
- package/dist/decorators/timestamp.decorator.d.ts.map +1 -0
- package/dist/decorators/timestamp.decorator.js +19 -0
- package/dist/decorators/timestamp.decorator.js.map +1 -0
- package/dist/helpers/index.d.ts +0 -1
- package/dist/helpers/index.d.ts.map +1 -1
- package/dist/helpers/index.js +0 -1
- package/dist/helpers/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/models/mysql.model.d.ts.map +1 -1
- package/dist/models/mysql.model.js +4 -11
- package/dist/models/mysql.model.js.map +1 -1
- package/dist/mysql.repo.d.ts +1 -2
- package/dist/mysql.repo.d.ts.map +1 -1
- package/dist/mysql.repo.js +0 -15
- package/dist/mysql.repo.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/dist/helpers/mysql.finder.d.ts +0 -15
- package/dist/helpers/mysql.finder.d.ts.map +0 -1
- package/dist/helpers/mysql.finder.js +0 -128
- package/dist/helpers/mysql.finder.js.map +0 -1
|
@@ -3,30 +3,176 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.PrimaryGeneratedColumn = void 0;
|
|
4
4
|
exports.Column = Column;
|
|
5
5
|
exports.PrimaryColumn = PrimaryColumn;
|
|
6
|
+
const core_1 = require("@joktec/core");
|
|
7
|
+
const utils_1 = require("@joktec/utils");
|
|
6
8
|
const typeorm_1 = require("typeorm");
|
|
9
|
+
const mysql_exception_1 = require("../mysql.exception");
|
|
7
10
|
const columns_1 = require("./columns");
|
|
8
11
|
function Column(...args) {
|
|
9
12
|
const { type, options } = (0, columns_1.parseColumnArgs)(args);
|
|
10
13
|
return (target, propertyKey) => {
|
|
11
|
-
const designType = Reflect.getMetadata('design:
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
const designType = (Reflect.getMetadata('design:returntype', target, propertyKey) ||
|
|
15
|
+
Reflect.getMetadata('design:type', target, propertyKey));
|
|
16
|
+
(0, columns_1.applyPropertyDecorators)(target, propertyKey, buildMysqlColumnDecorators(type, options, designType));
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
const getColumnKind = (options) => {
|
|
20
|
+
if (options.kind)
|
|
21
|
+
return options.kind;
|
|
22
|
+
if ('virtual' in options && options.virtual === true)
|
|
23
|
+
return 'virtual';
|
|
24
|
+
return 'normal';
|
|
25
|
+
};
|
|
26
|
+
function buildMysqlColumnDecorators(type, options, designType) {
|
|
27
|
+
const kind = getColumnKind(options);
|
|
28
|
+
if (kind === 'virtual') {
|
|
29
|
+
return isSqlVirtualColumnOptions(options)
|
|
30
|
+
? buildSqlVirtualDecorators(type, options, designType)
|
|
31
|
+
: (0, columns_1.buildVirtualColumnDecorators)(options, designType);
|
|
32
|
+
}
|
|
33
|
+
if (kind === 'view')
|
|
34
|
+
return buildViewColumnDecorators(options, designType);
|
|
35
|
+
if (kind === 'version') {
|
|
36
|
+
return [
|
|
37
|
+
...(0, columns_1.buildVersionColumnDecorators)(options),
|
|
38
|
+
...buildColumnExtraDecorators(options),
|
|
39
|
+
];
|
|
40
|
+
}
|
|
41
|
+
if (kind === 'relation')
|
|
42
|
+
return buildRelationColumnDecorators(options, designType);
|
|
43
|
+
if (kind === 'relation-id') {
|
|
44
|
+
return buildRelationIdColumnDecorators(options, designType);
|
|
45
|
+
}
|
|
46
|
+
if (kind === 'tree')
|
|
47
|
+
return buildTreeColumnDecorators(options, designType);
|
|
48
|
+
const typeormOptions = (0, columns_1.toTypeormOptions)(options);
|
|
49
|
+
const typeormDecorator = type ? typeorm_1.Column(type, typeormOptions) : (0, typeorm_1.Column)(typeormOptions);
|
|
50
|
+
return [
|
|
51
|
+
typeormDecorator,
|
|
52
|
+
...buildColumnExtraDecorators(options),
|
|
53
|
+
...(0, columns_1.buildColumnDecorators)(options, designType),
|
|
54
|
+
];
|
|
55
|
+
}
|
|
56
|
+
const isSqlVirtualColumnOptions = (options) => {
|
|
57
|
+
const rawOptions = options;
|
|
58
|
+
return (options.kind === 'virtual' && ('query' in options || rawOptions.mode === 'sql' || rawOptions.virtual === 'sql'));
|
|
59
|
+
};
|
|
60
|
+
function buildSqlVirtualDecorators(type, options, designType) {
|
|
61
|
+
const sqlVirtualOptions = (0, columns_1.cloneColumnOptions)({ ...options, immutable: options.immutable ?? true });
|
|
62
|
+
const typeormOptions = (0, columns_1.toTypeormOptions)(sqlVirtualOptions);
|
|
63
|
+
const columnType = type || sqlVirtualOptions.type || sqlVirtualOptions.columnType;
|
|
64
|
+
const typeormDecorator = columnType
|
|
65
|
+
? typeorm_1.VirtualColumn(columnType, typeormOptions)
|
|
66
|
+
: (0, typeorm_1.VirtualColumn)(typeormOptions);
|
|
67
|
+
return [typeormDecorator, ...(0, columns_1.buildColumnDecorators)(sqlVirtualOptions, designType)];
|
|
68
|
+
}
|
|
69
|
+
function buildViewColumnDecorators(options, designType) {
|
|
70
|
+
const viewOptions = (0, columns_1.cloneColumnOptions)({ ...options, immutable: options.immutable ?? true });
|
|
71
|
+
return [(0, typeorm_1.ViewColumn)((0, columns_1.toTypeormOptions)(viewOptions)), ...(0, columns_1.buildColumnDecorators)(viewOptions, designType)];
|
|
72
|
+
}
|
|
73
|
+
function buildRelationColumnDecorators(options, designType) {
|
|
74
|
+
const relationOptions = options.relationOptions ?? { nullable: options.nullable };
|
|
75
|
+
const relationDecorator = (() => {
|
|
76
|
+
if (options.relation === 'many-to-one')
|
|
77
|
+
return (0, typeorm_1.ManyToOne)(options.type, options.inverseSide, relationOptions);
|
|
78
|
+
if (options.relation === 'one-to-many')
|
|
79
|
+
return (0, typeorm_1.OneToMany)(options.type, options.inverseSide, relationOptions);
|
|
80
|
+
if (options.relation === 'one-to-one')
|
|
81
|
+
return (0, typeorm_1.OneToOne)(options.type, options.inverseSide, relationOptions);
|
|
82
|
+
return (0, typeorm_1.ManyToMany)(options.type, options.inverseSide, relationOptions);
|
|
83
|
+
})();
|
|
84
|
+
const decorators = [relationDecorator, ...buildRelationMetadataDecorators(options, designType)];
|
|
85
|
+
decorators.push(...buildColumnExtraDecorators(options));
|
|
86
|
+
if (options.joinColumn)
|
|
87
|
+
decorators.push(options.joinColumn === true ? (0, typeorm_1.JoinColumn)() : (0, typeorm_1.JoinColumn)(options.joinColumn));
|
|
88
|
+
if (options.joinTable)
|
|
89
|
+
decorators.push(options.joinTable === true ? (0, typeorm_1.JoinTable)() : (0, typeorm_1.JoinTable)(options.joinTable));
|
|
90
|
+
return decorators;
|
|
91
|
+
}
|
|
92
|
+
function buildRelationIdColumnDecorators(options, designType) {
|
|
93
|
+
const relationIdOptions = { ...options, immutable: options.immutable ?? true };
|
|
94
|
+
return [
|
|
95
|
+
(0, typeorm_1.RelationId)(relationIdOptions.relationId, relationIdOptions.relationIdAlias, relationIdOptions.relationIdQuery),
|
|
96
|
+
...buildColumnExtraDecorators(relationIdOptions),
|
|
97
|
+
...(0, columns_1.buildColumnDecorators)(relationIdOptions, designType),
|
|
98
|
+
];
|
|
99
|
+
}
|
|
100
|
+
function buildColumnExtraDecorators(options) {
|
|
101
|
+
return [...buildColumnIndexDecorators(options.index), ...buildColumnCheckDecorators(options.check)];
|
|
102
|
+
}
|
|
103
|
+
function buildColumnIndexDecorators(index) {
|
|
104
|
+
if (!index)
|
|
105
|
+
return [];
|
|
106
|
+
if (index === true)
|
|
107
|
+
return [(0, typeorm_1.Index)()];
|
|
108
|
+
if (typeof index === 'string')
|
|
109
|
+
return [(0, typeorm_1.Index)(index)];
|
|
110
|
+
if ('options' in index || 'name' in index) {
|
|
111
|
+
const namedIndex = index;
|
|
112
|
+
return [namedIndex.name ? (0, typeorm_1.Index)(namedIndex.name, namedIndex.options) : (0, typeorm_1.Index)(namedIndex.options)];
|
|
113
|
+
}
|
|
114
|
+
return [(0, typeorm_1.Index)(index)];
|
|
115
|
+
}
|
|
116
|
+
function buildColumnCheckDecorators(check) {
|
|
117
|
+
if (!check)
|
|
118
|
+
return [];
|
|
119
|
+
if (typeof check === 'string')
|
|
120
|
+
return [(0, typeorm_1.Check)(check)];
|
|
121
|
+
return [check.name ? (0, typeorm_1.Check)(check.name, check.expression) : (0, typeorm_1.Check)(check.expression)];
|
|
122
|
+
}
|
|
123
|
+
function buildRelationMetadataDecorators(options, designType) {
|
|
124
|
+
const decorators = [...(options.decorators || [])];
|
|
125
|
+
const targetResolver = typeof options.type === 'function' ? options.type : undefined;
|
|
126
|
+
const isArray = designType === Array || ('relation' in options && ['one-to-many', 'many-to-many'].includes(options.relation));
|
|
127
|
+
const required = (0, columns_1.resolveRequired)(options).required;
|
|
128
|
+
if (targetResolver)
|
|
129
|
+
decorators.push((0, utils_1.Type)(() => targetResolver()), (0, utils_1.ValidateNested)({ each: isArray }));
|
|
130
|
+
if (options.hidden)
|
|
131
|
+
return [...decorators, (0, utils_1.Exclude)({ toPlainOnly: true }), (0, core_1.ApiHideProperty)()];
|
|
132
|
+
decorators.push(options.groups?.length ? (0, utils_1.Expose)({ groups: options.groups }) : (0, utils_1.Expose)());
|
|
133
|
+
const swaggerOptions = {
|
|
134
|
+
type: targetResolver || designType,
|
|
135
|
+
isArray,
|
|
136
|
+
required,
|
|
137
|
+
nullable: options.nullable === true,
|
|
138
|
+
description: options.comment,
|
|
139
|
+
example: options.example,
|
|
140
|
+
deprecated: options.deprecated,
|
|
141
|
+
readOnly: options.immutable,
|
|
142
|
+
...options.swagger,
|
|
15
143
|
};
|
|
144
|
+
decorators.push(required ? (0, core_1.ApiProperty)(swaggerOptions) : (0, core_1.ApiPropertyOptional)(swaggerOptions));
|
|
145
|
+
return decorators;
|
|
146
|
+
}
|
|
147
|
+
function buildTreeColumnDecorators(options, designType) {
|
|
148
|
+
if (options.tree === 'level') {
|
|
149
|
+
const levelOptions = { ...options, immutable: options.immutable ?? true };
|
|
150
|
+
return [(0, typeorm_1.TreeLevelColumn)(), ...buildRelationMetadataDecorators(levelOptions, designType)];
|
|
151
|
+
}
|
|
152
|
+
if (options.tree === 'children') {
|
|
153
|
+
return [(0, typeorm_1.TreeChildren)({ cascade: options.cascade }), ...buildRelationMetadataDecorators(options, Array)];
|
|
154
|
+
}
|
|
155
|
+
return [(0, typeorm_1.TreeParent)({ onDelete: options.onDelete }), ...buildRelationMetadataDecorators(options, designType)];
|
|
16
156
|
}
|
|
17
157
|
function PrimaryColumn(strategyOrOptions = 'increment', options = {}) {
|
|
18
158
|
return (target, propertyKey) => {
|
|
19
159
|
const designType = Reflect.getMetadata('design:type', target, propertyKey);
|
|
20
160
|
const strategy = typeof strategyOrOptions === 'string' ? strategyOrOptions : 'increment';
|
|
21
161
|
const primaryOptions = (0, columns_1.cloneColumnOptions)(typeof strategyOrOptions === 'string' ? options : strategyOrOptions);
|
|
162
|
+
if (String(strategy).toLowerCase() === 'objectid') {
|
|
163
|
+
throw new mysql_exception_1.MysqlException('MYSQL_MONGO_PRIMARY_UNSUPPORTED', {
|
|
164
|
+
reason: '@joktec/mysql does not support Mongo ObjectId primary columns. Use @joktec/mongo.',
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
(0, columns_1.assertNoMongoColumn)(primaryOptions);
|
|
22
168
|
const primaryDecorator = (0, columns_1.buildPrimaryDecorator)(strategy, primaryOptions, target, propertyKey);
|
|
23
169
|
(0, columns_1.applyPropertyDecorators)(target, propertyKey, [
|
|
24
170
|
primaryDecorator,
|
|
25
171
|
...(0, columns_1.buildColumnDecorators)({
|
|
26
172
|
...primaryOptions,
|
|
173
|
+
immutable: primaryOptions.immutable ?? true,
|
|
27
174
|
nullable: false,
|
|
28
175
|
required: primaryOptions.required ?? false,
|
|
29
|
-
swagger: { readOnly: true, ...primaryOptions.swagger },
|
|
30
176
|
}, designType),
|
|
31
177
|
]);
|
|
32
178
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column.decorator.js","sourceRoot":"","sources":["../../src/decorators/column.decorator.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"column.decorator.js","sourceRoot":"","sources":["../../src/decorators/column.decorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.column.d.ts","sourceRoot":"","sources":["../../../src/decorators/columns/array.column.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"array.column.d.ts","sourceRoot":"","sources":["../../../src/decorators/columns/array.column.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAGzD,wBAAgB,WAAW,CAAC,OAAO,EAAE,wBAAwB,GAAG,iBAAiB,EAAE,CAQlF"}
|
|
@@ -2,7 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ArrayColumn = ArrayColumn;
|
|
4
4
|
const utils_1 = require("@joktec/utils");
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
const string_column_1 = require("./string.column");
|
|
6
|
+
function ArrayColumn(options) {
|
|
7
|
+
const decorators = [(0, utils_1.IsArray)()];
|
|
8
|
+
if (options.columnType === 'simple-array') {
|
|
9
|
+
decorators.push(...(0, string_column_1.StringColumn)({ ...options, each: true }));
|
|
10
|
+
}
|
|
11
|
+
return decorators;
|
|
7
12
|
}
|
|
8
13
|
//# sourceMappingURL=array.column.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array.column.js","sourceRoot":"","sources":["../../../src/decorators/columns/array.column.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"array.column.js","sourceRoot":"","sources":["../../../src/decorators/columns/array.column.ts"],"names":[],"mappings":";;AAIA,kCAQC;AAZD,yCAAwC;AAExC,mDAA+C;AAE/C,SAAgB,WAAW,CAAC,OAAiC;IAC3D,MAAM,UAAU,GAAwB,CAAC,IAAA,eAAO,GAAE,CAAC,CAAC;IAEpD,IAAI,OAAO,CAAC,UAAU,KAAK,cAAc,EAAE,CAAC;QAC1C,UAAU,CAAC,IAAI,CAAC,GAAG,IAAA,4BAAY,EAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Constructor } from '@joktec/core';
|
|
2
|
-
import {
|
|
3
|
-
export declare function buildValidationDecorators(options:
|
|
4
|
-
export declare function buildColumnDecorators(options:
|
|
2
|
+
import { IMysqlColumnBuildOptions } from './column.type';
|
|
3
|
+
export declare function buildValidationDecorators(options: IMysqlColumnBuildOptions, designType: Constructor<any>): PropertyDecorator[];
|
|
4
|
+
export declare function buildColumnDecorators(options: IMysqlColumnBuildOptions, designType: Constructor<any>): PropertyDecorator[];
|
|
5
5
|
//# sourceMappingURL=column.factory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column.factory.d.ts","sourceRoot":"","sources":["../../../src/decorators/columns/column.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAI3C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"column.factory.d.ts","sourceRoot":"","sources":["../../../src/decorators/columns/column.factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAI3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAazD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,wBAAwB,EACjC,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,GAC3B,iBAAiB,EAAE,CAiBrB;AAKD,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,wBAAwB,EACjC,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,GAC3B,iBAAiB,EAAE,CAGrB"}
|
|
@@ -10,6 +10,7 @@ const date_column_1 = require("./date.column");
|
|
|
10
10
|
const enum_column_1 = require("./enum.column");
|
|
11
11
|
const nested_column_1 = require("./nested.column");
|
|
12
12
|
const number_column_1 = require("./number.column");
|
|
13
|
+
const object_column_1 = require("./object.column");
|
|
13
14
|
const string_column_1 = require("./string.column");
|
|
14
15
|
const transform_column_1 = require("./transform.column");
|
|
15
16
|
function buildValidationDecorators(options, designType) {
|
|
@@ -27,8 +28,9 @@ function buildValidationDecorators(options, designType) {
|
|
|
27
28
|
decorators.push(...(0, bool_column_1.BoolColumn)());
|
|
28
29
|
if (designType === Date)
|
|
29
30
|
decorators.push(...(0, date_column_1.DateColumn)());
|
|
30
|
-
if (
|
|
31
|
-
decorators.push(...(0, array_column_1.ArrayColumn)());
|
|
31
|
+
if ((0, column_util_1.isArrayColumn)(options, designType))
|
|
32
|
+
decorators.push(...(0, array_column_1.ArrayColumn)(options));
|
|
33
|
+
decorators.push(...(0, object_column_1.ObjectColumn)(options, designType));
|
|
32
34
|
decorators.push(...(0, enum_column_1.EnumColumn)(options));
|
|
33
35
|
decorators.push(...(0, nested_column_1.NestedColumn)(options, designType));
|
|
34
36
|
return decorators;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column.factory.js","sourceRoot":"","sources":["../../../src/decorators/columns/column.factory.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"column.factory.js","sourceRoot":"","sources":["../../../src/decorators/columns/column.factory.ts"],"names":[],"mappings":";;AAiBA,8DAoBC;AAKD,sDAMC;AA/CD,yCAAuD;AACvD,iDAA6C;AAC7C,+CAA2C;AAE3C,+CAA+D;AAC/D,+CAA2C;AAC3C,+CAA2C;AAC3C,mDAA+C;AAC/C,mDAA+C;AAC/C,mDAA+C;AAC/C,mDAA+C;AAC/C,yDAAqD;AAKrD,SAAgB,yBAAyB,CACvC,OAAiC,EACjC,UAA4B;IAE5B,MAAM,UAAU,GAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC;IACxE,MAAM,QAAQ,GAAG,IAAA,6BAAe,EAAC,OAAO,CAAC,CAAC;IAE1C,IAAI,QAAQ,CAAC,QAAQ;QAAE,UAAU,CAAC,IAAI,CAAC,IAAA,kBAAU,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;;QAC5G,UAAU,CAAC,IAAI,CAAC,IAAA,kBAAU,GAAE,CAAC,CAAC;IAEnC,IAAI,UAAU,KAAK,MAAM;QAAE,UAAU,CAAC,IAAI,CAAC,GAAG,IAAA,4BAAY,EAAC,OAAO,CAAC,CAAC,CAAC;IACrE,IAAI,UAAU,KAAK,MAAM;QAAE,UAAU,CAAC,IAAI,CAAC,GAAG,IAAA,4BAAY,EAAC,OAAO,CAAC,CAAC,CAAC;IACrE,IAAI,UAAU,KAAK,OAAO;QAAE,UAAU,CAAC,IAAI,CAAC,GAAG,IAAA,wBAAU,GAAE,CAAC,CAAC;IAC7D,IAAI,UAAU,KAAK,IAAI;QAAE,UAAU,CAAC,IAAI,CAAC,GAAG,IAAA,wBAAU,GAAE,CAAC,CAAC;IAC1D,IAAI,IAAA,2BAAa,EAAC,OAAO,EAAE,UAAU,CAAC;QAAE,UAAU,CAAC,IAAI,CAAC,GAAG,IAAA,0BAAW,EAAC,OAAO,CAAC,CAAC,CAAC;IACjF,UAAU,CAAC,IAAI,CAAC,GAAG,IAAA,4BAAY,EAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IACtD,UAAU,CAAC,IAAI,CAAC,GAAG,IAAA,wBAAU,EAAC,OAAO,CAAC,CAAC,CAAC;IACxC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAA,4BAAY,EAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IAEtD,OAAO,UAAU,CAAC;AACpB,CAAC;AAKD,SAAgB,qBAAqB,CACnC,OAAiC,EACjC,UAA4B;IAE5B,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,6BAAe,EAAC,OAAO,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,yBAAyB,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,GAAG,IAAA,kCAAe,EAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;AAChH,CAAC"}
|
|
@@ -1,20 +1,51 @@
|
|
|
1
1
|
import { ApiPropertyOptions, Constructor } from '@joktec/core';
|
|
2
|
-
import {
|
|
2
|
+
import { ExposeOptions } from '@joktec/utils';
|
|
3
|
+
import { ColumnOptions, ColumnType, IndexOptions, JoinColumnOptions, JoinTableOptions, RelationOptions, SelectQueryBuilder, ValueTransformer } from 'typeorm';
|
|
3
4
|
export type RequiredOption = boolean | [boolean, string];
|
|
4
5
|
export type PrimaryColumnStrategy = 'increment' | 'uuid' | 'uuidv7' | 'rowid' | 'identity';
|
|
5
|
-
export
|
|
6
|
+
export type MysqlFieldDecorator = PropertyDecorator & MethodDecorator;
|
|
7
|
+
type AllKeys<T> = T extends unknown ? keyof T : never;
|
|
8
|
+
type StrictUnionHelper<T, TAll> = T extends unknown ? T & Partial<Record<Exclude<AllKeys<TAll>, keyof T>, never>> : never;
|
|
9
|
+
export type StrictUnion<T> = StrictUnionHelper<T, T>;
|
|
10
|
+
export type MysqlColumnKind = 'normal' | 'virtual' | 'view' | 'version' | 'relation' | 'relation-id' | 'tree';
|
|
11
|
+
export type MysqlVirtualColumnMode = 'getter' | 'sql';
|
|
12
|
+
export type MysqlRelationKind = 'many-to-one' | 'one-to-many' | 'one-to-one' | 'many-to-many';
|
|
13
|
+
export type MysqlTreePropertyKind = 'parent' | 'children' | 'level';
|
|
14
|
+
export type MysqlRelationTarget = string | (() => Function);
|
|
15
|
+
export type MysqlRelationInverseSide<T = any> = string | ((object: T) => any);
|
|
16
|
+
export type MysqlRelationIdFactory<T = any> = string | ((object: T) => any);
|
|
17
|
+
export type MysqlColumnIndexOptions = boolean | string | IndexOptions | {
|
|
18
|
+
name?: string;
|
|
19
|
+
options?: IndexOptions;
|
|
20
|
+
};
|
|
21
|
+
export type MysqlColumnCheckOptions = string | {
|
|
22
|
+
name?: string;
|
|
23
|
+
expression: string;
|
|
24
|
+
};
|
|
25
|
+
export interface IMysqlColumnCommonOptions {
|
|
6
26
|
hidden?: boolean;
|
|
7
|
-
|
|
27
|
+
optional?: boolean;
|
|
28
|
+
expose?: ExposeOptions;
|
|
8
29
|
example?: any;
|
|
9
30
|
deprecated?: boolean;
|
|
31
|
+
immutable?: boolean;
|
|
10
32
|
groups?: string[];
|
|
11
33
|
decorators?: PropertyDecorator[];
|
|
12
34
|
swagger?: ApiPropertyOptions;
|
|
13
35
|
required?: RequiredOption;
|
|
36
|
+
comment?: string;
|
|
37
|
+
nullable?: boolean;
|
|
38
|
+
}
|
|
39
|
+
export interface IMysqlColumnValidationOptions {
|
|
40
|
+
nested?: boolean | Constructor<any>;
|
|
41
|
+
each?: boolean;
|
|
14
42
|
isEmail?: boolean;
|
|
15
43
|
isPhone?: boolean;
|
|
16
44
|
isHexColor?: boolean;
|
|
17
45
|
isUrl?: boolean;
|
|
46
|
+
isInt?: boolean;
|
|
47
|
+
isUUID?: boolean;
|
|
48
|
+
isObject?: boolean;
|
|
18
49
|
minlength?: number;
|
|
19
50
|
maxlength?: number;
|
|
20
51
|
minLength?: number;
|
|
@@ -22,12 +53,84 @@ export interface IMysqlColumnOptions extends ColumnOptions {
|
|
|
22
53
|
min?: number;
|
|
23
54
|
max?: number;
|
|
24
55
|
}
|
|
25
|
-
export interface
|
|
56
|
+
export interface IMysqlColumnDatabaseOptions {
|
|
57
|
+
index?: MysqlColumnIndexOptions;
|
|
58
|
+
check?: MysqlColumnCheckOptions;
|
|
59
|
+
}
|
|
60
|
+
export interface IMysqlNormalColumnOptions extends ColumnOptions, IMysqlColumnCommonOptions, IMysqlColumnValidationOptions, IMysqlColumnDatabaseOptions {
|
|
61
|
+
kind?: 'normal';
|
|
62
|
+
virtual?: false;
|
|
63
|
+
columnType?: ColumnType;
|
|
64
|
+
}
|
|
65
|
+
export interface IMysqlVirtualGetterColumnOptions extends IMysqlColumnCommonOptions {
|
|
66
|
+
kind?: 'virtual';
|
|
67
|
+
mode?: 'getter';
|
|
68
|
+
virtual?: true | 'getter';
|
|
69
|
+
}
|
|
70
|
+
export interface IMysqlSqlVirtualColumnOptions extends IMysqlColumnCommonOptions, IMysqlColumnValidationOptions {
|
|
71
|
+
kind: 'virtual';
|
|
72
|
+
mode: 'sql';
|
|
73
|
+
virtual?: 'sql';
|
|
74
|
+
type?: ColumnType;
|
|
75
|
+
columnType?: ColumnType;
|
|
76
|
+
select?: boolean;
|
|
77
|
+
hstoreType?: 'object' | 'string';
|
|
78
|
+
query: (alias: string) => string;
|
|
79
|
+
transformer?: ValueTransformer | ValueTransformer[];
|
|
80
|
+
}
|
|
81
|
+
export interface IMysqlViewColumnOptions extends IMysqlColumnCommonOptions, IMysqlColumnValidationOptions {
|
|
82
|
+
kind: 'view';
|
|
83
|
+
name?: string;
|
|
84
|
+
transformer?: ValueTransformer | ValueTransformer[];
|
|
85
|
+
}
|
|
86
|
+
export interface IMysqlVersionColumnOptions extends IMysqlColumnCommonOptions, IMysqlColumnValidationOptions {
|
|
87
|
+
kind?: 'version';
|
|
88
|
+
name?: string;
|
|
89
|
+
type?: ColumnType;
|
|
90
|
+
default?: any;
|
|
91
|
+
select?: boolean;
|
|
92
|
+
index?: MysqlColumnIndexOptions;
|
|
93
|
+
check?: MysqlColumnCheckOptions;
|
|
94
|
+
transformer?: ValueTransformer | ValueTransformer[];
|
|
95
|
+
}
|
|
96
|
+
export interface IMysqlRelationColumnOptions extends IMysqlColumnCommonOptions {
|
|
97
|
+
kind: 'relation';
|
|
98
|
+
relation: MysqlRelationKind;
|
|
99
|
+
type: MysqlRelationTarget;
|
|
100
|
+
inverseSide?: MysqlRelationInverseSide;
|
|
101
|
+
relationOptions?: RelationOptions;
|
|
102
|
+
joinColumn?: boolean | JoinColumnOptions | JoinColumnOptions[];
|
|
103
|
+
joinTable?: boolean | JoinTableOptions | any;
|
|
104
|
+
index?: MysqlColumnIndexOptions;
|
|
105
|
+
}
|
|
106
|
+
export interface IMysqlRelationIdColumnOptions extends IMysqlColumnCommonOptions, IMysqlColumnValidationOptions, IMysqlColumnDatabaseOptions {
|
|
107
|
+
kind: 'relation-id';
|
|
108
|
+
relationId: MysqlRelationIdFactory;
|
|
109
|
+
relationIdAlias?: string;
|
|
110
|
+
relationIdQuery?: (qb: SelectQueryBuilder<any>) => SelectQueryBuilder<any>;
|
|
111
|
+
}
|
|
112
|
+
export interface IMysqlTreeColumnOptions extends IMysqlColumnCommonOptions {
|
|
113
|
+
kind: 'tree';
|
|
114
|
+
tree: MysqlTreePropertyKind;
|
|
115
|
+
type?: MysqlRelationTarget;
|
|
116
|
+
cascade?: boolean | ('insert' | 'update' | 'remove' | 'soft-remove' | 'recover')[];
|
|
117
|
+
onDelete?: 'RESTRICT' | 'CASCADE' | 'SET NULL' | 'DEFAULT' | 'NO ACTION';
|
|
118
|
+
}
|
|
119
|
+
export type IMysqlColumnOptions = StrictUnion<IMysqlNormalColumnOptions | IMysqlVirtualGetterColumnOptions | IMysqlSqlVirtualColumnOptions | IMysqlViewColumnOptions | IMysqlVersionColumnOptions | IMysqlRelationColumnOptions | IMysqlRelationIdColumnOptions | IMysqlTreeColumnOptions>;
|
|
120
|
+
export type IMysqlColumnBuildOptions = Partial<ColumnOptions> & IMysqlColumnCommonOptions & IMysqlColumnValidationOptions & {
|
|
121
|
+
kind?: MysqlColumnKind;
|
|
122
|
+
virtual?: boolean | MysqlVirtualColumnMode;
|
|
123
|
+
columnType?: ColumnType;
|
|
124
|
+
};
|
|
125
|
+
export interface IMysqlPrimaryColumnOptions extends Omit<IMysqlNormalColumnOptions, 'primary' | 'nullable' | 'kind'> {
|
|
26
126
|
nullable?: false;
|
|
27
127
|
}
|
|
128
|
+
export interface IMysqlTimestampColumnOptions extends Omit<IMysqlNormalColumnOptions, 'columnType' | 'kind'> {
|
|
129
|
+
}
|
|
28
130
|
export type ColumnDecoratorArgs = [IMysqlColumnOptions?] | [ColumnType, IMysqlColumnOptions?];
|
|
29
131
|
export interface RequiredResult {
|
|
30
132
|
required: boolean;
|
|
31
133
|
message?: string;
|
|
32
134
|
}
|
|
135
|
+
export {};
|
|
33
136
|
//# sourceMappingURL=column.type.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column.type.d.ts","sourceRoot":"","sources":["../../../src/decorators/columns/column.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"column.type.d.ts","sourceRoot":"","sources":["../../../src/decorators/columns/column.type.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
import { Constructor } from '@joktec/core';
|
|
2
2
|
import { ColumnOptions, ColumnType } from 'typeorm';
|
|
3
|
-
import { ColumnDecoratorArgs, IMysqlColumnOptions, RequiredResult } from './column.type';
|
|
3
|
+
import { ColumnDecoratorArgs, IMysqlColumnBuildOptions, IMysqlColumnOptions, RequiredResult } from './column.type';
|
|
4
4
|
export declare const applyPropertyDecorators: (target: object, propertyKey: string | symbol, decorators: PropertyDecorator[]) => void;
|
|
5
5
|
export declare const cloneColumnOptions: <T extends IMysqlColumnOptions>(options?: T) => T;
|
|
6
|
-
export declare const toTypeormOptions: <T extends
|
|
6
|
+
export declare const toTypeormOptions: <T extends Record<string, any>>(options: T) => ColumnOptions;
|
|
7
7
|
export declare const parseColumnArgs: (args: ColumnDecoratorArgs) => {
|
|
8
8
|
type?: ColumnType;
|
|
9
9
|
options: IMysqlColumnOptions;
|
|
10
10
|
};
|
|
11
|
-
export declare const resolveRequired: (options: IMysqlColumnOptions) => RequiredResult;
|
|
12
|
-
export declare const getLengthValue: (value: string | number | undefined) => number;
|
|
13
|
-
export declare const enumValues: (enumLike:
|
|
14
|
-
export declare const resolveNestedType: (nested:
|
|
11
|
+
export declare const resolveRequired: (options: Pick<IMysqlColumnOptions, "optional" | "required" | "nullable">) => RequiredResult;
|
|
12
|
+
export declare const getLengthValue: (value: string | number | undefined) => number | undefined;
|
|
13
|
+
export declare const enumValues: (enumLike: ColumnOptions["enum"]) => any[] | undefined;
|
|
14
|
+
export declare const resolveNestedType: (nested: IMysqlColumnBuildOptions["nested"], designType: Constructor<any>) => Constructor<any>;
|
|
15
|
+
export declare const isCustomClass: (designType: Constructor<any>) => boolean;
|
|
16
|
+
export declare const resolveTransformType: (options: IMysqlColumnBuildOptions, designType: Constructor<any>) => Constructor<any> | undefined;
|
|
17
|
+
export declare const shouldValidateNested: (options: IMysqlColumnBuildOptions, designType: Constructor<any>) => boolean;
|
|
18
|
+
export declare const isArrayColumn: (options: IMysqlColumnBuildOptions, designType?: Constructor<any>) => boolean;
|
|
19
|
+
export declare const isJsonColumn: (options: IMysqlColumnBuildOptions) => boolean;
|
|
20
|
+
export declare const isIntegerColumn: (options: IMysqlColumnBuildOptions) => boolean;
|
|
21
|
+
export declare const assertNoMongoColumn: (options: IMysqlColumnOptions) => void;
|
|
15
22
|
//# sourceMappingURL=column.util.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column.util.d.ts","sourceRoot":"","sources":["../../../src/decorators/columns/column.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAmB,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"column.util.d.ts","sourceRoot":"","sources":["../../../src/decorators/columns/column.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAmB,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEpD,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AA+CnH,eAAO,MAAM,uBAAuB,WAC1B,MAAM,eACD,MAAM,GAAG,MAAM,cAChB,iBAAiB,EAAE,KAC9B,IAEF,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,CAAC,SAAS,mBAAmB,YAAW,CAAC,KAAa,CAExF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC,KAAG,aAM5E,CAAC;AAEF,eAAO,MAAM,eAAe,SAAU,mBAAmB,KAAG;IAAE,IAAI,CAAC,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,mBAAmB,CAAA;CAY5G,CAAC;AAEF,eAAO,MAAM,eAAe,YACjB,IAAI,CAAC,mBAAmB,EAAE,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC,KACvE,cAKF,CAAC;AAEF,eAAO,MAAM,cAAc,UAAW,MAAM,GAAG,MAAM,GAAG,SAAS,KAAG,MAAM,GAAG,SAO5E,CAAC;AAEF,eAAO,MAAM,UAAU,aAAc,aAAa,CAAC,MAAM,CAAC,KAAG,GAAG,EAAE,GAAG,SAIpE,CAAC;AAEF,eAAO,MAAM,iBAAiB,WACpB,wBAAwB,CAAC,QAAQ,CAAC,cAC9B,WAAW,CAAC,GAAG,CAAC,KAC3B,WAAW,CAAC,GAAG,CAGjB,CAAC;AAKF,eAAO,MAAM,aAAa,eAAgB,WAAW,CAAC,GAAG,CAAC,KAAG,OAE5D,CAAC;AAEF,eAAO,MAAM,oBAAoB,YACtB,wBAAwB,cACrB,WAAW,CAAC,GAAG,CAAC,KAC3B,WAAW,CAAC,GAAG,CAAC,GAAG,SAIrB,CAAC;AAEF,eAAO,MAAM,oBAAoB,YAAa,wBAAwB,cAAc,WAAW,CAAC,GAAG,CAAC,KAAG,OAItG,CAAC;AAEF,eAAO,MAAM,aAAa,YAAa,wBAAwB,eAAe,WAAW,CAAC,GAAG,CAAC,KAAG,OAEhG,CAAC;AAEF,eAAO,MAAM,YAAY,YAAa,wBAAwB,KAAG,OAGhE,CAAC;AAIF,eAAO,MAAM,eAAe,YAAa,wBAAwB,KAAG,OAGnE,CAAC;AAEF,eAAO,MAAM,mBAAmB,YAAa,mBAAmB,KAAG,IAQlE,CAAC"}
|
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.resolveNestedType = exports.enumValues = exports.getLengthValue = exports.resolveRequired = exports.parseColumnArgs = exports.toTypeormOptions = exports.cloneColumnOptions = exports.applyPropertyDecorators = void 0;
|
|
3
|
+
exports.assertNoMongoColumn = exports.isIntegerColumn = exports.isJsonColumn = exports.isArrayColumn = exports.shouldValidateNested = exports.resolveTransformType = exports.isCustomClass = exports.resolveNestedType = exports.enumValues = exports.getLengthValue = exports.resolveRequired = exports.parseColumnArgs = exports.toTypeormOptions = exports.cloneColumnOptions = exports.applyPropertyDecorators = void 0;
|
|
4
4
|
const core_1 = require("@joktec/core");
|
|
5
|
+
const mysql_exception_1 = require("../../mysql.exception");
|
|
5
6
|
const MYSQL_COLUMN_OPTION_KEYS = new Set([
|
|
7
|
+
'virtual',
|
|
8
|
+
'kind',
|
|
9
|
+
'mode',
|
|
6
10
|
'hidden',
|
|
11
|
+
'optional',
|
|
12
|
+
'expose',
|
|
7
13
|
'nested',
|
|
14
|
+
'each',
|
|
8
15
|
'example',
|
|
9
16
|
'deprecated',
|
|
17
|
+
'immutable',
|
|
10
18
|
'groups',
|
|
11
19
|
'decorators',
|
|
12
20
|
'swagger',
|
|
@@ -15,12 +23,29 @@ const MYSQL_COLUMN_OPTION_KEYS = new Set([
|
|
|
15
23
|
'isPhone',
|
|
16
24
|
'isHexColor',
|
|
17
25
|
'isUrl',
|
|
26
|
+
'isInt',
|
|
27
|
+
'isUUID',
|
|
28
|
+
'isObject',
|
|
18
29
|
'minlength',
|
|
19
30
|
'maxlength',
|
|
20
31
|
'minLength',
|
|
21
32
|
'maxLength',
|
|
22
33
|
'min',
|
|
23
34
|
'max',
|
|
35
|
+
'columnType',
|
|
36
|
+
'index',
|
|
37
|
+
'check',
|
|
38
|
+
'relation',
|
|
39
|
+
'relationOptions',
|
|
40
|
+
'inverseSide',
|
|
41
|
+
'joinColumn',
|
|
42
|
+
'joinTable',
|
|
43
|
+
'relationId',
|
|
44
|
+
'relationIdAlias',
|
|
45
|
+
'relationIdQuery',
|
|
46
|
+
'tree',
|
|
47
|
+
'cascade',
|
|
48
|
+
'onDelete',
|
|
24
49
|
]);
|
|
25
50
|
const applyPropertyDecorators = (target, propertyKey, decorators) => {
|
|
26
51
|
(0, core_1.applyDecorators)(...decorators)(target, propertyKey);
|
|
@@ -44,12 +69,19 @@ const parseColumnArgs = (args) => {
|
|
|
44
69
|
return { options: {} };
|
|
45
70
|
const [first, second] = args;
|
|
46
71
|
if (typeof first === 'string' || typeof first === 'function') {
|
|
47
|
-
|
|
72
|
+
const type = first;
|
|
73
|
+
const options = { ...(0, exports.cloneColumnOptions)(second || {}), columnType: type };
|
|
74
|
+
(0, exports.assertNoMongoColumn)(options);
|
|
75
|
+
return { type, options };
|
|
48
76
|
}
|
|
49
|
-
|
|
77
|
+
const options = (0, exports.cloneColumnOptions)((first || {}));
|
|
78
|
+
(0, exports.assertNoMongoColumn)(options);
|
|
79
|
+
return { options };
|
|
50
80
|
};
|
|
51
81
|
exports.parseColumnArgs = parseColumnArgs;
|
|
52
82
|
const resolveRequired = (options) => {
|
|
83
|
+
if (options.optional)
|
|
84
|
+
return { required: false };
|
|
53
85
|
if (Array.isArray(options.required))
|
|
54
86
|
return { required: options.required[0], message: options.required[1] };
|
|
55
87
|
if (typeof options.required === 'boolean')
|
|
@@ -76,7 +108,56 @@ const enumValues = (enumLike) => {
|
|
|
76
108
|
};
|
|
77
109
|
exports.enumValues = enumValues;
|
|
78
110
|
const resolveNestedType = (nested, designType) => {
|
|
79
|
-
|
|
111
|
+
if (typeof nested === 'function')
|
|
112
|
+
return nested;
|
|
113
|
+
return designType;
|
|
80
114
|
};
|
|
81
115
|
exports.resolveNestedType = resolveNestedType;
|
|
116
|
+
const AUTO_TRANSFORM_TYPES = new Set([String, Number, Boolean, Date]);
|
|
117
|
+
const NON_CLASS_TYPES = new Set([String, Number, Boolean, Date, Array, Object]);
|
|
118
|
+
const isCustomClass = (designType) => {
|
|
119
|
+
return typeof designType === 'function' && !NON_CLASS_TYPES.has(designType);
|
|
120
|
+
};
|
|
121
|
+
exports.isCustomClass = isCustomClass;
|
|
122
|
+
const resolveTransformType = (options, designType) => {
|
|
123
|
+
if (AUTO_TRANSFORM_TYPES.has(designType))
|
|
124
|
+
return designType;
|
|
125
|
+
if ((0, exports.isJsonColumn)(options) && (0, exports.isCustomClass)(designType))
|
|
126
|
+
return designType;
|
|
127
|
+
return undefined;
|
|
128
|
+
};
|
|
129
|
+
exports.resolveTransformType = resolveTransformType;
|
|
130
|
+
const shouldValidateNested = (options, designType) => {
|
|
131
|
+
if (options.nested)
|
|
132
|
+
return true;
|
|
133
|
+
if (!(0, exports.isJsonColumn)(options))
|
|
134
|
+
return false;
|
|
135
|
+
return (0, exports.isCustomClass)(designType);
|
|
136
|
+
};
|
|
137
|
+
exports.shouldValidateNested = shouldValidateNested;
|
|
138
|
+
const isArrayColumn = (options, designType) => {
|
|
139
|
+
return designType === Array || options.array === true || options.columnType === 'simple-array';
|
|
140
|
+
};
|
|
141
|
+
exports.isArrayColumn = isArrayColumn;
|
|
142
|
+
const isJsonColumn = (options) => {
|
|
143
|
+
const type = options.type || options.columnType;
|
|
144
|
+
return type === 'simple-json' || type === 'json' || type === 'jsonb';
|
|
145
|
+
};
|
|
146
|
+
exports.isJsonColumn = isJsonColumn;
|
|
147
|
+
const INTEGER_COLUMN_TYPES = new Set(['int', 'integer', 'tinyint', 'smallint', 'mediumint', 'bigint']);
|
|
148
|
+
const isIntegerColumn = (options) => {
|
|
149
|
+
const type = options.type || options.columnType;
|
|
150
|
+
return options.isInt === true || INTEGER_COLUMN_TYPES.has(String(type));
|
|
151
|
+
};
|
|
152
|
+
exports.isIntegerColumn = isIntegerColumn;
|
|
153
|
+
const assertNoMongoColumn = (options) => {
|
|
154
|
+
const rawOptions = options;
|
|
155
|
+
const type = String(rawOptions.type || rawOptions.columnType || '').toLowerCase();
|
|
156
|
+
if (rawOptions.isObjectId || type === 'objectid' || type === 'object-id') {
|
|
157
|
+
throw new mysql_exception_1.MysqlException('MYSQL_MONGO_COLUMN_UNSUPPORTED', {
|
|
158
|
+
reason: '@joktec/mysql does not support Mongo ObjectId columns. Use @joktec/mongo for Mongo schemas.',
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
exports.assertNoMongoColumn = assertNoMongoColumn;
|
|
82
163
|
//# sourceMappingURL=column.util.js.map
|