mirror of
https://github.com/mastermindzh/rickvanlieshout.com
synced 2025-07-27 04:32:32 +02:00
refactor(starter): upgrade to new version of gatsby
This commit is contained in:
32
internal/gatsby/queries/categories-query.ts
Normal file
32
internal/gatsby/queries/categories-query.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
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;
|
5
internal/gatsby/queries/index.ts
Normal file
5
internal/gatsby/queries/index.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
export { default as categoriesQuery } from "./categories-query";
|
||||
export { default as metadataQuery } from "./metadata-query";
|
||||
export { default as postsQuery } from "./posts-query";
|
||||
export { default as pagesQuery } from "./pages-query";
|
||||
export { default as tagsQuery } from "./tags-query";
|
23
internal/gatsby/queries/metadata-query.ts
Normal file
23
internal/gatsby/queries/metadata-query.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import { CreatePagesArgs } from "gatsby";
|
||||
|
||||
interface MetadataQueryResult {
|
||||
site: {
|
||||
siteMetadata: {
|
||||
postsLimit?: number;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
const metadataQuery = async (graphql: CreatePagesArgs["graphql"]) => {
|
||||
const result = await graphql<MetadataQueryResult>(`
|
||||
query SiteMetaData {
|
||||
site {
|
||||
postsLimit
|
||||
}
|
||||
}
|
||||
`);
|
||||
|
||||
return result?.data?.site.siteMetadata ?? {};
|
||||
};
|
||||
|
||||
export default metadataQuery;
|
32
internal/gatsby/queries/pages-query.ts
Normal file
32
internal/gatsby/queries/pages-query.ts
Normal file
@@ -0,0 +1,32 @@
|
||||
import { CreatePagesArgs } from "gatsby";
|
||||
|
||||
import * as types from "../types";
|
||||
|
||||
export interface PagesQueryResult {
|
||||
allMarkdownRemark: {
|
||||
edges?: Array<types.Edge>;
|
||||
};
|
||||
}
|
||||
|
||||
const pagesQuery = async (graphql: CreatePagesArgs["graphql"]) => {
|
||||
const result = await graphql<PagesQueryResult>(`
|
||||
{
|
||||
allMarkdownRemark(filter: { frontmatter: { draft: { ne: true } } }) {
|
||||
edges {
|
||||
node {
|
||||
frontmatter {
|
||||
template
|
||||
}
|
||||
fields {
|
||||
slug
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`);
|
||||
|
||||
return result?.data?.allMarkdownRemark?.edges ?? [];
|
||||
};
|
||||
|
||||
export default pagesQuery;
|
29
internal/gatsby/queries/posts-query.ts
Normal file
29
internal/gatsby/queries/posts-query.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
import { CreatePagesArgs } from "gatsby";
|
||||
|
||||
import * as types from "../types";
|
||||
|
||||
export interface PostsQueryResult {
|
||||
allMarkdownRemark: {
|
||||
edges?: Array<types.Edge>;
|
||||
};
|
||||
}
|
||||
|
||||
const postsQuery = async (graphql: CreatePagesArgs["graphql"]) => {
|
||||
const result = await graphql<PostsQueryResult>(`
|
||||
{
|
||||
allMarkdownRemark(filter: { frontmatter: { draft: { ne: true } } }) {
|
||||
edges {
|
||||
node {
|
||||
fields {
|
||||
slug
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
`);
|
||||
|
||||
return result?.data?.allMarkdownRemark;
|
||||
};
|
||||
|
||||
export default postsQuery;
|
31
internal/gatsby/queries/tags-query.ts
Normal file
31
internal/gatsby/queries/tags-query.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
import { CreatePagesArgs } from "gatsby";
|
||||
|
||||
interface TagsQueryResult {
|
||||
allMarkdownRemark: {
|
||||
group: Array<{
|
||||
fieldValue: string;
|
||||
totalCount: number;
|
||||
}>;
|
||||
};
|
||||
}
|
||||
|
||||
const tagsQuery = async (graphql: CreatePagesArgs["graphql"]) => {
|
||||
const result = await graphql<TagsQueryResult>(`
|
||||
{
|
||||
allMarkdownRemark(
|
||||
filter: {
|
||||
frontmatter: { template: { eq: "post" }, draft: { ne: true } }
|
||||
}
|
||||
) {
|
||||
group(field: frontmatter___tags) {
|
||||
fieldValue
|
||||
totalCount
|
||||
}
|
||||
}
|
||||
}
|
||||
`);
|
||||
|
||||
return result?.data?.allMarkdownRemark?.group || [];
|
||||
};
|
||||
|
||||
export default tagsQuery;
|
Reference in New Issue
Block a user