typeorm
Version:
Data-Mapper ORM for TypeScript and ES2021+. Supports MySQL/MariaDB, PostgreSQL, MS SQL Server, Oracle, SAP HANA, SQLite, MongoDB databases.
73 lines (71 loc) • 2.9 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TableForeignKey = void 0;
/**
* Foreign key from the database stored in this class.
*/
class TableForeignKey {
// -------------------------------------------------------------------------
// Constructor
// -------------------------------------------------------------------------
constructor(options) {
this["@instanceof"] = Symbol.for("TableForeignKey");
/**
* Column names which included by this foreign key.
*/
this.columnNames = [];
/**
* Column names which included by this foreign key.
*/
this.referencedColumnNames = [];
this.name = options.name;
this.columnNames = options.columnNames;
this.referencedColumnNames = options.referencedColumnNames;
this.referencedDatabase = options.referencedDatabase;
this.referencedSchema = options.referencedSchema;
this.referencedTableName = options.referencedTableName;
this.onDelete = options.onDelete;
this.onUpdate = options.onUpdate;
this.deferrable = options.deferrable;
}
// -------------------------------------------------------------------------
// Public Methods
// -------------------------------------------------------------------------
/**
* Creates a new copy of this foreign key with exactly same properties.
*/
clone() {
return new TableForeignKey({
name: this.name,
columnNames: [...this.columnNames],
referencedColumnNames: [...this.referencedColumnNames],
referencedDatabase: this.referencedDatabase,
referencedSchema: this.referencedSchema,
referencedTableName: this.referencedTableName,
onDelete: this.onDelete,
onUpdate: this.onUpdate,
deferrable: this.deferrable,
});
}
// -------------------------------------------------------------------------
// Static Methods
// -------------------------------------------------------------------------
/**
* Creates a new table foreign key from the given foreign key metadata.
*/
static create(metadata, driver) {
return new TableForeignKey({
name: metadata.name,
columnNames: metadata.columnNames,
referencedColumnNames: metadata.referencedColumnNames,
referencedDatabase: metadata.referencedEntityMetadata.database,
referencedSchema: metadata.referencedEntityMetadata.schema,
referencedTableName: metadata.referencedTablePath,
onDelete: metadata.onDelete,
onUpdate: metadata.onUpdate,
deferrable: metadata.deferrable,
});
}
}
exports.TableForeignKey = TableForeignKey;
//# sourceMappingURL=TableForeignKey.js.map