UNPKG

database-builder

Version:

Library to assist in creating and maintaining SQL commands.

62 lines (61 loc) 2.56 kB
"use strict"; 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;