Я работаю над плагином gatsby для других интерфейсов gatsby, который извлекает данные Contentful с помощью graphql.
Я расширяю createSchemaCustomization
API, потому что я хотел бы добавить новое поле (скажем contentful_id
) для каждого узла.
Graphql позволяет обновлять запрос по шаблону посетителя, поэтому я прикрепляю поле contentful_id
к каждому узлу graphql, а в плагине gatsby-node.js
я добавлял этот преобразователь (setFieldsOnGraphQLNodeType
, но он устарел) в это поле, чтобы, если узел graphql не смог найти contentful_id
, он не взорвался.
exports.setFieldsOnGraphQLNodeType = () => {
return {
contentful_id: {
type: GraphQLString,
resolve: (source) => {
return source.contentful_id || '';
},
},
};
};
Кроме того, я не знаю, сколько узлов каждый интерфейс gatsby
Я хотел бы получить следующее
Для всех типов, сгенерированных в каждом интерфейсе gatsby, добавьте новое поле String с именем contentful_id