UNPKG

forest-express

Version:

Official package for all Forest Express Lianas

51 lines (49 loc) 2.22 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _ = require('lodash'); var _require = require('@forestadmin/context'), inject = _require.inject; exports.getBelongsToAssociations = function (schema) { return _.filter(schema.fields, function (field) { return field.reference && !_.isArray(field.type) && !field.isVirtual && !field.integration; }); }; exports.getHasManyAssociations = function (schema) { return _.filter(schema.fields, function (field) { return _.isArray(field.type) && !field.isVirtual && !field.integration; }); }; function getField(schema, fieldName) { var _fieldName$split = fieldName.split(':'), _fieldName$split2 = (0, _slicedToArray2["default"])(_fieldName$split, 1), fieldNameToSearch = _fieldName$split2[0]; return schema.fields.find(function (field) { return field.field === fieldNameToSearch; }); } exports.getField = getField; exports.getSmartField = function (schema, fieldName) { var field = getField(schema, fieldName); if (!field) return null; // If the field is not virtual but the field requested is something like "myField:nestedField" // then we want to retrieve nestedField to check if nestedField isVirtual if (!field.isVirtual && fieldName.includes(':') && field.reference) { var _field$reference$spli = field.reference.split('.'), _field$reference$spli2 = (0, _slicedToArray2["default"])(_field$reference$spli, 1), referencedModel = _field$reference$spli2[0]; var _inject = inject(), schemasGenerator = _inject.schemasGenerator; var referenceSchema = schemasGenerator.schemas[referencedModel]; return exports.getSmartField(referenceSchema, fieldName.substring(fieldName.indexOf(':') + 1)); } return field.isVirtual ? field : null; }; exports.isSmartField = function (schema, fieldName) { var fieldFound = exports.getSmartField(schema, fieldName); return !!fieldFound && !!fieldFound.isVirtual; }; exports.getFieldType = function (schema, fieldName) { var fieldFound = getField(schema, fieldName); return fieldFound && fieldFound.type; };