@strapi/database 4.13.0-alpha.1 → 4.13.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/package.json +3 -3
  2. package/dist/connection.d.ts +0 -2
  3. package/dist/connection.js +0 -57
  4. package/dist/connection.js.map +0 -1
  5. package/dist/dialects/dialect.d.ts +0 -21
  6. package/dist/dialects/dialect.js +0 -49
  7. package/dist/dialects/dialect.js.map +0 -1
  8. package/dist/dialects/index.d.ts +0 -4
  9. package/dist/dialects/index.js +0 -49
  10. package/dist/dialects/index.js.map +0 -1
  11. package/dist/dialects/mysql/constants.d.ts +0 -2
  12. package/dist/dialects/mysql/constants.js +0 -6
  13. package/dist/dialects/mysql/constants.js.map +0 -1
  14. package/dist/dialects/mysql/database-inspector.d.ts +0 -11
  15. package/dist/dialects/mysql/database-inspector.js +0 -34
  16. package/dist/dialects/mysql/database-inspector.js.map +0 -1
  17. package/dist/dialects/mysql/index.d.ts +0 -19
  18. package/dist/dialects/mysql/index.js +0 -80
  19. package/dist/dialects/mysql/index.js.map +0 -1
  20. package/dist/dialects/mysql/schema-inspector.d.ts +0 -11
  21. package/dist/dialects/mysql/schema-inspector.js +0 -206
  22. package/dist/dialects/mysql/schema-inspector.js.map +0 -1
  23. package/dist/dialects/postgresql/index.d.ts +0 -13
  24. package/dist/dialects/postgresql/index.js +0 -72
  25. package/dist/dialects/postgresql/index.js.map +0 -1
  26. package/dist/dialects/postgresql/schema-inspector.d.ts +0 -12
  27. package/dist/dialects/postgresql/schema-inspector.js +0 -236
  28. package/dist/dialects/postgresql/schema-inspector.js.map +0 -1
  29. package/dist/dialects/sqlite/index.d.ts +0 -18
  30. package/dist/dialects/sqlite/index.js +0 -95
  31. package/dist/dialects/sqlite/index.js.map +0 -1
  32. package/dist/dialects/sqlite/schema-inspector.d.ts +0 -11
  33. package/dist/dialects/sqlite/schema-inspector.js +0 -133
  34. package/dist/dialects/sqlite/schema-inspector.js.map +0 -1
  35. package/dist/dialects/types.d.ts +0 -33
  36. package/dist/dialects/types.js +0 -3
  37. package/dist/dialects/types.js.map +0 -1
  38. package/dist/errors/database.d.ts +0 -4
  39. package/dist/errors/database.js +0 -12
  40. package/dist/errors/database.js.map +0 -1
  41. package/dist/errors/index.d.ts +0 -7
  42. package/dist/errors/index.js +0 -19
  43. package/dist/errors/index.js.map +0 -1
  44. package/dist/errors/invalid-date.d.ts +0 -4
  45. package/dist/errors/invalid-date.js +0 -14
  46. package/dist/errors/invalid-date.js.map +0 -1
  47. package/dist/errors/invalid-datetime.d.ts +0 -4
  48. package/dist/errors/invalid-datetime.js +0 -14
  49. package/dist/errors/invalid-datetime.js.map +0 -1
  50. package/dist/errors/invalid-relation.d.ts +0 -4
  51. package/dist/errors/invalid-relation.js +0 -14
  52. package/dist/errors/invalid-relation.js.map +0 -1
  53. package/dist/errors/invalid-time.d.ts +0 -4
  54. package/dist/errors/invalid-time.js +0 -14
  55. package/dist/errors/invalid-time.js.map +0 -1
  56. package/dist/errors/not-null.d.ts +0 -6
  57. package/dist/errors/not-null.js +0 -16
  58. package/dist/errors/not-null.js.map +0 -1
  59. package/dist/index.d.ts +0 -44
  60. package/dist/index.js +0 -135
  61. package/dist/index.js.map +0 -1
  62. package/dist/lifecycles/index.d.ts +0 -16
  63. package/dist/lifecycles/index.js +0 -86
  64. package/dist/lifecycles/index.js.map +0 -1
  65. package/dist/lifecycles/subscribers/index.d.ts +0 -4
  66. package/dist/lifecycles/subscribers/index.js +0 -12
  67. package/dist/lifecycles/subscribers/index.js.map +0 -1
  68. package/dist/lifecycles/subscribers/models-lifecycles.d.ts +0 -5
  69. package/dist/lifecycles/subscribers/models-lifecycles.js +0 -14
  70. package/dist/lifecycles/subscribers/models-lifecycles.js.map +0 -1
  71. package/dist/lifecycles/subscribers/timestamps.d.ts +0 -2
  72. package/dist/lifecycles/subscribers/timestamps.js +0 -50
  73. package/dist/lifecycles/subscribers/timestamps.js.map +0 -1
  74. package/dist/lifecycles/types.d.ts +0 -25
  75. package/dist/lifecycles/types.js +0 -3
  76. package/dist/lifecycles/types.js.map +0 -1
  77. package/dist/metadata/index.d.ts +0 -6
  78. package/dist/metadata/index.js +0 -236
  79. package/dist/metadata/index.js.map +0 -1
  80. package/dist/metadata/relations.d.ts +0 -20
  81. package/dist/metadata/relations.js +0 -529
  82. package/dist/metadata/relations.js.map +0 -1
  83. package/dist/metadata/types.d.ts +0 -44
  84. package/dist/metadata/types.js +0 -22
  85. package/dist/metadata/types.js.map +0 -1
  86. package/dist/migrations/index.d.ts +0 -11
  87. package/dist/migrations/index.js +0 -74
  88. package/dist/migrations/index.js.map +0 -1
  89. package/dist/migrations/storage.d.ts +0 -14
  90. package/dist/migrations/storage.js +0 -38
  91. package/dist/migrations/storage.js.map +0 -1
  92. package/dist/transaction-context.d.ts +0 -16
  93. package/dist/transaction-context.js +0 -56
  94. package/dist/transaction-context.js.map +0 -1
  95. package/dist/types/index.d.ts +0 -6
  96. package/dist/types/index.js +0 -38
  97. package/dist/types/index.js.map +0 -1
  98. package/dist/utils/content-types.d.ts +0 -17
  99. package/dist/utils/content-types.js +0 -39
  100. package/dist/utils/content-types.js.map +0 -1
  101. package/dist/utils/knex.d.ts +0 -8
  102. package/dist/utils/knex.js +0 -22
  103. package/dist/utils/knex.js.map +0 -1
  104. package/dist/validations/index.d.ts +0 -5
  105. package/dist/validations/index.js +0 -12
  106. package/dist/validations/index.js.map +0 -1
  107. package/dist/validations/relations/bidirectional.d.ts +0 -11
  108. package/dist/validations/relations/bidirectional.js +0 -75
  109. package/dist/validations/relations/bidirectional.js.map +0 -1
  110. package/dist/validations/relations/index.d.ts +0 -6
  111. package/dist/validations/relations/index.js +0 -13
  112. package/dist/validations/relations/index.js.map +0 -1
