UNPKG

@elsikora/nestjs-crud-automator

Version:

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

28 lines (25 loc) 1.38 kB
import { getMetadataArgsStorage } from '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 = getMetadataArgsStorage().columns.filter((column) => column.target == entity); const relations = 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; } export { GetEntityColumns }; //# sourceMappingURL=get-entity-columns.utility.js.map