@cuba-platform/front-generator
Version:
CUBA Platform front-end clients generator
32 lines • 1.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.findEntityByName = exports.collectModelContext = void 0;
const cuba_model_1 = require("../../../common/model/cuba-model");
const enums_generation_1 = require("./enums-generation");
/**
* @param projectModel model context collected from
* @return entity and enum map with fqn as key
*/
function collectModelContext(projectModel) {
const entities = (0, cuba_model_1.getEntitiesArray)(projectModel.entities);
const baseProjectEntities = (0, cuba_model_1.getEntitiesArray)(projectModel.baseProjectEntities);
const entitiesMap = new Map();
const enumsMap = new Map();
(0, enums_generation_1.createEnums)(projectModel.enums).forEach(en => enumsMap.set(en.fqn, en.node));
const addEntityToMap = (map, isBaseProjectEntity = false) => (e) => {
map.set(e.fqn, {
isBaseProjectEntity,
entity: e
});
};
entities.forEach(addEntityToMap(entitiesMap));
baseProjectEntities.forEach(addEntityToMap(entitiesMap, true));
return { entitiesMap, enumsMap };
}
exports.collectModelContext = collectModelContext;
function findEntityByName(entityName, ctx) {
return [...ctx.entitiesMap.values()]
.find(entityInfo => entityInfo.entity.name === entityName);
}
exports.findEntityByName = findEntityByName;
//# sourceMappingURL=model-utils.js.map