database-builder
Version:
Library to assist in creating and maintaining SQL commands.
67 lines (66 loc) • 3.69 kB
JavaScript
;
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.AlterBuilder = void 0;
var ddl_columns_builder_1 = require("../ddl-columns-builder");
var ddl_base_builder_1 = require("../ddl-base-builder");
var utils_1 = require("../../core/utils");
var core_1 = require("../../core");
var mapper_utils_1 = require("../../mapper/mapper-utils");
var AlterBuilder = /** @class */ (function (_super) {
__extends(AlterBuilder, _super);
function AlterBuilder(typeT, _mapperTable) {
var _this = _super.call(this, _mapperTable.tableName) || this;
_this._mapperTable = _mapperTable;
if (utils_1.Utils.isNull(_mapperTable)) {
throw new core_1.DatabaseBuilderError("Mapper not found for '".concat(_this._tablename, "'"));
}
return _this;
}
AlterBuilder.prototype.addColumn = function (columnExpression, type) {
this._patternOperation = function (column) { return "ADD COLUMN ".concat(column); };
return _super.prototype.columnsBase.call(this, function (column) { return column.set(columnExpression, void 0, type); }, new ddl_columns_builder_1.DdlColumnsBuilder(this._mapperTable, void 0), this);
};
AlterBuilder.prototype.renameColumn = function (columnExpression, newColumnNameExpression) {
this._patternOperation = function (column) { return "RENAME COLUMN ".concat(column, " TO ").concat(utils_1.Utils.getColumn(newColumnNameExpression)); };
return _super.prototype.columnsBase.call(this, function (column) { return column.set(columnExpression, void 0); }, new ddl_columns_builder_1.DdlColumnsBuilder(void 0, void 0), this);
};
AlterBuilder.prototype.renameTable = function (newTableName) {
this._patternOperation = function () { return "RENAME TO ".concat(mapper_utils_1.MapperUtils.resolveKey(newTableName)); };
return this;
};
AlterBuilder.prototype.resolveDependency = function (dependency) {
return void 0;
};
AlterBuilder.prototype.dependencies = function () {
return [];
};
AlterBuilder.prototype.buildBase = function () {
var column = this.getColumnsCompiled();
if (column.columns.length > 1) {
throw new core_1.DatabaseBuilderError("Not allowed ALTER TABLE in multi columns (number columns: ".concat(column.columns.length, ")!"));
}
if (column.columns.length === 0 && utils_1.Utils.isNull(this._patternOperation)) {
throw new core_1.DatabaseBuilderError("Not column for ALTER TABLE, use 'addColumn'!");
}
return "ALTER TABLE ".concat(this._tablename, "\n ").concat(this._patternOperation(column.columns[0]));
};
AlterBuilder.prototype.setDefaultColumns = function () {
};
return AlterBuilder;
}(ddl_base_builder_1.DdlBaseBuilder));
exports.AlterBuilder = AlterBuilder;