## Query depth deprecation I'm deprecating depth parameter in our graphql query / cache tooling. They were obsolete since we introduce the possibility to provide RecordGqlFields ## Refactor combinedFindManyRecordHook The hook can now take an array of operationSignatures ## Fix tasks issues Fix optimistic rendering issue. Note that we still haven't handle optimisticEffect on creation properly
51 lines
1.3 KiB
TypeScript
51 lines
1.3 KiB
TypeScript
import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
|
|
import { mapFieldMetadataToGraphQLQuery } from '@/object-metadata/utils/mapFieldMetadataToGraphQLQuery';
|
|
import { shouldFieldBeQueried } from '@/object-metadata/utils/shouldFieldBeQueried';
|
|
|
|
export const mapObjectMetadataToGraphQLQuery = ({
|
|
objectMetadataItems,
|
|
objectMetadataItem,
|
|
recordGqlFields,
|
|
computeReferences = false,
|
|
isRootLevel = true,
|
|
}: {
|
|
objectMetadataItems: ObjectMetadataItem[];
|
|
objectMetadataItem: Pick<ObjectMetadataItem, 'nameSingular' | 'fields'>;
|
|
recordGqlFields?: Record<string, any>;
|
|
computeReferences?: boolean;
|
|
isRootLevel?: boolean;
|
|
}): any => {
|
|
const fieldsThatShouldBeQueried =
|
|
objectMetadataItem?.fields
|
|
.filter((field) => field.isActive)
|
|
.filter((field) =>
|
|
shouldFieldBeQueried({
|
|
field,
|
|
recordGqlFields,
|
|
}),
|
|
) ?? [];
|
|
|
|
if (!isRootLevel && computeReferences) {
|
|
return `{
|
|
__ref
|
|
}`;
|
|
}
|
|
|
|
return `{
|
|
__typename
|
|
${fieldsThatShouldBeQueried
|
|
.map((field) => {
|
|
return mapFieldMetadataToGraphQLQuery({
|
|
objectMetadataItems,
|
|
field,
|
|
relationrecordFields:
|
|
typeof recordGqlFields?.[field.name] === 'boolean'
|
|
? undefined
|
|
: recordGqlFields?.[field.name],
|
|
computeReferences,
|
|
});
|
|
})
|
|
.join('\n')}
|
|
}`;
|
|
};
|