Files
twenty/packages/twenty-chrome-extension/src/db/person.db.ts
Paul Rastoin 7fd89678b7 [CHORE] Avoid isDefined duplicated reference, move it to twenty-shared (#9967)
# 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
2025-02-01 12:10:10 +01:00

42 lines
1.1 KiB
TypeScript

import { isDefined } from 'twenty-shared';
import {
CreatePersonResponse,
FindPersonResponse,
PersonInput,
} from '~/db/types/person.types';
import { Person, PersonFilterInput } from '~/generated/graphql';
import { CREATE_PERSON } from '~/graphql/person/mutations';
import { FIND_PERSON } from '~/graphql/person/queries';
import { callMutation, callQuery } from '../utils/requestDb';
export const fetchPerson = async (
personFilterData: PersonFilterInput,
): Promise<Person | null> => {
const data = await callQuery<FindPersonResponse>(FIND_PERSON, {
filter: {
...personFilterData,
},
});
if (isDefined(data?.people.edges)) {
return data.people.edges.length > 0
? isDefined(data.people.edges[0].node)
? data.people.edges[0].node
: null
: null;
}
return null;
};
export const createPerson = async (
person: PersonInput,
): Promise<string | null> => {
const data = await callMutation<CreatePersonResponse>(CREATE_PERSON, {
input: person,
});
if (isDefined(data?.createPerson)) {
return data.createPerson.id;
}
return null;
};