database-builder
Version:
Library to assist in creating and maintaining SQL commands.
62 lines (61 loc) • 3.24 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.Delete = void 0;
var crud_base_1 = require("../crud-base");
var delete_builder_1 = require("./delete-builder");
var type_crud_1 = require("../enums/type-crud");
var key_utils_1 = require("../../core/key-utils");
var column_ref_1 = require("../../core/column-ref");
var core_1 = require("../../core");
var utils_1 = require("../../core/utils");
var Delete = /** @class */ (function (_super) {
__extends(Delete, _super);
function Delete(typeT, _a) {
var modelToSave = _a.modelToSave, mapperTable = _a.mapperTable, database = _a.database, _b = _a.enableLog, enableLog = _b === void 0 ? true : _b, config = _a.config;
return _super.call(this, type_crud_1.TypeCrud.DELETE, { mapperTable: mapperTable, builder: new delete_builder_1.DeleteBuilder(typeT, modelToSave, mapperTable, config), database: database, enableLog: enableLog }) || this;
}
Delete.prototype.dependencies = function () {
// Não precisa observar as colunas pois o delete não é especificado colunas
return this.mapperTable.dependencies;
};
Delete.prototype.where = function (where) {
this._builder.where(where);
return this;
};
Delete.prototype.resolveDependencyByValue = function (dependency, value, index) {
var builder = new delete_builder_1.DeleteBuilder(void 0, void 0, dependency, this._builder.config);
return builder.compile();
};
Delete.prototype.resolveDependency = function (dependency) {
var _this = this;
var deleteBuilder = new delete_builder_1.DeleteBuilder(void 0, void 0, dependency, this._builder.config)
.where(function (where) {
var columnReference = dependency.getColumnNameByField(function (x) { return x.reference; });
if (utils_1.Utils.isNull(_this.model())) {
throw new core_1.DatabaseBuilderError("Without the entity data to be deleted it is not possible to delete dependent items by cascade.");
}
where.equal(new column_ref_1.ColumnRef(columnReference), key_utils_1.KeyUtils.getKey(_this.mapperTable, _this.model()));
});
return deleteBuilder.compile();
};
Delete.prototype.compileDependencyByValue = function (dependency) {
return [];
};
return Delete;
}(crud_base_1.CrudBase));
exports.Delete = Delete;