UNPKG

@elsikora/nestjs-crud-automator

Version:

A library for automating the creation of CRUD operations in NestJS.

30 lines (26 loc) 1.4 kB
'use strict'; var typeorm = require('typeorm'); /** * Retrieves column and relation property names from an entity based on specified filters * @param {IGetEntityColumnsProperties} properties - Configuration options for retrieving entity columns * @returns {Array<keyof E>} Array of property names from the entity * @template E - The entity type */ function GetEntityColumns(properties) { const { entity, shouldTakeGeneratedOnly, shouldTakeRelationsOnly } = properties; const columns = typeorm.getMetadataArgsStorage().columns.filter((column) => column.target == entity); const relations = typeorm.getMetadataArgsStorage().relations.filter((relation) => relation.target == entity); let columnNames; if (shouldTakeRelationsOnly) { columnNames = relations.map((relation) => relation.propertyName); } else { // eslint-disable-next-line @elsikora/typescript/prefer-nullish-coalescing const columnPropertyNames = columns.filter((column) => !shouldTakeGeneratedOnly || column.options.generated || column.options.default !== undefined).map((column) => column.propertyName); const relationNames = relations.map((relation) => relation.propertyName); columnNames = [...columnPropertyNames, ...relationNames]; } return columnNames; } exports.GetEntityColumns = GetEntityColumns; //# sourceMappingURL=entity-columns.utility.js.map