UNPKG

database-builder

Version:

Library to assist in creating and maintaining SQL commands.

76 lines (75 loc) 3.42 kB
"use strict"; 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;