database-builder
Version:
Library to assist in creating and maintaining SQL commands.
77 lines (76 loc) • 3.9 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.Update = void 0;
var update_builder_1 = require("./update-builder");
var crud_base_1 = require("../crud-base");
var type_crud_1 = require("../enums/type-crud");
var delete_builder_1 = require("../delete/delete-builder");
var insert_builder_1 = require("../insert/insert-builder");
var key_utils_1 = require("../../core/key-utils");
var column_ref_1 = require("../../core/column-ref");
var model_utils_1 = require("../../core/model-utils");
var Update = /** @class */ (function (_super) {
__extends(Update, _super);
function Update(typeT, _a) {
var toSave = _a.toSave, mapperTable = _a.mapperTable, alias = _a.alias, database = _a.database, _b = _a.enableLog, enableLog = _b === void 0 ? true : _b, config = _a.config;
return _super.call(this, type_crud_1.TypeCrud.UPDATE, {
mapperTable: mapperTable,
builder: new update_builder_1.UpdateBuilder(typeT, mapperTable, alias, toSave, config),
database: database,
enableLog: enableLog
}) || this;
}
Update.prototype.columns = function (columnsCallback) {
this._builder.columns(columnsCallback);
return this;
};
Update.prototype.where = function (where) {
this._builder.where(where);
return this;
};
Update.prototype.compileValuesDependency = function (dependency, valuesDependencyArray, fieldReferenceSubItem) {
var _this = this;
var scripts = [];
valuesDependencyArray.forEach(function (valuesDependency) {
if (valuesDependency === null || valuesDependency === void 0 ? void 0 : valuesDependency.length) {
var dependenciesListSimpleModel = valuesDependency.map(function (value, index) {
var valueItem = fieldReferenceSubItem ? model_utils_1.ModelUtils.get(value, fieldReferenceSubItem) : value;
return {
index: index,
value: valueItem,
reference: key_utils_1.KeyUtils.getKey(_this.mapperTable, _this.model())
};
});
var builder = new insert_builder_1.InsertBuilder(void 0, dependency, void 0, dependenciesListSimpleModel, _this._builder.config);
_this.checkAndPush(scripts, builder.compile());
}
});
return scripts;
};
Update.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; });
where.equal(new column_ref_1.ColumnRef(columnReference), key_utils_1.KeyUtils.getKey(_this.mapperTable, _this.model()));
});
return deleteBuilder.compile();
};
return Update;
}(crud_base_1.CrudBase));
exports.Update = Update;