# Introduction Avoid having multiple `isDefined` definition across our pacakges Also avoid importing `isDefined` from `twenty-ui` which exposes a huge barrel for a such little util function ## In a nutshell Removed own `isDefined.ts` definition from `twenty-ui` `twenty-front` and `twenty-server` to move it to `twenty-shared`. Updated imports for each packages, and added explicit dependencies to `twenty-shared` if not already in place Related PR https://github.com/twentyhq/twenty/pull/9941
33 lines
942 B
TypeScript
33 lines
942 B
TypeScript
import { RecordGqlOperationGqlRecordFields } from '@/object-record/graphql/types/RecordGqlOperationGqlRecordFields';
|
|
import { ObjectRecord } from '@/object-record/types/ObjectRecord';
|
|
import { isDefined } from 'twenty-shared';
|
|
import { FieldMetadataType } from '~/generated-metadata/graphql';
|
|
import { isUndefinedOrNull } from '~/utils/isUndefinedOrNull';
|
|
|
|
import { FieldMetadataItem } from '../types/FieldMetadataItem';
|
|
|
|
export const shouldFieldBeQueried = ({
|
|
field,
|
|
recordGqlFields,
|
|
}: {
|
|
field: Pick<FieldMetadataItem, 'name' | 'type'>;
|
|
objectRecord?: ObjectRecord;
|
|
recordGqlFields?: RecordGqlOperationGqlRecordFields;
|
|
}): any => {
|
|
if (
|
|
isUndefinedOrNull(recordGqlFields) &&
|
|
field.type !== FieldMetadataType.RELATION
|
|
) {
|
|
return true;
|
|
}
|
|
if (
|
|
isDefined(recordGqlFields) &&
|
|
isDefined(recordGqlFields[field.name]) &&
|
|
recordGqlFields[field.name] !== false
|
|
) {
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
};
|