rickvanlieshout.com/internal/gatsby/queries/categories-query.ts

33 lines
729 B
TypeScript
Raw Normal View History

import { CreatePagesArgs } from "gatsby";
interface CategoriesQueryResult {
allMarkdownRemark: {
group: Array<{
fieldValue: string;
totalCount: number;
}>;
};
}
const categoriesQuery = async (graphql: CreatePagesArgs["graphql"]) => {
const result = await graphql<CategoriesQueryResult>(`
{
allMarkdownRemark(
filter: {
frontmatter: { template: { eq: "post" }, draft: { ne: true } }
}
sort: { order: DESC, fields: [frontmatter___date] }
) {
group(field: frontmatter___category) {
fieldValue
totalCount
}
}
}
`);
return result?.data?.allMarkdownRemark?.group ?? [];
};
export default categoriesQuery;