UNPKG

json-api-nestjs

Version:
77 lines 3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getRelationProperty = exports.getPrimaryColumnType = exports.getPrimaryColumnName = exports.getPropsNullable = exports.getPropsType = exports.getProps = exports.getRelation = void 0; const types_1 = require("../../mixin/types"); const getRelation = (entityMetadata) => entityMetadata.relations.map((i) => i.name); exports.getRelation = getRelation; const getProps = (entityMetadata) => { const relations = (0, exports.getRelation)(entityMetadata); return entityMetadata.props .map((i) => i.name) .filter((i) => !relations.includes(i)); }; exports.getProps = getProps; const getPropsType = (entityMetadata, config) => { const field = (0, exports.getProps)(entityMetadata); const result = {}; for (const item of field) { const props = entityMetadata.properties[item]; let typeProps = types_1.TypeField.string; if (config.includes(props['type'])) { result[item] = types_1.TypeField.array; continue; } switch (props.runtimeType) { case 'Date': typeProps = types_1.TypeField.date; break; case 'number': typeProps = types_1.TypeField.number; break; case 'boolean': typeProps = types_1.TypeField.boolean; break; case 'object': typeProps = types_1.TypeField.object; break; default: typeProps = types_1.TypeField.string; } result[item] = typeProps; } return result; }; exports.getPropsType = getPropsType; const getPropsNullable = (entityMetadata) => { return (0, exports.getProps)(entityMetadata) .map((i) => { // @ts-ignore const props = entityMetadata.properties[i]; return props.nullable || props.default !== undefined ? i : false; }) .filter((i) => !!i); }; exports.getPropsNullable = getPropsNullable; const getPrimaryColumnName = (entityMetadata) => entityMetadata.getPrimaryProp().name.toString(); exports.getPrimaryColumnName = getPrimaryColumnName; const getPrimaryColumnType = (entityMetadata) => { return entityMetadata.getPrimaryProp().runtimeType === 'number' ? types_1.TypeField.number : types_1.TypeField.string; }; exports.getPrimaryColumnType = getPrimaryColumnType; const getRelationProperty = (entityMetadata) => { return entityMetadata.relations.reduce((acum, item) => { // @ts-expect-error its dynamic creater acum[item.name] = { entityClass: item.entity(), nullable: item.kind === 'm:n' || item.kind === '1:m' ? false : !!item.nullable, isArray: item.kind === 'm:n' || item.kind === '1:m', }; return acum; }, {}); }; exports.getRelationProperty = getRelationProperty; //# sourceMappingURL=index.js.map