## 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
This commit is contained in:
Charles Bochet
2024-04-29 23:33:23 +02:00
committed by GitHub
parent c946572fde
commit 6a14b1c6d6
187 changed files with 958 additions and 1482 deletions

View File

@ -1,9 +1,7 @@
import { ObjectRecordEdge } from '@/object-record/types/ObjectRecordEdge';
import { RecordGqlEdge } from '@/object-record/graphql/types/RecordGqlEdge';
export const filterUniqueRecordEdgesByCursor = <
RecordType extends { id: string },
>(
arrayToFilter: ObjectRecordEdge<RecordType>[],
export const filterUniqueRecordEdgesByCursor = (
arrayToFilter: RecordGqlEdge[],
) => {
const seenCursors = new Set();

View File

@ -2,20 +2,18 @@ import gql from 'graphql-tag';
import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
import { mapObjectMetadataToGraphQLQuery } from '@/object-metadata/utils/mapObjectMetadataToGraphQLQuery';
import { QueryFields } from '@/object-record/query-keys/types/QueryFields';
import { RecordGqlOperationGqlRecordFields } from '@/object-record/graphql/types/RecordGqlOperationGqlRecordFields';
import { capitalize } from '~/utils/string/capitalize';
export const generateFindManyRecordsQuery = ({
objectMetadataItem,
objectMetadataItems,
depth,
queryFields,
recordGqlFields,
computeReferences,
}: {
objectMetadataItem: ObjectMetadataItem;
objectMetadataItems: ObjectMetadataItem[];
queryFields?: QueryFields;
depth?: number;
recordGqlFields?: RecordGqlOperationGqlRecordFields;
computeReferences?: boolean;
}) => gql`
query FindMany${capitalize(
@ -32,8 +30,7 @@ query FindMany${capitalize(
node ${mapObjectMetadataToGraphQLQuery({
objectMetadataItems,
objectMetadataItem,
depth,
queryFields,
recordGqlFields,
computeReferences,
})}
cursor

View File

@ -1,14 +0,0 @@
import { ObjectRecordEdge } from '@/object-record/types/ObjectRecordEdge';
import { isDefined } from '~/utils/isDefined';
export const getChildRelationArray = ({
childRelation,
}: {
childRelation: any;
}) => {
if (isDefined(childRelation.edges) && Array.isArray(childRelation.edges)) {
return childRelation.edges.map((edge: ObjectRecordEdge) => edge.node);
} else {
return childRelation;
}
};

View File

@ -1,9 +1,9 @@
import { ObjectRecordQueryFilter } from '@/object-record/record-filter/types/ObjectRecordQueryFilter';
import { RecordGqlOperationFilter } from '@/object-record/graphql/types/RecordGqlOperationFilter';
import { isDefined } from '~/utils/isDefined';
export const makeAndFilterVariables = (
filters: (ObjectRecordQueryFilter | undefined)[],
): ObjectRecordQueryFilter | undefined => {
filters: (RecordGqlOperationFilter | undefined)[],
): RecordGqlOperationFilter | undefined => {
const definedFilters = filters.filter(isDefined);
if (!definedFilters.length) return undefined;

View File

@ -1,9 +1,9 @@
import { ObjectRecordQueryFilter } from '@/object-record/record-filter/types/ObjectRecordQueryFilter';
import { RecordGqlOperationFilter } from '@/object-record/graphql/types/RecordGqlOperationFilter';
import { isDefined } from '~/utils/isDefined';
export const makeOrFilterVariables = (
filters: (ObjectRecordQueryFilter | undefined)[],
): ObjectRecordQueryFilter | undefined => {
filters: (RecordGqlOperationFilter | undefined)[],
): RecordGqlOperationFilter | undefined => {
const definedFilters = filters.filter(isDefined);
if (!definedFilters.length) return undefined;

View File

@ -1,8 +0,0 @@
import { ObjectRecord } from '@/object-record/types/ObjectRecord';
import { ObjectRecordEdge } from '@/object-record/types/ObjectRecordEdge';
export const mapEdgeToObjectRecord = <T extends ObjectRecord>(
objectRecordEdge: ObjectRecordEdge<T>,
) => {
return objectRecordEdge.node as T;
};

View File

@ -8,18 +8,12 @@ import { isDefined } from '~/utils/isDefined';
export const prefillRecord = <T extends ObjectRecord>({
objectMetadataItem,
input,
depth = 1,
}: {
objectMetadataItem: ObjectMetadataItem;
input: Record<string, unknown>;
depth?: number;
}) => {
return Object.fromEntries(
objectMetadataItem.fields
.filter(
(fieldMetadataItem) =>
depth > 0 || fieldMetadataItem.type !== 'RELATION',
)
.map((fieldMetadataItem) => {
const inputValue = input[fieldMetadataItem.name];