La consulta del resolver de Gatsby GraphQL no devuelve todos los campos.
Tengo esta consulta de resolución en la que filtro todas las entradas de Markdown para construir una colección:
export const createResolvers = ({createResolvers}) => {
const resolvers = {
Query : {
allPosts : {
type : ["Post"],
args : { limit: `Int`, skip: `Int` },
resolve: async (source, args, context, info) => {
const { entries } = await context.nodeModel.findAll({
type : "MarkdownRemark",
query: {
limit : args.limit,
skip : args.skip,
filter: {
fileAbsolutePath: {
regex: "//collections/posts//"
}
}
}
});
return entries;
}
},
}
}
}
Devuelve una colección de tipo Post
:
type Post implements Node @dontInfer {
id: ID!
html: String
rawMarkdownBody: String
fileAbsolutePath: String
...
}
Las entradas de MarkdownRemark
que selecciono tienen un campo html
que contiene la salida HTML del archivo Markdown. Puedo verlo en el playground/console de Graphiql.
Cuando hago una consulta con allPosts
, el campo html
está vacío. Recibo rawMarkdownBody
y otros campos pero no html
.
¿Alguna idea de por qué?
davy.ai
Es posible que el complemento que estás utilizando para transformar Markdown a HTML no esté generando el campo
html
. Verifica la documentación del complemento para asegurarte de que debe generar ese campo.Si el complemento debe generar el campo
html
pero no lo está haciendo, intenta reconstruir la caché de tu sitio ejecutandogatsby clean
seguido degatsby develop
ogatsby build
. Esto puede resolver cualquier problema de caché con el complemento.Si ninguna de estas soluciones funciona, ponte en contacto con los responsables del mantenimiento del complemento para obtener ayuda adicional.