import * as tslib_1 from "tslib";
|
/**
|
* Database's table index stored in this class.
|
*/
|
var TableIndex = /** @class */ (function () {
|
// -------------------------------------------------------------------------
|
// Constructor
|
// -------------------------------------------------------------------------
|
function TableIndex(options) {
|
/**
|
* Columns included in this index.
|
*/
|
this.columnNames = [];
|
this.name = options.name;
|
this.columnNames = options.columnNames;
|
this.isUnique = !!options.isUnique;
|
this.isSpatial = !!options.isSpatial;
|
this.isFulltext = !!options.isFulltext;
|
this.where = options.where ? options.where : "";
|
}
|
// -------------------------------------------------------------------------
|
// Public Methods
|
// -------------------------------------------------------------------------
|
/**
|
* Creates a new copy of this index with exactly same properties.
|
*/
|
TableIndex.prototype.clone = function () {
|
return new TableIndex({
|
name: this.name,
|
columnNames: tslib_1.__spread(this.columnNames),
|
isUnique: this.isUnique,
|
isSpatial: this.isSpatial,
|
isFulltext: this.isFulltext,
|
where: this.where
|
});
|
};
|
// -------------------------------------------------------------------------
|
// Static Methods
|
// -------------------------------------------------------------------------
|
/**
|
* Creates index from the index metadata object.
|
*/
|
TableIndex.create = function (indexMetadata) {
|
return new TableIndex({
|
name: indexMetadata.name,
|
columnNames: indexMetadata.columns.map(function (column) { return column.databaseName; }),
|
isUnique: indexMetadata.isUnique,
|
isSpatial: indexMetadata.isSpatial,
|
isFulltext: indexMetadata.isFulltext,
|
where: indexMetadata.where
|
});
|
};
|
return TableIndex;
|
}());
|
export { TableIndex };
|
|
//# sourceMappingURL=TableIndex.js.map
|