@@ -1,529 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getJoinTableName = exports.hasInverseOrderColumn = exports.hasOrderColumn = exports.isAnyToMany = exports.isAnyToOne = exports.isManyToAny = exports.isOneToAny = exports.isBidirectional = exports.isPolymorphic = exports.createRelation = void 0;
7
- const fp_1 = __importDefault(require("lodash/fp"));
8
- const hasInversedBy = fp_1.default.has('inversedBy');
9
- const hasMappedBy = fp_1.default.has('mappedBy');
10
- const isPolymorphic = (attribute) => ['morphOne', 'morphMany', 'morphToOne', 'morphToMany'].includes(attribute.relation);
11
- exports.isPolymorphic = isPolymorphic;
12
- const isOneToAny = (attribute) => ['oneToOne', 'oneToMany'].includes(attribute.relation);
13
- exports.isOneToAny = isOneToAny;
14
- const isManyToAny = (attribute) => ['manyToMany', 'manyToOne'].includes(attribute.relation);
15
- exports.isManyToAny = isManyToAny;
16
- const isAnyToOne = (attribute) => ['oneToOne', 'manyToOne'].includes(attribute.relation);
17
- exports.isAnyToOne = isAnyToOne;
18
- const isAnyToMany = (attribute) => ['oneToMany', 'manyToMany'].includes(attribute.relation);
19
- exports.isAnyToMany = isAnyToMany;
20
- const isBidirectional = (attribute) => hasInversedBy(attribute) || hasMappedBy(attribute);
21
- exports.isBidirectional = isBidirectional;
22
- const isOwner = (attribute) => !isBidirectional(attribute) || hasInversedBy(attribute);
23
- const shouldUseJoinTable = (attribute) => attribute.useJoinTable !== false;
24
- const getJoinTableName = (tableName, attributeName) => fp_1.default.snakeCase(`${tableName}_${attributeName}_links`);
25
- exports.getJoinTableName = getJoinTableName;
26
- /**
27
- * Creates a oneToOne relation metadata
28
- *
29
- * if owner then
30
- * if with join table then
31
- * create join table
32
- * else
33
- * create joinColumn
34
- * if bidirectional then
35
- * set inverse attribute joinCol or joinTable info correctly
36
- * else
37
- * this property must be set by the owner side
38
- * verify the owner side is valid // should be done before or at the same time ?
39
- *
40
- * @param {string} attributeName
41
- * @param {Attribute} attribute
42
- * @param {ModelMetadata} meta
43
- * @param {Metadata} metadata
44
- * @retuns void
45
- */
46
- const createOneToOne = (attributeName, attribute, meta, metadata) => {
47
- if (isOwner(attribute)) {
48
- if (shouldUseJoinTable(attribute)) {
49
- createJoinTable(metadata, {
50
- attribute,
51
- attributeName,
52
- meta,
53
- });
54
- }
55
- else {
56
- createJoinColum(metadata, {
57
- attribute,
58
- attributeName,
59
- meta,
60
- });
61
- }
62
- }
63
- else {
64
- // TODO: verify other side is valid
65
- }
66
- };
67
- /**
68
- * Creates a oneToMany relation metadata
69
- *
70
- * if unidirectional then
71
- * create join table
72
- * if bidirectional then
73
- * cannot be owning side
74
- * do nothing
75
- *
76
- * @param {string} attributeName
77
- * @param {Attribute} attribute
78
- * @param {ModelMetadata} meta
79
- * @param {Metadata} metadata
80
- */
81
- const createOneToMany = (attributeName, attribute, meta, metadata) => {
82
- if (!isBidirectional(attribute)) {
83
- createJoinTable(metadata, {
84
- attribute,
85
- attributeName,
86
- meta,
87
- });
88
- }
89
- else if (isOwner(attribute)) {
90
- throw new Error('one side of a oneToMany cannot be the owner side in a bidirectional relation');
91
- }
92
- };
93
- /**
94
- * Creates a manyToOne relation metadata
95
- *
96
- * if unidirectional then
97
- * if with join table then
98
- * create join table
99
- * else
100
- * create join column
101
- * else
102
- * must be the owner side
103
- * if with join table then
104
- * create join table
105
- * else
106
- * create join column
107
- * set inverse attribute joinCol or joinTable info correctly
108
- *
109
- * @param {string} attributeName
110
- * @param {Attribute} attribute
111
- * @param {ModelMetadata} meta
112
- * @param {Metadata} metadata
113
- */
114
- const createManyToOne = (attributeName, attribute, meta, metadata) => {
115
- if (isBidirectional(attribute) && !isOwner(attribute)) {
116
- throw new Error('The many side of a manyToOne must be the owning side');
117
- }
118
- if (shouldUseJoinTable(attribute)) {
119
- createJoinTable(metadata, {
120
- attribute,
121
- attributeName,
122
- meta,
123
- });
124
- }
125
- else {
126
- createJoinColum(metadata, {
127
- attribute,
128
- attributeName,
129
- meta,
130
- });
131
- }
132
- };
133
- /**
134
- * Creates a manyToMany relation metadata
135
- *
136
- * if unidirectional
137
- * create join table
138
- * else
139
- * if owner then
140
- * if with join table then
141
- * create join table
142
- * else
143
- * do nothing
144
- *
145
- * @param {string} attributeName
146
- * @param {Attribute} attribute
147
- * @param {ModelMetadata} meta
148
- * @param {Metadata} metadata
149
- */
150
- const createManyToMany = (attributeName, attribute, meta, metadata) => {
151
- if (!isBidirectional(attribute) || isOwner(attribute)) {
152
- createJoinTable(metadata, {
153
- attribute,
154
- attributeName,
155
- meta,
156
- });
157
- }
158
- };
159
- /**
160
- * Creates a morphToOne relation metadata
161
- *
162
- * if with join table then
163
- * create join table
164
- * else
165
- * create join columnsa
166
- *
167
- * if bidirectionnal
168
- * set info in the traget
169
- *
170
- *
171
- * @param {string} attributeName
172
- * @param {Attribute} attribute
173
- * @param {ModelMetadata} meta
174
- * @param {Metadata} metadata
175
- */
176
- const createMorphToOne = (attributeName, attribute /* meta, metadata */) => {
177
- const idColumnName = 'target_id';
178
- const typeColumnName = 'target_type';
179
- Object.assign(attribute, {
180
- owner: true,
181
- morphColumn: {
182
- // TODO: add referenced column
183
- typeColumn: {
184
- name: typeColumnName,
185
- },
186
- idColumn: {
187
- name: idColumnName,
188
- referencedColumn: 'id',
189
- },
190
- },
191
- });
192
- // TODO: implement bidirectional
193
- };
194
- /**
195
- * Creates a morphToMany relation metadata
196
- *
197
- * @param {string} attributeName
198
- * @param {Attribute} attribute
199
- * @param {ModelMetadata} meta
200
- * @param {Metadata} metadata
201
- */
202
- const createMorphToMany = (attributeName, attribute, meta, metadata) => {
203
- const joinTableName = fp_1.default.snakeCase(`${meta.tableName}_${attributeName}_morphs`);
204
- const joinColumnName = fp_1.default.snakeCase(`${meta.singularName}_id`);
205
- const morphColumnName = fp_1.default.snakeCase(`${attributeName}`);
206
- const idColumnName = `${morphColumnName}_id`;
207
- const typeColumnName = `${morphColumnName}_type`;
208
- metadata.add({
209
- uid: joinTableName,
210
- tableName: joinTableName,
211
- attributes: {
212
- id: {
213
- type: 'increments',
214
- },
215
- [joinColumnName]: {
216
- type: 'integer',
217
- column: {
218
- unsigned: true,
219
- },
220
- },
221
- [idColumnName]: {
222
- type: 'integer',
223
- column: {
224
- unsigned: true,
225
- },
226
- },
227
- [typeColumnName]: {
228
- type: 'string',
229
- },
230
- field: {
231
- type: 'string',
232
- },
233
- order: {
234
- type: 'float',
235
- column: {
236
- unsigned: true,
237
- },
238
- },
239
- },
240
- indexes: [
241
- {
242
- name: `${joinTableName}_fk`,
243
- columns: [joinColumnName],
244
- },
245
- {
246
- name: `${joinTableName}_order_index`,
247
- columns: ['order'],
248
- type: null,
249
- },
250
- {
251
- name: `${joinTableName}_id_column_index`,
252
- columns: [idColumnName],
253
- type: null,
254
- },
255
- ],
256
- foreignKeys: [
257
- {
258
- name: `${joinTableName}_fk`,
259
- columns: [joinColumnName],
260
- referencedColumns: ['id'],
261
- referencedTable: meta.tableName,
262
- onDelete: 'CASCADE',
263
- },
264
- ],
265
- });
266
- const joinTable = {
267
- name: joinTableName,
268
- joinColumn: {
269
- name: joinColumnName,
270
- referencedColumn: 'id',
271
- },
272
- morphColumn: {
273
- typeColumn: {
274
- name: typeColumnName,
275
- },
276
- idColumn: {
277
- name: idColumnName,
278
- referencedColumn: 'id',
279
- },
280
- },
281
- orderBy: {
282
- order: 'asc',
283
- },
284
- pivotColumns: [joinColumnName, typeColumnName, idColumnName],
285
- };
286
- attribute.joinTable = joinTable;
287
- };
288
- /**
289
- * Creates a morphOne relation metadata
290
- *
291
- * @param {string} attributeName
292
- * @param {Attribute} attribute
293
- * @param {ModelMetadata} meta
294
- * @param {Metadata} metadata
295
- */
296
- const createMorphOne = (attributeName, attribute, meta, metadata) => {
297
- const targetMeta = metadata.get(attribute.target);
298
- if (!targetMeta) {
299
- throw new Error(`Morph target not found. Looking for ${attribute.target}`);
300
- }
301
- if (!fp_1.default.has(attribute.morphBy, targetMeta.attributes)) {
302
- throw new Error(`Morph target attribute not found. Looking for ${attribute.morphBy}`);
303
- }
304
- };
305
- /**
306
- * Creates a morphMany relation metadata
307
- *
308
- * @param {string} attributeName
309
- * @param {Attribute} attribute
310
- * @param {ModelMetadata} meta
311
- * @param {Metadata} metadata
312
- */
313
- const createMorphMany = (attributeName, attribute, meta, metadata) => {
314
- const targetMeta = metadata.get(attribute.target);
315
- if (!targetMeta) {
316
- throw new Error(`Morph target not found. Looking for ${attribute.target}`);
317
- }
318
- if (!fp_1.default.has(attribute.morphBy, targetMeta.attributes)) {
319
- throw new Error(`Morph target attribute not found. Looking for ${attribute.morphBy}`);
320
- }
321
- };
322
- /**
323
- * Creates a relation metadata
324
- *
325
- * @param {string} attributeName
326
- * @param {Attribute} attribute
327
- * @param {ModelMetadata} meta
328
- * @param {Metadata} metadata
329
- */
330
- const createRelation = (attributeName, attribute, meta, metadata) => {
331
- switch (attribute.relation) {
332
- case 'oneToOne':
333
- return createOneToOne(attributeName, attribute, meta, metadata);
334
- case 'oneToMany':
335
- return createOneToMany(attributeName, attribute, meta, metadata);
336
- case 'manyToOne':
337
- return createManyToOne(attributeName, attribute, meta, metadata);
338
- case 'manyToMany':
339
- return createManyToMany(attributeName, attribute, meta, metadata);
340
- case 'morphToOne':
341
- return createMorphToOne(attributeName, attribute, meta, metadata);
342
- case 'morphToMany':
343
- return createMorphToMany(attributeName, attribute, meta, metadata);
344
- case 'morphOne':
345
- return createMorphOne(attributeName, attribute, meta, metadata);
346
- case 'morphMany':
347
- return createMorphMany(attributeName, attribute, meta, metadata);
348
- default: {
349
- throw new Error(`Unknown relation ${attribute.relation}`);
350
- }
351
- }
352
- };
353
- exports.createRelation = createRelation;
354
- /**
355
- * Creates a join column info and add them to the attribute meta
356
- * @param {Object} metadata metadata registry
357
- * @param {Object} param
358
- * @param {Object} param.attribute associated attribute
359
- * @param {string} param.attributeName name of the associated attribute
360
- * @param {Object} param.meta model metadata
361
- */
362
- const createJoinColum = (metadata, { attribute, attributeName /* meta */ }) => {
363
- const targetMeta = metadata.get(attribute.target);
364
- const joinColumnName = fp_1.default.snakeCase(`${attributeName}_id`);
365
- const joinColumn = {
366
- name: joinColumnName,
367
- referencedColumn: 'id',
368
- referencedTable: targetMeta.tableName,
369
- };
370
- Object.assign(attribute, { owner: true, joinColumn });
371
- if (isBidirectional(attribute)) {
372
- const inverseAttribute = targetMeta.attributes[attribute.inversedBy];
373
- Object.assign(inverseAttribute, {
374
- joinColumn: {
375
- name: joinColumn.referencedColumn,
376
- referencedColumn: joinColumn.name,
377
- },
378
- });
379
- }
380
- };
381
- /**
382
- * Creates a join table and add it to the attribute meta
383
- * @param {Object} metadata metadata registry
384
- * @param {Object} param
385
- * @param {Object} param.attribute associated attribute
386
- * @param {string} param.attributeName name of the associated attribute
387
- * @param {Object} param.meta model metadata
388
- */
389
- const createJoinTable = (metadata, { attributeName, attribute, meta }) => {
390
- const targetMeta = metadata.get(attribute.target);
391
- if (!targetMeta) {
392
- throw new Error(`Unknown target ${attribute.target}`);
393
- }
394
- const joinTableName = getJoinTableName(meta.tableName, attributeName);
395
- const joinColumnName = fp_1.default.snakeCase(`${meta.singularName}_id`);
396
- let inverseJoinColumnName = fp_1.default.snakeCase(`${targetMeta.singularName}_id`);
397
- // if relation is self referencing
398
- if (joinColumnName === inverseJoinColumnName) {
399
- inverseJoinColumnName = `inv_${inverseJoinColumnName}`;
400
- }
401
- const orderColumnName = fp_1.default.snakeCase(`${targetMeta.singularName}_order`);
402
- let inverseOrderColumnName = fp_1.default.snakeCase(`${meta.singularName}_order`);
403
- // if relation is self referencing
404
- if (attribute.relation === 'manyToMany' && orderColumnName === inverseOrderColumnName) {
405
- inverseOrderColumnName = `inv_${inverseOrderColumnName}`;
406
- }
407
- const metadataSchema = {
408
- uid: joinTableName,
409
- tableName: joinTableName,
410
- attributes: {
411
- id: {
412
- type: 'increments',
413
- },
414
- [joinColumnName]: {
415
- type: 'integer',
416
- column: {
417
- unsigned: true,
418
- },
419
- },
420
- [inverseJoinColumnName]: {
421
- type: 'integer',
422
- column: {
423
- unsigned: true,
424
- },
425
- },
426
- // TODO: add extra pivot attributes -> user should use an intermediate entity
427
- },
428
- indexes: [
429
- {
430
- name: `${joinTableName}_fk`,
431
- columns: [joinColumnName],
432
- },
433
- {
434
- name: `${joinTableName}_inv_fk`,
435
- columns: [inverseJoinColumnName],
436
- },
437
- {
438
- name: `${joinTableName}_unique`,
439
- columns: [joinColumnName, inverseJoinColumnName],
440
- type: 'unique',
441
- },
442
- ],
443
- foreignKeys: [
444
- {
445
- name: `${joinTableName}_fk`,
446
- columns: [joinColumnName],
447
- referencedColumns: ['id'],
448
- referencedTable: meta.tableName,
449
- onDelete: 'CASCADE',
450
- },
451
- {
452
- name: `${joinTableName}_inv_fk`,
453
- columns: [inverseJoinColumnName],
454
- referencedColumns: ['id'],
455
- referencedTable: targetMeta.tableName,
456
- onDelete: 'CASCADE',
457
- },
458
- ],
459
- };
460
- const joinTable = {
461
- name: joinTableName,
462
- joinColumn: {
463
- name: joinColumnName,
464
- referencedColumn: 'id',
465
- },
466
- inverseJoinColumn: {
467
- name: inverseJoinColumnName,
468
- referencedColumn: 'id',
469
- },
470
- pivotColumns: [joinColumnName, inverseJoinColumnName],
471
- };
472
- // order
473
- if (isAnyToMany(attribute)) {
474
- metadataSchema.attributes[orderColumnName] = {
475
- type: 'float',
476
- column: {
477
- unsigned: true,
478
- defaultTo: null,
479
- },
480
- };
481
- metadataSchema.indexes.push({
482
- name: `${joinTableName}_order_fk`,
483
- columns: [orderColumnName],
484
- });
485
- joinTable.orderColumnName = orderColumnName;
486
- joinTable.orderBy = { [orderColumnName]: 'asc' };
487
- }
488
- // inv order
489
- if (isBidirectional(attribute) && isManyToAny(attribute)) {
490
- metadataSchema.attributes[inverseOrderColumnName] = {
491
- type: 'float',
492
- column: {
493
- unsigned: true,
494
- defaultTo: null,
495
- },
496
- };
497
- metadataSchema.indexes.push({
498
- name: `${joinTableName}_order_inv_fk`,
499
- columns: [inverseOrderColumnName],
500
- });
501
- joinTable.inverseOrderColumnName = inverseOrderColumnName;
502
- }
503
- metadata.add(metadataSchema);
504
- attribute.joinTable = joinTable;
505
- if (isBidirectional(attribute)) {
506
- const inverseAttribute = targetMeta.attributes[attribute.inversedBy];
507
- if (!inverseAttribute) {
508
- throw new Error(`inversedBy attribute ${attribute.inversedBy} not found target ${targetMeta.uid}`);
509
- }
510
- inverseAttribute.joinTable = {
511
- name: joinTableName,
512
- joinColumn: joinTable.inverseJoinColumn,
513
- inverseJoinColumn: joinTable.joinColumn,
514
- pivotColumns: joinTable.pivotColumns,
515
- };
516
- if (isManyToAny(attribute)) {
517
- inverseAttribute.joinTable.orderColumnName = inverseOrderColumnName;
518
- inverseAttribute.joinTable.orderBy = { [inverseOrderColumnName]: 'asc' };
519
- }
520
- if (isAnyToMany(attribute)) {
521
- inverseAttribute.joinTable.inverseOrderColumnName = orderColumnName;
522
- }
523
- }
524
- };
525
- const hasOrderColumn = (attribute) => isAnyToMany(attribute);
526
- exports.hasOrderColumn = hasOrderColumn;
527
- const hasInverseOrderColumn = (attribute) => isBidirectional(attribute) && isManyToAny(attribute);
528
- exports.hasInverseOrderColumn = hasInverseOrderColumn;
529
- //# sourceMappingURL=relations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"relations.js","sourceRoot":"","sources":["../../src/metadata/relations.ts"],"names":[],"mappings":"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"}
@@ -1,44 +0,0 @@
1
- export interface Attribute {
2
- type: string;
3
- columnName?: string;
4
- column?: {
5
- unsigned?: boolean;
6
- defaultTo?: unknown;
7
- };
8
- required?: boolean;
9
- unique?: boolean;
10
- component?: string;
11
- repeatable?: boolean;
12
- }
13
- export interface Meta {
14
- singularName?: string;
15
- uid: string;
16
- tableName: string;
17
- attributes: Record<string, Attribute>;
18
- indexes: Record<string, unknown>[];
19
- foreignKeys?: Record<string, unknown>[];
20
- lifecycles?: Record<string, unknown>;
21
- columnToAttribute?: Record<string, string>;
22
- componentLink?: Meta;
23
- }
24
- export interface ComponentLinkMeta extends Meta {
25
- componentLink: Meta;
26
- }
27
- export interface Model {
28
- uid: string;
29
- tableName: string;
30
- singularName: string;
31
- attributes: Record<string, Attribute>;
32
- lifecycles: Record<string, unknown>;
33
- indexes: Record<string, unknown>[];
34
- componentLink?: Meta;
35
- columnToAttribute?: Record<string, string>;
36
- foreignKeys?: Record<string, unknown>[];
37
- }
38
- export declare class Metadata extends Map<string, Meta> {
39
- add(meta: Meta): this;
40
- /**
41
- * Validate the DB metadata, throwing an error if a duplicate DB table name is detected
42
- */
43
- validate(): void;
44
- }
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Metadata = void 0;
4
- class Metadata extends Map {
5
- add(meta) {
6
- return this.set(meta.uid, meta);
7
- }
8
- /**
9
- * Validate the DB metadata, throwing an error if a duplicate DB table name is detected
10
- */
11
- validate() {
12
- const seenTables = new Map();
13
- for (const meta of this.values()) {
14
- if (seenTables.get(meta.tableName)) {
15
- throw new Error(`DB table "${meta.tableName}" already exists. Change the collectionName of the related content type.`);
16
- }
17
- seenTables.set(meta.tableName, true);
18
- }
19
- }
20
- }
21
- exports.Metadata = Metadata;
22
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/metadata/types.ts"],"names":[],"mappings":";;;AAyCA,MAAa,QAAS,SAAQ,GAAiB;IAC7C,GAAG,CAAC,IAAU;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,MAAM,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;YAChC,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBAClC,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,CAAC,SAAS,0EAA0E,CACtG,CAAC;aACH;YACD,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;SACtC;IACH,CAAC;CACF;AAnBD,4BAmBC"}
@@ -1,11 +0,0 @@
1
- import type { Database } from '..';
2
- export interface MigrationProvider {
3
- shouldRun(): Promise<boolean>;
4
- up(): Promise<void>;
5
- down(): Promise<void>;
6
- }
7
- /**
8
- * Creates migrations provider
9
- * @type {import('.').createMigrationsProvider}
10
- */
11
- export declare const createMigrationsProvider: (db: Database) => MigrationProvider;