UNPKG

database-builder

Version:

Library to assist in creating and maintaining SQL commands.

89 lines (88 loc) 4.13 kB
"use strict"; 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.CrudBaseBuilder = void 0; var where_builder_1 = require("./where-builder"); var sql_base_builder_1 = require("./sql-base-builder"); var commander_builder_1 = require("./commander-builder"); var CrudBaseBuilder = /** @class */ (function (_super) { __extends(CrudBaseBuilder, _super); function CrudBaseBuilder(typeT, mapperTable, config, alias) { if (alias === void 0) { alias = void 0; } var _this = _super.call(this, typeT, typeT, mapperTable, alias) || this; _this.config = config; _this._columnsCompiled = { columns: [], params: [], keyColumns: [] }; _this._commanderBuilder = new commander_builder_1.CommanderBuilder(config); return _this; } CrudBaseBuilder.prototype.compile = function () { var _this = this; var compiledBase = this.buildBase(); if (Array.isArray(compiledBase)) return compiledBase.map(function (c) { return ({ query: "".concat(c.query).concat(_this.whereCompiled.where), params: c.params.concat(_this.whereCompiled.params) }); }); return { params: compiledBase.params.concat(this.whereCompiled.params), query: "".concat(compiledBase.query).concat(this.whereCompiled.where), }; }; CrudBaseBuilder.prototype.getColumnsCompiled = function () { if (!this._columnsCompiled.columns.length) { this.setDefaultColumns(); } return this._columnsCompiled; }; CrudBaseBuilder.prototype.columnsBase = function (columnsCallback, instanceSetColumnsBuilder, instanceReturn) { columnsCallback(instanceSetColumnsBuilder); this.compileColumns(instanceSetColumnsBuilder.compile()); return instanceReturn; }; CrudBaseBuilder.prototype.whereBase = function (whereCallback, instanceReturn, withAlias) { if (withAlias === void 0) { withAlias = true; } var instanceWhere = new where_builder_1.WhereBuilder(this._newable, withAlias ? this._alias : void 0); whereCallback(instanceWhere); this.compileWhere(this.whereCompiled, instanceWhere.compile()); return instanceReturn; }; CrudBaseBuilder.prototype.compileColumns = function (compiled) { if (compiled.columns.length) { this._columnsCompiled.columns = this._columnsCompiled.columns.concat(compiled.columns); this._columnsCompiled.params = this._columnsCompiled.params.concat(compiled.params); } }; Object.defineProperty(CrudBaseBuilder.prototype, "specifiedColumns", { get: function () { return this.columnsBuilder.columns; }, enumerable: false, configurable: true }); Object.defineProperty(CrudBaseBuilder.prototype, "columnsBuilder", { get: function () { var _a; return (_a = this._columnsBuilder) !== null && _a !== void 0 ? _a : (this._columnsBuilder = this.createColumnsBuilder()); }, enumerable: false, configurable: true }); return CrudBaseBuilder; }(sql_base_builder_1.SqlBaseBuilder)); exports.CrudBaseBuilder = CrudBaseBuilder;