Renamed nullable utils into isDefined and isUndefinedOrNull (#4402)

* Renamed nullable utils into isDefined and isUndefinedOrNull
This commit is contained in:
Lucas Bordeau
2024-03-11 14:28:57 +01:00
committed by GitHub
parent 3f15cc5b7a
commit 581dfafe11
169 changed files with 469 additions and 493 deletions

View File

@ -9,7 +9,7 @@ import { AppPath } from '@/types/AppPath';
import { REACT_APP_SERVER_BASE_URL } from '~/config';
import { useIsMatchingLocation } from '~/hooks/useIsMatchingLocation';
import { useUpdateEffect } from '~/hooks/useUpdateEffect';
import { isNonNullable } from '~/utils/isNonNullable';
import { isDefined } from '~/utils/isDefined';
import { ApolloFactory } from '../services/apollo.factory';
@ -58,7 +58,7 @@ export const useApolloFactory = () => {
}, [setTokenPair, isDebugMode]);
useUpdateEffect(() => {
if (isNonNullable(apolloRef.current)) {
if (isDefined(apolloRef.current)) {
apolloRef.current.updateTokenPair(tokenPair);
}
}, [tokenPair]);

View File

@ -4,7 +4,7 @@ import { ReadFieldFunction } from '@apollo/client/cache/core/types/common';
import { CachedObjectRecordEdge } from '@/apollo/types/CachedObjectRecordEdge';
import { OrderBy } from '@/object-metadata/types/OrderBy';
import { OrderByField } from '@/object-metadata/types/OrderByField';
import { isNonNullable } from '~/utils/isNonNullable';
import { isDefined } from '~/utils/isDefined';
import { sortAsc, sortDesc, sortNullsFirst, sortNullsLast } from '~/utils/sort';
export const sortCachedObjectEdges = ({
@ -31,7 +31,7 @@ export const sortCachedObjectEdges = ({
orderByFieldName,
recordFromCache,
) ?? null;
const isSubFieldFilter = isNonNullable(fieldValue) && !!orderBySubFieldName;
const isSubFieldFilter = isDefined(fieldValue) && !!orderBySubFieldName;
if (!isSubFieldFilter) return fieldValue as string | number | null;

View File

@ -2,7 +2,7 @@ import { ApolloCache, StoreObject } from '@apollo/client';
import { isCachedObjectRecordConnection } from '@/apollo/optimistic-effect/utils/isCachedObjectRecordConnection';
import { CachedObjectRecordEdge } from '@/apollo/types/CachedObjectRecordEdge';
import { isNonNullable } from '~/utils/isNonNullable';
import { isDefined } from '~/utils/isDefined';
import { capitalize } from '~/utils/string/capitalize';
export const triggerAttachRelationOptimisticEffect = ({
@ -43,7 +43,7 @@ export const triggerAttachRelationOptimisticEffect = ({
__typename: sourceRecordTypeName,
});
if (!isNonNullable(sourceRecordReference)) {
if (!isDefined(sourceRecordReference)) {
return targetRecordFieldValue;
}

View File

@ -6,7 +6,7 @@ import { CachedObjectRecord } from '@/apollo/types/CachedObjectRecord';
import { CachedObjectRecordEdge } from '@/apollo/types/CachedObjectRecordEdge';
import { CachedObjectRecordQueryVariables } from '@/apollo/types/CachedObjectRecordQueryVariables';
import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
import { isNonNullable } from '~/utils/isNonNullable';
import { isDefined } from '~/utils/isDefined';
import { parseApolloStoreFieldName } from '~/utils/parseApolloStoreFieldName';
export const triggerDeleteRecordsOptimisticEffect = ({
@ -68,7 +68,7 @@ export const triggerDeleteRecordsOptimisticEffect = ({
// TODO: same as in update, should we trigger DELETE ?
if (
isNonNullable(rootQueryVariables?.first) &&
isDefined(rootQueryVariables?.first) &&
cachedEdges?.length === rootQueryVariables.first
) {
return DELETE;

View File

@ -9,7 +9,7 @@ import { CachedObjectRecordQueryVariables } from '@/apollo/types/CachedObjectRec
import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
import { getEdgeTypename } from '@/object-record/cache/utils/getEdgeTypename';
import { isRecordMatchingFilter } from '@/object-record/record-filter/utils/isRecordMatchingFilter';
import { isNonNullable } from '~/utils/isNonNullable';
import { isDefined } from '~/utils/isDefined';
import { parseApolloStoreFieldName } from '~/utils/parseApolloStoreFieldName';
// TODO: add extensive unit tests for this function
@ -71,7 +71,7 @@ export const triggerUpdateRecordOptimisticEffect = ({
const rootQueryOrderBy = rootQueryVariables?.orderBy;
const rootQueryLimit = rootQueryVariables?.first;
const shouldTryToMatchFilter = isNonNullable(rootQueryFilter);
const shouldTryToMatchFilter = isDefined(rootQueryFilter);
if (shouldTryToMatchFilter) {
const updatedRecordMatchesThisRootQueryFilter =
@ -101,7 +101,7 @@ export const triggerUpdateRecordOptimisticEffect = ({
if (updatedRecordShouldBeAddedToRootQueryEdges) {
const updatedRecordNodeReference = toReference(updatedRecord);
if (isNonNullable(updatedRecordNodeReference)) {
if (isDefined(updatedRecordNodeReference)) {
rootQueryNextEdges.push({
__typename: objectEdgeTypeName,
node: updatedRecordNodeReference,
@ -115,8 +115,7 @@ export const triggerUpdateRecordOptimisticEffect = ({
}
}
const rootQueryNextEdgesShouldBeSorted =
isNonNullable(rootQueryOrderBy);
const rootQueryNextEdgesShouldBeSorted = isDefined(rootQueryOrderBy);
if (
rootQueryNextEdgesShouldBeSorted &&
@ -129,7 +128,7 @@ export const triggerUpdateRecordOptimisticEffect = ({
});
}
const shouldLimitNextRootQueryEdges = isNonNullable(rootQueryLimit);
const shouldLimitNextRootQueryEdges = isDefined(rootQueryLimit);
// TODO: not sure that we should trigger a DELETE here, as it will trigger a network request
// Is it the responsibility of this optimistic effect function to delete a root query that will trigger a network request ?

View File

@ -12,7 +12,7 @@ import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem';
import { ObjectRecordConnection } from '@/object-record/types/ObjectRecordConnection';
import { FieldMetadataType } from '~/generated-metadata/graphql';
import { isDeeplyEqual } from '~/utils/isDeeplyEqual';
import { isNonNullable } from '~/utils/isNonNullable';
import { isDefined } from '~/utils/isDefined';
export const triggerUpdateRelationsOptimisticEffect = ({
cache,
@ -36,7 +36,7 @@ export const triggerUpdateRelationsOptimisticEffect = ({
}
const fieldDoesNotExist =
isNonNullable(updatedSourceRecord) &&
isDefined(updatedSourceRecord) &&
!(fieldMetadataItemOnSourceRecord.name in updatedSourceRecord);
if (fieldDoesNotExist) {
@ -87,7 +87,7 @@ export const triggerUpdateRelationsOptimisticEffect = ({
? currentFieldValueOnSourceRecord.edges.map(
({ node }) => node as CachedObjectRecord,
)
: [currentFieldValueOnSourceRecord].filter(isNonNullable);
: [currentFieldValueOnSourceRecord].filter(isDefined);
const updatedFieldValueOnSourceRecordIsARecordConnection =
isObjectRecordConnection(
@ -100,11 +100,10 @@ export const triggerUpdateRelationsOptimisticEffect = ({
? updatedFieldValueOnSourceRecord.edges.map(
({ node }) => node as CachedObjectRecord,
)
: [updatedFieldValueOnSourceRecord].filter(isNonNullable);
: [updatedFieldValueOnSourceRecord].filter(isDefined);
const shouldDetachSourceFromAllTargets =
isNonNullable(currentSourceRecord) &&
targetRecordsToDetachFrom.length > 0;
isDefined(currentSourceRecord) && targetRecordsToDetachFrom.length > 0;
if (shouldDetachSourceFromAllTargets) {
// TODO: see if we can de-hardcode this, put cascade delete in relation metadata item
@ -136,7 +135,7 @@ export const triggerUpdateRelationsOptimisticEffect = ({
}
const shouldAttachSourceToAllTargets =
isNonNullable(updatedSourceRecord) && targetRecordsToAttachTo.length > 0;
isDefined(updatedSourceRecord) && targetRecordsToAttachTo.length > 0;
if (shouldAttachSourceToAllTargets) {
targetRecordsToAttachTo.forEach((targetRecordToAttachTo) =>

View File

@ -14,7 +14,7 @@ import { createUploadLink } from 'apollo-upload-client';
import { renewToken } from '@/auth/services/AuthService';
import { AuthTokenPair } from '~/generated/graphql';
import { isNonNullable } from '~/utils/isNonNullable';
import { isDefined } from '~/utils/isDefined';
import { logDebug } from '~/utils/logDebug';
import { ApolloManager } from '../types/apolloManager.interface';
@ -78,7 +78,7 @@ export class ApolloFactory<TCacheShape> implements ApolloManager<TCacheShape> {
});
const errorLink = onError(
({ graphQLErrors, networkError, forward, operation }) => {
if (isNonNullable(graphQLErrors)) {
if (isDefined(graphQLErrors)) {
onErrorCb?.(graphQLErrors);
for (const graphQLError of graphQLErrors) {
@ -86,7 +86,7 @@ export class ApolloFactory<TCacheShape> implements ApolloManager<TCacheShape> {
return fromPromise(
renewToken(uri, this.tokenPair)
.then((tokens) => {
if (isNonNullable(tokens)) {
if (isDefined(tokens)) {
onTokenPairChange?.(tokens);
}
})
@ -101,7 +101,7 @@ export class ApolloFactory<TCacheShape> implements ApolloManager<TCacheShape> {
return fromPromise(
renewToken(uri, this.tokenPair)
.then((tokens) => {
if (isNonNullable(tokens)) {
if (isDefined(tokens)) {
onTokenPairChange?.(tokens);
}
})
@ -126,7 +126,7 @@ export class ApolloFactory<TCacheShape> implements ApolloManager<TCacheShape> {
}
}
if (isNonNullable(networkError)) {
if (isDefined(networkError)) {
if (isDebugMode === true) {
logDebug(`[Network error]: ${networkError}`);
}
@ -143,7 +143,7 @@ export class ApolloFactory<TCacheShape> implements ApolloManager<TCacheShape> {
isDebugMode ? logger : null,
retryLink,
httpLink,
].filter(isNonNullable),
].filter(isDefined),
);
};

View File

@ -1,6 +1,6 @@
import { ApolloLink, gql, Operation } from '@apollo/client';
import { isNonNullable } from '~/utils/isNonNullable';
import { isDefined } from '~/utils/isDefined';
import { logDebug } from '~/utils/logDebug';
import { logError } from '~/utils/logError';
@ -65,7 +65,7 @@ export const loggerLink = (getSchemaName: (operation: Operation) => string) =>
getGroup(!hasError)(...titleArgs);
if (isNonNullable(errors)) {
if (isDefined(errors)) {
errors.forEach((err: any) => {
logDebug(
`%c${err.message}`,
@ -83,10 +83,10 @@ export const loggerLink = (getSchemaName: (operation: Operation) => string) =>
logDebug('QUERY', query);
if (isNonNullable(result.data)) {
if (isDefined(result.data)) {
logDebug('RESULT', result.data);
}
if (isNonNullable(errors)) {
if (isDefined(errors)) {
logDebug('ERRORS', errors);
}
@ -96,7 +96,7 @@ export const loggerLink = (getSchemaName: (operation: Operation) => string) =>
logDebug(
`${operationType} ${schemaName}::${queryName} (in ${time} ms)`,
);
if (isNonNullable(errors)) {
if (isDefined(errors)) {
logError(errors);
}
}