UNPKG

2.22 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3/**
4 * Contains all information about entity's foreign key.
5 */
6var ForeignKeyMetadata = /** @class */ (function () {
7 // ---------------------------------------------------------------------
8 // Constructor
9 // ---------------------------------------------------------------------
10 function ForeignKeyMetadata(options) {
11 /**
12 * Array of columns of this foreign key.
13 */
14 this.columns = [];
15 /**
16 * Array of referenced columns.
17 */
18 this.referencedColumns = [];
19 /**
20 * Gets array of column names.
21 */
22 this.columnNames = [];
23 /**
24 * Gets array of referenced column names.
25 */
26 this.referencedColumnNames = [];
27 this.entityMetadata = options.entityMetadata;
28 this.referencedEntityMetadata = options.referencedEntityMetadata;
29 this.columns = options.columns;
30 this.referencedColumns = options.referencedColumns;
31 this.onDelete = options.onDelete || "NO ACTION";
32 this.onUpdate = options.onUpdate || "NO ACTION";
33 this.deferrable = options.deferrable;
34 if (options.namingStrategy)
35 this.build(options.namingStrategy);
36 }
37 // ---------------------------------------------------------------------
38 // Public Methods
39 // ---------------------------------------------------------------------
40 /**
41 * Builds some depend foreign key properties.
42 * Must be called after all entity metadatas and their columns are built.
43 */
44 ForeignKeyMetadata.prototype.build = function (namingStrategy) {
45 this.columnNames = this.columns.map(function (column) { return column.databaseName; });
46 this.referencedColumnNames = this.referencedColumns.map(function (column) { return column.databaseName; });
47 this.referencedTablePath = this.referencedEntityMetadata.tablePath;
48 this.name = namingStrategy.foreignKeyName(this.entityMetadata.tablePath, this.columnNames);
49 };
50 return ForeignKeyMetadata;
51}());
52exports.ForeignKeyMetadata = ForeignKeyMetadata;
53
54//# sourceMappingURL=ForeignKeyMetadata.js.map