database-builder
Version:
Library to assist in creating and maintaining SQL commands.
53 lines (52 loc) • 2.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DdlBaseBuilder = void 0;
var DdlBaseBuilder = /** @class */ (function () {
function DdlBaseBuilder(_tablename) {
this._tablename = _tablename;
this._columnsCompiled = {
columns: [],
keyColumns: []
};
}
DdlBaseBuilder.prototype.build = function (cascade) {
var _this = this;
if (cascade === void 0) { cascade = true; }
var dependenciesCompiled = [];
if (cascade) {
this.dependencies().forEach(function (dependency) {
dependenciesCompiled.push(_this.resolveDependency(dependency));
});
}
var script = this.removeMultiSpacesAndBreakLines(this.buildBase());
return {
script: {
query: script,
params: []
},
dependencies: dependenciesCompiled
};
};
DdlBaseBuilder.prototype.removeMultiSpacesAndBreakLines = function (str) {
return str.replace(/\s\s+/g, " ");
};
DdlBaseBuilder.prototype.getColumnsCompiled = function () {
if (!this._columnsCompiled.columns.length) {
this.setDefaultColumns();
}
return this._columnsCompiled;
};
DdlBaseBuilder.prototype.columnsBase = function (columnsCallback, instanceSetColumnsBuilder, instanceReturn) {
columnsCallback(instanceSetColumnsBuilder);
this.compileColumns(instanceSetColumnsBuilder.compile());
return instanceReturn;
};
DdlBaseBuilder.prototype.compileColumns = function (compiled) {
if (compiled.columns.length) {
this._columnsCompiled.columns = this._columnsCompiled.columns.concat(compiled.columns);
this._columnsCompiled.keyColumns = this._columnsCompiled.keyColumns.concat(compiled.keyColumns);
}
};
return DdlBaseBuilder;
}());
exports.DdlBaseBuilder = DdlBaseBuilder;