database-builder
Version:
Library to assist in creating and maintaining SQL commands.
44 lines (43 loc) • 1.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DdlBase = void 0;
var executable_builder_1 = require("../core/executable-builder");
var errors_1 = require("../core/errors");
var DdlBase = /** @class */ (function () {
function DdlBase(_builder, _database, enableLog) {
if (_database === void 0) { _database = void 0; }
if (enableLog === void 0) { enableLog = true; }
this._builder = _builder;
this._database = _database;
// tslint:disable-next-line: variable-name
this.__allowInTransaction = true;
this._executableBuilder = new executable_builder_1.ExecutableBuilder(enableLog);
}
DdlBase.prototype.execute = function (_a) {
var _b = _a === void 0 ? {} : _a, _c = _b.cascade, cascade = _c === void 0 ? true : _c, database = _b.database;
var compiled = this.compile(cascade);
return this._executableBuilder.execute(compiled, this.getDatabase(database));
};
DdlBase.prototype.compile = function (cascade) {
if (cascade === void 0) { cascade = true; }
var compiled = this.build(cascade);
var script = [compiled.script];
compiled.dependencies.forEach(function (dependency) {
script.push(dependency.script);
});
return script;
};
DdlBase.prototype.build = function (cascade) {
if (cascade === void 0) { cascade = true; }
return this._builder.build(cascade);
};
DdlBase.prototype.getDatabase = function (database) {
var result = (database ? database : this._database);
if (!result) {
throw new errors_1.DatabaseBuilderError("Database not specified in query.");
}
return result;
};
return DdlBase;
}());
exports.DdlBase = DdlBase;