database-builder
Version:
Library to assist in creating and maintaining SQL commands.
62 lines (61 loc) • 2.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.KeyUtils = void 0;
var primary_key_type_1 = require("./enums/primary-key-type");
var model_utils_1 = require("./model-utils");
var KeyUtils = /** @class */ (function () {
function KeyUtils() {
}
KeyUtils.setKey = function (mapperTable, model, keyValue) {
model_utils_1.ModelUtils.set(model, this.primaryKeyMapper(mapperTable).fieldReference, keyValue);
};
KeyUtils.getKey = function (mapperTable, model) {
return model_utils_1.ModelUtils.get(model, this.primaryKeyMapper(mapperTable).fieldReference);
};
KeyUtils.primaryKeyType = function (mapperTable) {
return this.primaryKeyMapper(mapperTable).primaryKeyType;
};
KeyUtils.isCompositeKey = function (mapperTable) {
return this.primaryKeysMapper(mapperTable).length > 1;
};
KeyUtils.primaryKeyMapper = function (mapperTable) {
return this.primaryKeysMapper(mapperTable).find(function (_) { return true; });
};
KeyUtils.primaryKeysMapper = function (mapperTable) {
return mapperTable.columns.filter(function (x) { return !!x.primaryKeyType; });
};
KeyUtils.setKeyByResult = function (models, result, mapper) {
for (var index = 0; index < models.length; index++) {
var model = models[index];
if (KeyUtils.primaryKeyType(mapper) === primary_key_type_1.PrimaryKeyType.AutoIncrement) {
// calcule id by result
var currentId = result.insertId - (result.rowsAffected - (index + 1));
KeyUtils.setKey(mapper, model, currentId);
}
else {
var keyValue = KeyUtils.getKey(mapper, model);
try {
result.insertId = keyValue;
}
catch (error) {
// ignore error readonly property
}
}
}
return models;
};
KeyUtils.transformerDatabaseResultInArray = function (databaseResult) {
var result = [];
if (databaseResult) {
for (var index = 0; index < databaseResult.rowsAffected; index++) {
var currentId = databaseResult.insertId - (databaseResult.rowsAffected - (index + 1));
result.push({
insertId: currentId
});
}
}
return result;
};
return KeyUtils;
}());
exports.KeyUtils = KeyUtils;