Files
Mind-Expanding-Books/app/gatsby-node.js
2021-06-07 00:10:21 +05:30

50 lines
1.3 KiB
JavaScript

const fs = require('fs');
const categories = JSON.parse(fs.readFileSync('src/data/categories.json'));
const slugify = require('slugify');
exports.createPages = async function ({ actions, graphql }) {
const { createPage } = actions;
await Promise.all(
categories.map(async (category) => {
const data = await graphql(
`
query categoryBooksQuery($categoryName: String) {
allBooksJson(
filter: { category: { eq: $categoryName } }
sort: { fields: [rating], order: DESC }
) {
edges {
node {
id
title
url
rating
author
year
category
image_url
description
amazon_url
}
}
}
}
`,
{ categoryName: category.name },
);
console.log(category.name, data.data);
createPage({
path: slugify(category.name),
component: require.resolve('./src/templates/categoryTemplate.js'),
context: {
categoryName: category.name,
data: data.data,
image: category.emoji,
limit: null,
},
});
}),
);
};