Я использую GraphQL в проекте с клиентом Apollo, и когда я использую writeFragment
, мне нужно сопоставить форму объекта с определением фрагмента. Я делаю это вручную прямо сейчас, но это приводит к появлению большого количества ненужного кода и делает вещи fr agile на случай изменения определения фрагмента.
Я хотел бы создать пустой JavaScript объект из фрагмента gql
. например,
export const instructorFragment = gql`
fragment InstructorDetails on InstructorProfile {
id
user_id
picture_url
title
bio
tags {
...TagDetails
}
}
${tagFragment}
`;
export const tagFragment = gql`
fragment TagDetails on Tag {
id
label
}
`;
Должно сгенерироваться что-то вроде:
{
id: null,
user_id: null,
picture_url: null,
title: null,
bio: null,
tags: {
id: null,
label: null
}
}
Объекты фрагмента содержат достаточно информации для этого, но мне не удалось найти библиотеку, несмотря на много поисков в Google.
- Вариант 1 - использовать что-то, что уже существует
- Вариант 2 - написать мою собственную функцию
- Вариант 3:
Я использую GraphQL Code Generator для генерации определений TypeScript из моего кода, поэтому у меня есть такой код:
export type InstructorProfile = {
__typename?: 'InstructorProfile';
id: Scalars['ID'];
user_id?: Maybe<Scalars['ID']>;
picture_url?: Maybe<Scalars['String']>;
title?: Maybe<Scalars['String']>;
bio?: Maybe<Scalars['String']>;
tags?: Maybe<Array<Maybe<Tag>>>;
};
export type Tag = {
__typename?: 'Tag';
id: Scalars['ID'];
label: Scalars['String'];
};
Есть ли способ превратить это в то, что я хочу вместо этого?