bigal 13.0.0-beta4 → 13.0.0-beta6
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/CHANGELOG.md +1 -1
- package/dist/index.cjs +638 -18
- package/dist/index.d.cts +419 -4
- package/dist/index.d.mts +419 -4
- package/dist/index.d.ts +419 -4
- package/dist/index.mjs +623 -4
- package/package.json +1 -28
- package/dist/decorators/index.cjs +0 -282
- package/dist/decorators/index.d.cts +0 -1
- package/dist/decorators/index.d.mts +0 -1
- package/dist/decorators/index.d.ts +0 -1
- package/dist/decorators/index.mjs +0 -271
- package/dist/metadata/index.cjs +0 -369
- package/dist/metadata/index.d.cts +0 -1
- package/dist/metadata/index.d.mts +0 -1
- package/dist/metadata/index.d.ts +0 -1
- package/dist/metadata/index.mjs +0 -358
- package/dist/shared/bigal.03669aef.d.cts +0 -105
- package/dist/shared/bigal.03669aef.d.mts +0 -105
- package/dist/shared/bigal.03669aef.d.ts +0 -105
- package/dist/shared/bigal.06e3c45d.d.cts +0 -315
- package/dist/shared/bigal.06e3c45d.d.mts +0 -315
- package/dist/shared/bigal.06e3c45d.d.ts +0 -315
package/CHANGELOG.md
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -1,13 +1,366 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const _ = require('lodash');
|
|
4
|
-
const metadata_index = require('./metadata/index.cjs');
|
|
5
|
-
const decorators_index = require('./decorators/index.cjs');
|
|
6
4
|
|
|
7
5
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
|
|
8
6
|
|
|
9
7
|
const ___default = /*#__PURE__*/_interopDefaultCompat(_);
|
|
10
8
|
|
|
9
|
+
var __defProp$7 = Object.defineProperty;
|
|
10
|
+
var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
11
|
+
var __publicField$7 = (obj, key, value) => {
|
|
12
|
+
__defNormalProp$7(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
13
|
+
return value;
|
|
14
|
+
};
|
|
15
|
+
class MetadataStorage {
|
|
16
|
+
constructor() {
|
|
17
|
+
__publicField$7(this, "models", []);
|
|
18
|
+
// All columns for all models. This data only represents @column specifics, not additional column modifiers
|
|
19
|
+
__publicField$7(this, "columns", []);
|
|
20
|
+
// This represents additional column behavior separate from the main @column decorator. For example, @primaryColumn, @versionColumn, etc
|
|
21
|
+
// This behavior will be merged over defaults from @column()
|
|
22
|
+
__publicField$7(this, "columnModifiers", []);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
var __defProp$6 = Object.defineProperty;
|
|
27
|
+
var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
28
|
+
var __publicField$6 = (obj, key, value) => {
|
|
29
|
+
__defNormalProp$6(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
30
|
+
return value;
|
|
31
|
+
};
|
|
32
|
+
class ColumnBaseMetadata {
|
|
33
|
+
constructor({
|
|
34
|
+
target,
|
|
35
|
+
name,
|
|
36
|
+
propertyName,
|
|
37
|
+
required = false,
|
|
38
|
+
insert = true,
|
|
39
|
+
update = true,
|
|
40
|
+
primary = false,
|
|
41
|
+
createDate = false,
|
|
42
|
+
updateDate = false,
|
|
43
|
+
version = false
|
|
44
|
+
}) {
|
|
45
|
+
/**
|
|
46
|
+
* Name of class with @table decorator
|
|
47
|
+
*/
|
|
48
|
+
__publicField$6(this, "target");
|
|
49
|
+
/**
|
|
50
|
+
* Column name in the database
|
|
51
|
+
*/
|
|
52
|
+
__publicField$6(this, "name");
|
|
53
|
+
/**
|
|
54
|
+
* Class property to which the column is applied
|
|
55
|
+
*/
|
|
56
|
+
__publicField$6(this, "propertyName");
|
|
57
|
+
/**
|
|
58
|
+
* Indicates if a value is required for creates.
|
|
59
|
+
*/
|
|
60
|
+
__publicField$6(this, "required");
|
|
61
|
+
/**
|
|
62
|
+
* Indicates if column is inserted by default. Default is true
|
|
63
|
+
*/
|
|
64
|
+
__publicField$6(this, "insert");
|
|
65
|
+
/**
|
|
66
|
+
* Indicates if column value is updated by "save" operation. Default is true
|
|
67
|
+
*/
|
|
68
|
+
__publicField$6(this, "update");
|
|
69
|
+
/**
|
|
70
|
+
* Indicates if this column is a primary key.
|
|
71
|
+
* Same can be achieved when @primaryColumn decorator is used
|
|
72
|
+
*/
|
|
73
|
+
__publicField$6(this, "primary");
|
|
74
|
+
/**
|
|
75
|
+
* Value will be equal to `new Date()` when the row is inserted into the table
|
|
76
|
+
* Same can be achieved when @createDateColumn decorator is used
|
|
77
|
+
*/
|
|
78
|
+
__publicField$6(this, "createDate");
|
|
79
|
+
/**
|
|
80
|
+
* Value will be equal to `new Date()` when the row is updated
|
|
81
|
+
* Same can be achieved when @updateDateColumn decorator is used
|
|
82
|
+
*/
|
|
83
|
+
__publicField$6(this, "updateDate");
|
|
84
|
+
/**
|
|
85
|
+
* Value will be set to 1 when the row is inserted. Value will be incremented by one when the row is updated
|
|
86
|
+
* Same can be achieved when @versionColumn decorator is used
|
|
87
|
+
*/
|
|
88
|
+
__publicField$6(this, "version");
|
|
89
|
+
this.target = target;
|
|
90
|
+
this.name = name;
|
|
91
|
+
this.propertyName = propertyName;
|
|
92
|
+
this.required = required;
|
|
93
|
+
this.insert = insert;
|
|
94
|
+
this.update = update;
|
|
95
|
+
this.primary = primary;
|
|
96
|
+
this.createDate = createDate;
|
|
97
|
+
this.updateDate = updateDate;
|
|
98
|
+
this.version = version;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
var __defProp$5 = Object.defineProperty;
|
|
103
|
+
var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
104
|
+
var __publicField$5 = (obj, key, value) => {
|
|
105
|
+
__defNormalProp$5(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
106
|
+
return value;
|
|
107
|
+
};
|
|
108
|
+
class ColumnCollectionMetadata extends ColumnBaseMetadata {
|
|
109
|
+
constructor({
|
|
110
|
+
target,
|
|
111
|
+
//
|
|
112
|
+
name,
|
|
113
|
+
propertyName,
|
|
114
|
+
required,
|
|
115
|
+
insert,
|
|
116
|
+
update,
|
|
117
|
+
primary,
|
|
118
|
+
createDate,
|
|
119
|
+
updateDate,
|
|
120
|
+
version,
|
|
121
|
+
collection,
|
|
122
|
+
via,
|
|
123
|
+
through
|
|
124
|
+
}) {
|
|
125
|
+
super({
|
|
126
|
+
target,
|
|
127
|
+
name,
|
|
128
|
+
propertyName,
|
|
129
|
+
required,
|
|
130
|
+
insert,
|
|
131
|
+
update,
|
|
132
|
+
primary,
|
|
133
|
+
createDate,
|
|
134
|
+
updateDate,
|
|
135
|
+
version
|
|
136
|
+
});
|
|
137
|
+
__publicField$5(this, "_collectionString");
|
|
138
|
+
__publicField$5(this, "_collectionFn");
|
|
139
|
+
__publicField$5(this, "_throughString");
|
|
140
|
+
__publicField$5(this, "_throughFn");
|
|
141
|
+
/**
|
|
142
|
+
* Property name of the on the collection item type
|
|
143
|
+
*/
|
|
144
|
+
__publicField$5(this, "via");
|
|
145
|
+
this.via = via;
|
|
146
|
+
if (typeof collection === "string") {
|
|
147
|
+
this._collectionString = collection;
|
|
148
|
+
} else {
|
|
149
|
+
this._collectionFn = collection;
|
|
150
|
+
}
|
|
151
|
+
if (typeof through === "string") {
|
|
152
|
+
this._throughString = through;
|
|
153
|
+
} else if (through) {
|
|
154
|
+
this._throughFn = through;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Type of the items in the collection
|
|
159
|
+
*/
|
|
160
|
+
get collection() {
|
|
161
|
+
if (this._collectionString) {
|
|
162
|
+
return this._collectionString;
|
|
163
|
+
}
|
|
164
|
+
if (!this._collectionFn) {
|
|
165
|
+
throw new Error(`Unable to determine collection type for ${this.target}#${this.propertyName}`);
|
|
166
|
+
}
|
|
167
|
+
this._collectionString = this._collectionFn();
|
|
168
|
+
return this._collectionString;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Name of the junction table for multi-multi associations
|
|
172
|
+
*/
|
|
173
|
+
get through() {
|
|
174
|
+
if (this._throughString) {
|
|
175
|
+
return this._throughString;
|
|
176
|
+
}
|
|
177
|
+
if (this._throughFn) {
|
|
178
|
+
this._throughString = this._throughFn();
|
|
179
|
+
return this._throughString;
|
|
180
|
+
}
|
|
181
|
+
return void 0;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
var __defProp$4 = Object.defineProperty;
|
|
186
|
+
var __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
187
|
+
var __publicField$4 = (obj, key, value) => {
|
|
188
|
+
__defNormalProp$4(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
189
|
+
return value;
|
|
190
|
+
};
|
|
191
|
+
class ColumnModelMetadata extends ColumnBaseMetadata {
|
|
192
|
+
constructor({
|
|
193
|
+
target,
|
|
194
|
+
//
|
|
195
|
+
name,
|
|
196
|
+
propertyName,
|
|
197
|
+
required,
|
|
198
|
+
insert,
|
|
199
|
+
update,
|
|
200
|
+
primary,
|
|
201
|
+
createDate,
|
|
202
|
+
updateDate,
|
|
203
|
+
version,
|
|
204
|
+
model
|
|
205
|
+
}) {
|
|
206
|
+
super({
|
|
207
|
+
target,
|
|
208
|
+
name,
|
|
209
|
+
propertyName,
|
|
210
|
+
required,
|
|
211
|
+
insert,
|
|
212
|
+
update,
|
|
213
|
+
primary,
|
|
214
|
+
createDate,
|
|
215
|
+
updateDate,
|
|
216
|
+
version
|
|
217
|
+
});
|
|
218
|
+
__publicField$4(this, "_modelString");
|
|
219
|
+
__publicField$4(this, "_modelFn");
|
|
220
|
+
if (typeof model === "string") {
|
|
221
|
+
this._modelString = model;
|
|
222
|
+
} else {
|
|
223
|
+
this._modelFn = model;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Name of the model represented by this column id
|
|
228
|
+
*/
|
|
229
|
+
get model() {
|
|
230
|
+
if (this._modelString) {
|
|
231
|
+
return this._modelString;
|
|
232
|
+
}
|
|
233
|
+
if (!this._modelFn) {
|
|
234
|
+
throw new Error(`Unable to determine model type for ${this.target}#${this.propertyName}`);
|
|
235
|
+
}
|
|
236
|
+
this._modelString = this._modelFn();
|
|
237
|
+
return this._modelString;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
var __defProp$3 = Object.defineProperty;
|
|
242
|
+
var __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
243
|
+
var __publicField$3 = (obj, key, value) => {
|
|
244
|
+
__defNormalProp$3(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
245
|
+
return value;
|
|
246
|
+
};
|
|
247
|
+
class ColumnTypeMetadata extends ColumnBaseMetadata {
|
|
248
|
+
constructor(options) {
|
|
249
|
+
super({
|
|
250
|
+
target: options.target,
|
|
251
|
+
name: options.name,
|
|
252
|
+
propertyName: options.propertyName,
|
|
253
|
+
required: options.required,
|
|
254
|
+
insert: options.insert,
|
|
255
|
+
update: options.update,
|
|
256
|
+
primary: options.primary,
|
|
257
|
+
createDate: options.createDate,
|
|
258
|
+
updateDate: options.updateDate,
|
|
259
|
+
version: options.version
|
|
260
|
+
});
|
|
261
|
+
/**
|
|
262
|
+
* Type of the column
|
|
263
|
+
*/
|
|
264
|
+
__publicField$3(this, "type");
|
|
265
|
+
/**
|
|
266
|
+
* Default database value
|
|
267
|
+
*/
|
|
268
|
+
__publicField$3(this, "defaultsTo");
|
|
269
|
+
/**
|
|
270
|
+
* Array of possible enumerated values
|
|
271
|
+
*/
|
|
272
|
+
__publicField$3(this, "enum");
|
|
273
|
+
/**
|
|
274
|
+
* If set, enforces a maximum length check on the column
|
|
275
|
+
*
|
|
276
|
+
* Applies to types: string | string[]
|
|
277
|
+
*/
|
|
278
|
+
__publicField$3(this, "maxLength");
|
|
279
|
+
this.type = options.type;
|
|
280
|
+
this.defaultsTo = options.defaultsTo;
|
|
281
|
+
this.enum = options.enum;
|
|
282
|
+
this.maxLength = options.maxLength;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
var __defProp$2 = Object.defineProperty;
|
|
287
|
+
var __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
288
|
+
var __publicField$2 = (obj, key, value) => {
|
|
289
|
+
__defNormalProp$2(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
290
|
+
return value;
|
|
291
|
+
};
|
|
292
|
+
class ModelMetadata {
|
|
293
|
+
constructor({
|
|
294
|
+
name,
|
|
295
|
+
//
|
|
296
|
+
type,
|
|
297
|
+
connection,
|
|
298
|
+
tableName,
|
|
299
|
+
readonly = false
|
|
300
|
+
}) {
|
|
301
|
+
__publicField$2(this, "_columns", []);
|
|
302
|
+
__publicField$2(this, "_primaryKeyColumn");
|
|
303
|
+
__publicField$2(this, "_createDateColumns", []);
|
|
304
|
+
__publicField$2(this, "_updateDateColumns", []);
|
|
305
|
+
__publicField$2(this, "_versionDateColumns", []);
|
|
306
|
+
__publicField$2(this, "name");
|
|
307
|
+
__publicField$2(this, "type");
|
|
308
|
+
__publicField$2(this, "connection");
|
|
309
|
+
__publicField$2(this, "tableName");
|
|
310
|
+
__publicField$2(this, "readonly");
|
|
311
|
+
__publicField$2(this, "columnsByColumnName", {});
|
|
312
|
+
__publicField$2(this, "columnsByPropertyName", {});
|
|
313
|
+
this.name = name;
|
|
314
|
+
this.type = type;
|
|
315
|
+
this.connection = connection;
|
|
316
|
+
this.tableName = tableName ?? ___default.snakeCase(name);
|
|
317
|
+
this.readonly = readonly;
|
|
318
|
+
}
|
|
319
|
+
set columns(columns) {
|
|
320
|
+
this._columns = columns;
|
|
321
|
+
this.columnsByColumnName = {};
|
|
322
|
+
this.columnsByPropertyName = {};
|
|
323
|
+
for (const column of columns) {
|
|
324
|
+
this.columnsByColumnName[column.name] = column;
|
|
325
|
+
this.columnsByPropertyName[column.propertyName] = column;
|
|
326
|
+
if (column.primary) {
|
|
327
|
+
this._primaryKeyColumn = column;
|
|
328
|
+
}
|
|
329
|
+
if (column.createDate) {
|
|
330
|
+
this._createDateColumns.push(column);
|
|
331
|
+
}
|
|
332
|
+
if (column.updateDate) {
|
|
333
|
+
this._updateDateColumns.push(column);
|
|
334
|
+
}
|
|
335
|
+
if (column.version) {
|
|
336
|
+
this._versionDateColumns.push(column);
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
get columns() {
|
|
341
|
+
return this._columns;
|
|
342
|
+
}
|
|
343
|
+
get primaryKeyColumn() {
|
|
344
|
+
return this._primaryKeyColumn;
|
|
345
|
+
}
|
|
346
|
+
get createDateColumns() {
|
|
347
|
+
return this._createDateColumns;
|
|
348
|
+
}
|
|
349
|
+
get updateDateColumns() {
|
|
350
|
+
return this._updateDateColumns;
|
|
351
|
+
}
|
|
352
|
+
get versionColumns() {
|
|
353
|
+
return this._versionDateColumns;
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
function getMetadataStorage() {
|
|
358
|
+
if (!global.bigAlMetadataArgsStorage) {
|
|
359
|
+
global.bigAlMetadataArgsStorage = new MetadataStorage();
|
|
360
|
+
}
|
|
361
|
+
return global.bigAlMetadataArgsStorage;
|
|
362
|
+
}
|
|
363
|
+
|
|
11
364
|
var __defProp$1 = Object.defineProperty;
|
|
12
365
|
var __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
13
366
|
var __publicField$1 = (obj, key, value) => {
|
|
@@ -1815,6 +2168,273 @@ ${stack}`;
|
|
|
1815
2168
|
}
|
|
1816
2169
|
}
|
|
1817
2170
|
|
|
2171
|
+
function column(dbColumnNameOrOptions, options) {
|
|
2172
|
+
return function columnDecorator(object, propertyName) {
|
|
2173
|
+
if (!dbColumnNameOrOptions) {
|
|
2174
|
+
dbColumnNameOrOptions = ___default.snakeCase(propertyName);
|
|
2175
|
+
}
|
|
2176
|
+
let dbColumnName;
|
|
2177
|
+
if (typeof dbColumnNameOrOptions === "string") {
|
|
2178
|
+
dbColumnName = dbColumnNameOrOptions;
|
|
2179
|
+
} else {
|
|
2180
|
+
options = dbColumnNameOrOptions;
|
|
2181
|
+
}
|
|
2182
|
+
if (!options) {
|
|
2183
|
+
options = {};
|
|
2184
|
+
}
|
|
2185
|
+
if (!dbColumnName) {
|
|
2186
|
+
dbColumnName = options.name ?? ___default.snakeCase(propertyName);
|
|
2187
|
+
}
|
|
2188
|
+
const metadataStorage = getMetadataStorage();
|
|
2189
|
+
const columnCollectionOptions = options;
|
|
2190
|
+
if (columnCollectionOptions.collection || columnCollectionOptions.via) {
|
|
2191
|
+
if (!columnCollectionOptions.collection) {
|
|
2192
|
+
throw new Error("Unable to determine collection value. Please try specifying values as a strings to avoid circular dependency issues.");
|
|
2193
|
+
}
|
|
2194
|
+
metadataStorage.columns.push(
|
|
2195
|
+
new ColumnCollectionMetadata({
|
|
2196
|
+
target: object.constructor.name,
|
|
2197
|
+
name: dbColumnName,
|
|
2198
|
+
propertyName,
|
|
2199
|
+
required: columnCollectionOptions.required,
|
|
2200
|
+
collection: columnCollectionOptions.collection,
|
|
2201
|
+
through: columnCollectionOptions.through,
|
|
2202
|
+
via: columnCollectionOptions.via
|
|
2203
|
+
})
|
|
2204
|
+
);
|
|
2205
|
+
return;
|
|
2206
|
+
}
|
|
2207
|
+
const columnModelOptions = options;
|
|
2208
|
+
if (columnModelOptions.model) {
|
|
2209
|
+
metadataStorage.columns.push(
|
|
2210
|
+
new ColumnModelMetadata({
|
|
2211
|
+
target: object.constructor.name,
|
|
2212
|
+
name: dbColumnName,
|
|
2213
|
+
propertyName,
|
|
2214
|
+
required: columnModelOptions.required,
|
|
2215
|
+
model: columnModelOptions.model
|
|
2216
|
+
})
|
|
2217
|
+
);
|
|
2218
|
+
return;
|
|
2219
|
+
}
|
|
2220
|
+
const columnTypeOptions = options;
|
|
2221
|
+
metadataStorage.columns.push(
|
|
2222
|
+
new ColumnTypeMetadata({
|
|
2223
|
+
target: object.constructor.name,
|
|
2224
|
+
name: dbColumnName,
|
|
2225
|
+
propertyName,
|
|
2226
|
+
required: columnTypeOptions.required,
|
|
2227
|
+
type: columnTypeOptions.type,
|
|
2228
|
+
defaultsTo: columnTypeOptions.defaultsTo,
|
|
2229
|
+
enum: columnTypeOptions.enum,
|
|
2230
|
+
maxLength: columnTypeOptions.maxLength
|
|
2231
|
+
})
|
|
2232
|
+
);
|
|
2233
|
+
};
|
|
2234
|
+
}
|
|
2235
|
+
|
|
2236
|
+
function createDateColumn(dbColumnNameOrOptions, options) {
|
|
2237
|
+
return function createDateColumnDecorator(object, propertyName) {
|
|
2238
|
+
const metadataStorage = getMetadataStorage();
|
|
2239
|
+
let dbColumnName;
|
|
2240
|
+
if (typeof dbColumnNameOrOptions === "string") {
|
|
2241
|
+
dbColumnName = dbColumnNameOrOptions;
|
|
2242
|
+
} else {
|
|
2243
|
+
options = dbColumnNameOrOptions;
|
|
2244
|
+
}
|
|
2245
|
+
if (dbColumnNameOrOptions) {
|
|
2246
|
+
if (!options) {
|
|
2247
|
+
options = {};
|
|
2248
|
+
}
|
|
2249
|
+
if (!dbColumnName) {
|
|
2250
|
+
dbColumnName = options.name ?? ___default.snakeCase(propertyName);
|
|
2251
|
+
}
|
|
2252
|
+
metadataStorage.columns.push(
|
|
2253
|
+
new ColumnTypeMetadata({
|
|
2254
|
+
target: object.constructor.name,
|
|
2255
|
+
name: dbColumnName,
|
|
2256
|
+
propertyName,
|
|
2257
|
+
createDate: true,
|
|
2258
|
+
required: options.required,
|
|
2259
|
+
type: options.type
|
|
2260
|
+
})
|
|
2261
|
+
);
|
|
2262
|
+
} else {
|
|
2263
|
+
metadataStorage.columnModifiers.push({
|
|
2264
|
+
target: object.constructor.name,
|
|
2265
|
+
name: dbColumnName ?? ___default.snakeCase(propertyName),
|
|
2266
|
+
propertyName,
|
|
2267
|
+
createDate: true,
|
|
2268
|
+
required: options ? options.required : void 0,
|
|
2269
|
+
type: options ? options.type : "datetime"
|
|
2270
|
+
});
|
|
2271
|
+
}
|
|
2272
|
+
};
|
|
2273
|
+
}
|
|
2274
|
+
|
|
2275
|
+
function primaryColumn(dbColumnNameOrOptions, options) {
|
|
2276
|
+
return function primaryColumnDecorator(object, propertyName) {
|
|
2277
|
+
let dbColumnName;
|
|
2278
|
+
if (typeof dbColumnNameOrOptions === "string") {
|
|
2279
|
+
dbColumnName = dbColumnNameOrOptions;
|
|
2280
|
+
} else {
|
|
2281
|
+
options = dbColumnNameOrOptions;
|
|
2282
|
+
}
|
|
2283
|
+
if (dbColumnNameOrOptions) {
|
|
2284
|
+
if (!options) {
|
|
2285
|
+
options = {};
|
|
2286
|
+
}
|
|
2287
|
+
if (!dbColumnName) {
|
|
2288
|
+
dbColumnName = options.name ?? ___default.snakeCase(propertyName);
|
|
2289
|
+
}
|
|
2290
|
+
const { type } = options;
|
|
2291
|
+
const { model } = options;
|
|
2292
|
+
const metadataStorage = getMetadataStorage();
|
|
2293
|
+
if (model) {
|
|
2294
|
+
metadataStorage.columns.push(
|
|
2295
|
+
new ColumnModelMetadata({
|
|
2296
|
+
target: object.constructor.name,
|
|
2297
|
+
name: dbColumnName,
|
|
2298
|
+
propertyName,
|
|
2299
|
+
primary: true,
|
|
2300
|
+
required: options.required,
|
|
2301
|
+
model
|
|
2302
|
+
})
|
|
2303
|
+
);
|
|
2304
|
+
} else {
|
|
2305
|
+
metadataStorage.columns.push(
|
|
2306
|
+
new ColumnTypeMetadata({
|
|
2307
|
+
target: object.constructor.name,
|
|
2308
|
+
name: dbColumnName,
|
|
2309
|
+
propertyName,
|
|
2310
|
+
primary: true,
|
|
2311
|
+
required: options.required,
|
|
2312
|
+
type
|
|
2313
|
+
})
|
|
2314
|
+
);
|
|
2315
|
+
}
|
|
2316
|
+
} else {
|
|
2317
|
+
const metadataStorage = getMetadataStorage();
|
|
2318
|
+
metadataStorage.columnModifiers.push({
|
|
2319
|
+
target: object.constructor.name,
|
|
2320
|
+
name: dbColumnName ?? ___default.snakeCase(propertyName),
|
|
2321
|
+
propertyName,
|
|
2322
|
+
primary: true,
|
|
2323
|
+
required: options ? options.required : void 0,
|
|
2324
|
+
type: options ? options.type : void 0,
|
|
2325
|
+
model: options ? options.model : void 0
|
|
2326
|
+
});
|
|
2327
|
+
}
|
|
2328
|
+
};
|
|
2329
|
+
}
|
|
2330
|
+
|
|
2331
|
+
function table(dbNameOrTableOptions, options) {
|
|
2332
|
+
return function tableDecorator(classObject) {
|
|
2333
|
+
const className = classObject.name;
|
|
2334
|
+
let dbTableName;
|
|
2335
|
+
if (typeof dbNameOrTableOptions === "string") {
|
|
2336
|
+
dbTableName = dbNameOrTableOptions;
|
|
2337
|
+
} else {
|
|
2338
|
+
options = dbNameOrTableOptions;
|
|
2339
|
+
}
|
|
2340
|
+
if (!options) {
|
|
2341
|
+
options = {};
|
|
2342
|
+
}
|
|
2343
|
+
if (!options.name) {
|
|
2344
|
+
options.name = dbTableName ?? ___default.snakeCase(className);
|
|
2345
|
+
}
|
|
2346
|
+
const metadataStorage = getMetadataStorage();
|
|
2347
|
+
const modelMetadata = new ModelMetadata({
|
|
2348
|
+
name: className,
|
|
2349
|
+
type: classObject,
|
|
2350
|
+
tableName: options.name,
|
|
2351
|
+
readonly: options.readonly ?? false,
|
|
2352
|
+
connection: options.connection
|
|
2353
|
+
});
|
|
2354
|
+
metadataStorage.models.push(modelMetadata);
|
|
2355
|
+
};
|
|
2356
|
+
}
|
|
2357
|
+
|
|
2358
|
+
function updateDateColumn(dbColumnNameOrOptions, options) {
|
|
2359
|
+
return function updateDateColumnDecorator(object, propertyName) {
|
|
2360
|
+
let dbColumnName;
|
|
2361
|
+
if (typeof dbColumnNameOrOptions === "string") {
|
|
2362
|
+
dbColumnName = dbColumnNameOrOptions;
|
|
2363
|
+
} else {
|
|
2364
|
+
options = dbColumnNameOrOptions;
|
|
2365
|
+
}
|
|
2366
|
+
if (dbColumnNameOrOptions) {
|
|
2367
|
+
if (!options) {
|
|
2368
|
+
options = {};
|
|
2369
|
+
}
|
|
2370
|
+
if (!dbColumnName) {
|
|
2371
|
+
dbColumnName = options.name ?? ___default.snakeCase(propertyName);
|
|
2372
|
+
}
|
|
2373
|
+
const metadataStorage = getMetadataStorage();
|
|
2374
|
+
metadataStorage.columns.push(
|
|
2375
|
+
new ColumnTypeMetadata({
|
|
2376
|
+
target: object.constructor.name,
|
|
2377
|
+
name: dbColumnName,
|
|
2378
|
+
propertyName,
|
|
2379
|
+
updateDate: true,
|
|
2380
|
+
required: options.required,
|
|
2381
|
+
type: options.type
|
|
2382
|
+
})
|
|
2383
|
+
);
|
|
2384
|
+
} else {
|
|
2385
|
+
const metadataStorage = getMetadataStorage();
|
|
2386
|
+
metadataStorage.columnModifiers.push({
|
|
2387
|
+
target: object.constructor.name,
|
|
2388
|
+
name: dbColumnName ?? ___default.snakeCase(propertyName),
|
|
2389
|
+
propertyName,
|
|
2390
|
+
updateDate: true,
|
|
2391
|
+
required: options ? options.required : void 0,
|
|
2392
|
+
type: options ? options.type : "datetime"
|
|
2393
|
+
});
|
|
2394
|
+
}
|
|
2395
|
+
};
|
|
2396
|
+
}
|
|
2397
|
+
|
|
2398
|
+
function versionColumn(dbColumnNameOrOptions, options) {
|
|
2399
|
+
return function versionColumnDecorator(object, propertyName) {
|
|
2400
|
+
let dbColumnName;
|
|
2401
|
+
if (typeof dbColumnNameOrOptions === "string") {
|
|
2402
|
+
dbColumnName = dbColumnNameOrOptions;
|
|
2403
|
+
} else {
|
|
2404
|
+
options = dbColumnNameOrOptions;
|
|
2405
|
+
}
|
|
2406
|
+
if (dbColumnNameOrOptions) {
|
|
2407
|
+
if (!options) {
|
|
2408
|
+
options = {};
|
|
2409
|
+
}
|
|
2410
|
+
if (!dbColumnName) {
|
|
2411
|
+
dbColumnName = options.name ?? ___default.snakeCase(propertyName);
|
|
2412
|
+
}
|
|
2413
|
+
const metadataStorage = getMetadataStorage();
|
|
2414
|
+
metadataStorage.columns.push(
|
|
2415
|
+
new ColumnTypeMetadata({
|
|
2416
|
+
target: object.constructor.name,
|
|
2417
|
+
name: dbColumnName,
|
|
2418
|
+
propertyName,
|
|
2419
|
+
version: true,
|
|
2420
|
+
required: options.required,
|
|
2421
|
+
type: options.type
|
|
2422
|
+
})
|
|
2423
|
+
);
|
|
2424
|
+
} else {
|
|
2425
|
+
const metadataStorage = getMetadataStorage();
|
|
2426
|
+
metadataStorage.columnModifiers.push({
|
|
2427
|
+
target: object.constructor.name,
|
|
2428
|
+
name: dbColumnName ?? ___default.snakeCase(propertyName),
|
|
2429
|
+
propertyName,
|
|
2430
|
+
version: true,
|
|
2431
|
+
required: options ? options.required : void 0,
|
|
2432
|
+
type: options ? options.type : void 0
|
|
2433
|
+
});
|
|
2434
|
+
}
|
|
2435
|
+
};
|
|
2436
|
+
}
|
|
2437
|
+
|
|
1818
2438
|
class Entity {
|
|
1819
2439
|
static beforeCreate(values) {
|
|
1820
2440
|
return values;
|
|
@@ -1846,7 +2466,7 @@ function initialize({ models, pool, readonlyPool = pool, connections = {}, expos
|
|
|
1846
2466
|
inheritanceTreesByModelName[model.name] = getInheritanceTree(model);
|
|
1847
2467
|
modelNames.push(model.name);
|
|
1848
2468
|
}
|
|
1849
|
-
const metadataStorage =
|
|
2469
|
+
const metadataStorage = getMetadataStorage();
|
|
1850
2470
|
const modelMetadataByModelName = {};
|
|
1851
2471
|
for (const model of metadataStorage.models) {
|
|
1852
2472
|
modelMetadataByModelName[model.name] = model;
|
|
@@ -1887,7 +2507,7 @@ function initialize({ models, pool, readonlyPool = pool, connections = {}, expos
|
|
|
1887
2507
|
if (!modelMetadata) {
|
|
1888
2508
|
throw new Error(`Unable to find @table() on ${model.name}`);
|
|
1889
2509
|
}
|
|
1890
|
-
modelMetadataByModelName[model.name] = new
|
|
2510
|
+
modelMetadataByModelName[model.name] = new ModelMetadata({
|
|
1891
2511
|
...modelMetadata,
|
|
1892
2512
|
name: model.name,
|
|
1893
2513
|
type: model
|
|
@@ -1921,13 +2541,13 @@ function initialize({ models, pool, readonlyPool = pool, connections = {}, expos
|
|
|
1921
2541
|
throw new Error(`Missing column type for ${modelName}#${propertyName}`);
|
|
1922
2542
|
}
|
|
1923
2543
|
if (columnDetails.model) {
|
|
1924
|
-
columnsByPropertyName[propertyName] = new
|
|
2544
|
+
columnsByPropertyName[propertyName] = new ColumnModelMetadata({
|
|
1925
2545
|
...columnDetails,
|
|
1926
2546
|
name: columnDetails.name,
|
|
1927
2547
|
model: columnDetails.model
|
|
1928
2548
|
});
|
|
1929
2549
|
} else if (columnDetails.type) {
|
|
1930
|
-
columnsByPropertyName[propertyName] = new
|
|
2550
|
+
columnsByPropertyName[propertyName] = new ColumnTypeMetadata({
|
|
1931
2551
|
...columnDetails,
|
|
1932
2552
|
name: columnDetails.name,
|
|
1933
2553
|
type: columnDetails.type
|
|
@@ -1988,19 +2608,19 @@ function initialize({ models, pool, readonlyPool = pool, connections = {}, expos
|
|
|
1988
2608
|
return repositoriesByModelName;
|
|
1989
2609
|
}
|
|
1990
2610
|
|
|
1991
|
-
exports.ColumnBaseMetadata =
|
|
1992
|
-
exports.ColumnCollectionMetadata =
|
|
1993
|
-
exports.ColumnModelMetadata =
|
|
1994
|
-
exports.ColumnTypeMetadata =
|
|
1995
|
-
exports.ModelMetadata = metadata_index.ModelMetadata;
|
|
1996
|
-
exports.getMetadataStorage = metadata_index.getMetadataStorage;
|
|
1997
|
-
exports.column = decorators_index.column;
|
|
1998
|
-
exports.createDateColumn = decorators_index.createDateColumn;
|
|
1999
|
-
exports.primaryColumn = decorators_index.primaryColumn;
|
|
2000
|
-
exports.table = decorators_index.table;
|
|
2001
|
-
exports.updateDateColumn = decorators_index.updateDateColumn;
|
|
2002
|
-
exports.versionColumn = decorators_index.versionColumn;
|
|
2611
|
+
exports.ColumnBaseMetadata = ColumnBaseMetadata;
|
|
2612
|
+
exports.ColumnCollectionMetadata = ColumnCollectionMetadata;
|
|
2613
|
+
exports.ColumnModelMetadata = ColumnModelMetadata;
|
|
2614
|
+
exports.ColumnTypeMetadata = ColumnTypeMetadata;
|
|
2003
2615
|
exports.Entity = Entity;
|
|
2616
|
+
exports.ModelMetadata = ModelMetadata;
|
|
2004
2617
|
exports.ReadonlyRepository = ReadonlyRepository;
|
|
2005
2618
|
exports.Repository = Repository;
|
|
2619
|
+
exports.column = column;
|
|
2620
|
+
exports.createDateColumn = createDateColumn;
|
|
2621
|
+
exports.getMetadataStorage = getMetadataStorage;
|
|
2006
2622
|
exports.initialize = initialize;
|
|
2623
|
+
exports.primaryColumn = primaryColumn;
|
|
2624
|
+
exports.table = table;
|
|
2625
|
+
exports.updateDateColumn = updateDateColumn;
|
|
2626
|
+
exports.versionColumn = versionColumn;
|