database-builder
Version:
Library to assist in creating and maintaining SQL commands.
76 lines (75 loc) • 3.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.MapperBase = void 0;
var metadata_table_1 = require("../metadata-table");
var errors_1 = require("../core/errors");
var mapper_utils_1 = require("./mapper-utils");
var MapperBase = /** @class */ (function () {
function MapperBase(_databaseHelper, _defaultSettings) {
if (_defaultSettings === void 0) { _defaultSettings = {
references: false,
referencesId: true,
referencesIdRecursive: false
}; }
this._databaseHelper = _databaseHelper;
this._defaultSettings = _defaultSettings;
this._mappers = new Map();
}
/**
* Auto Mapper Table for Model, primary key and all column initialized in model class
* @param newable Type Model
* @param keyColumn Expression primary key
* @param isAutoIncrement If primary key is autoincrement, default 'false'
* @param readOnly if column is readonly, default 'false'
* @param settings settings mapper, default settings construtor
* @deprecated use {@link mapper} instead.
*/
MapperBase.prototype.autoMapper = function (newable, keyColumn, primaryKeyType, keyType, readOnly, settings) {
if (settings === void 0) { settings = this._defaultSettings; }
var metadata = new metadata_table_1.MetadataTable(newable, this._databaseHelper, this, readOnly)
.key(keyColumn, primaryKeyType, keyType)
.autoMapper(settings.references, settings.referencesId, settings.referencesIdRecursive);
this.push(metadata);
return metadata;
};
MapperBase.prototype.mapper = function () {
var _a, _b;
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var newable, tableName, readOnly;
if (typeof args[1] === 'string')
_a = args, newable = _a[0], tableName = _a[1], readOnly = _a[2];
else
_b = args, newable = _b[0], readOnly = _b[1];
var metadata = new metadata_table_1.MetadataTable(newable, this._databaseHelper, this, readOnly, tableName);
this.push(metadata);
return metadata;
};
MapperBase.prototype.has = function (tKey) {
return this._mappers.has(mapper_utils_1.MapperUtils.resolveKey(tKey));
};
MapperBase.prototype.get = function (tKey) {
return this._mappers.get(mapper_utils_1.MapperUtils.resolveKey(tKey));
};
MapperBase.prototype.getThrowErrorNotFound = function (tKey) {
if (!this.has(tKey))
throw new errors_1.DatabaseBuilderError("Mapper not found for '".concat(mapper_utils_1.MapperUtils.resolveKey(tKey), "'"));
return this.get(tKey);
};
MapperBase.prototype.forEachMapper = function (callbackfn, thisArg) {
this._mappers.forEach(callbackfn);
};
MapperBase.prototype.clear = function () {
this._mappers = new Map();
};
MapperBase.prototype.push = function (metadataTable) {
var tableName = metadataTable.tableName;
if (this.has(tableName))
throw new errors_1.DatabaseBuilderError("Duplicate mapper: '".concat(tableName, "'"));
this._mappers.set(tableName, metadataTable);
};
return MapperBase;
}());
exports.MapperBase = MapperBase;