zing-orm
Version:
41 lines • 3.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.findTableName = exports.getGlobalTablesObj = void 0;
const PlatformTools_1 = require("./PlatformTools");
const lodash_1 = require("lodash");
/**
* Gets metadata args storage.
*/
function getGlobalTablesObj() {
// we should store metadata storage in a global variable otherwise it brings too much problems
// one of the problem is that if any entity (or any other) will be imported before consumer will call
// useContainer method with his own container implementation, that entity will be registered in the
// old old container (default one post probably) and consumer will his entity.
// calling useContainer before he imports any entity (or any other) is not always convenient.
// another reason is that when we run migrations typeorm is being called from a global package
// and it may load entities which register decorators in typeorm of local package
// this leads to impossibility of usage of entities in migrations and cli related operations
const globalScope = PlatformTools_1.PlatformTools.getGlobalVariable();
if (!globalScope.tablesObj)
globalScope.tablesObj = {};
return globalScope.tablesObj;
}
exports.getGlobalTablesObj = getGlobalTablesObj;
function findTableName(entity) {
//todo add check entity, just like check parames
if (!entity) {
throw Error(`global tools findTableName: entity can not be ${JSON.stringify(entity)} !!!`);
}
let tableName = undefined;
(0, lodash_1.forOwn)(getGlobalTablesObj(), (value, key) => {
if (value.entityClass === entity) {
tableName = key;
}
});
if (!tableName) {
throw Error(`global tools findTableName: entity ${JSON.stringify(entity)} is not found!`);
}
return tableName;
}
exports.findTableName = findTableName;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImdsb2JhbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbURBQWdEO0FBQ2hELG1DQUFnQztBQUVoQzs7R0FFRztBQUNILFNBQWdCLGtCQUFrQjtJQUM5Qiw4RkFBOEY7SUFDOUYscUdBQXFHO0lBQ3JHLG1HQUFtRztJQUNuRyw4RUFBOEU7SUFDOUUsNkZBQTZGO0lBQzdGLDhGQUE4RjtJQUM5RixpRkFBaUY7SUFDakYsNEZBQTRGO0lBQzVGLE1BQU0sV0FBVyxHQUFHLDZCQUFhLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUN0RCxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVM7UUFDdEIsV0FBVyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFFL0IsT0FBTyxXQUFXLENBQUMsU0FBUyxDQUFDO0FBQ2pDLENBQUM7QUFkRCxnREFjQztBQUVELFNBQWdCLGFBQWEsQ0FBQyxNQUFXO0lBQ3JDLGdEQUFnRDtJQUNoRCxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ1QsTUFBTSxLQUFLLENBQUMsaURBQWlELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0tBQzlGO0lBQ0QsSUFBSSxTQUFTLEdBQUcsU0FBUyxDQUFDO0lBQzFCLElBQUEsZUFBTSxFQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDeEMsSUFBSSxLQUFLLENBQUMsV0FBVyxLQUFLLE1BQU0sRUFBRTtZQUM5QixTQUFTLEdBQUcsR0FBRyxDQUFDO1NBQ25CO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsU0FBUyxFQUFFO1FBQ1osTUFBTSxLQUFLLENBQUMsc0NBQXNDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7S0FDN0Y7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNyQixDQUFDO0FBaEJELHNDQWdCQyJ9