From f078106875c2b444547163ad639fa9b6446dc8be Mon Sep 17 00:00:00 2001
From: Zack Spencer
Date: Wed, 22 Jan 2020 23:38:50 -0800
Subject: [PATCH] Add gatsby-plugin-graphql-codegen
---
gatsby-config.js | 6 +
gatsby-node.js | 4 +-
package.json | 1 +
src/components/Layout.tsx | 25 +-
src/pages/index.tsx | 26 +-
src/templates/{blog-post.js => blog-post.tsx} | 19 +-
src/templates/redirect.js | 7 -
src/templates/redirect.tsx | 15 +
tsconfig.json | 2 +-
types/graphql-type.ts | 2801 +++++++++++++++++
yarn.lock | 682 ++--
11 files changed, 3355 insertions(+), 233 deletions(-)
rename src/templates/{blog-post.js => blog-post.tsx} (63%)
delete mode 100644 src/templates/redirect.js
create mode 100644 src/templates/redirect.tsx
create mode 100644 types/graphql-type.ts
diff --git a/gatsby-config.js b/gatsby-config.js
index e9f992d8..74b12bcc 100644
--- a/gatsby-config.js
+++ b/gatsby-config.js
@@ -9,6 +9,12 @@ module.exports = {
plugins: [
`gatsby-plugin-typescript`,
`gatsby-plugin-tslint`,
+ {
+ resolve: `gatsby-plugin-graphql-codegen`,
+ options: {
+ fileName: `types/graphql-type.ts`,
+ },
+ },
`gatsby-plugin-emotion`,
{
resolve: `gatsby-plugin-typography`,
diff --git a/gatsby-node.js b/gatsby-node.js
index 9ea63e35..732e5d2e 100644
--- a/gatsby-node.js
+++ b/gatsby-node.js
@@ -40,7 +40,7 @@ exports.createPages = async ({ graphql, actions }) => {
result.data.allMdx.edges.forEach(({ node }) => {
createPage({
path: node.fields.slug,
- component: path.resolve(`./src/templates/blog-post.js`),
+ component: path.resolve(`./src/templates/blog-post.tsx`),
context: {
slug: node.fields.slug,
},
@@ -53,7 +53,7 @@ exports.createPages = async ({ graphql, actions }) => {
});
createPage({
path: node.frontmatter.legacyPath,
- component: path.resolve(`./src/templates/redirect.js`),
+ component: path.resolve(`./src/templates/redirect.tsx`),
context: {
slug: node.fields.slug,
},
diff --git a/package.json b/package.json
index 2474f427..8b0650bc 100644
--- a/package.json
+++ b/package.json
@@ -18,6 +18,7 @@
"gatsby-image": "^2.2.7",
"gatsby-plugin-catch-links": "^2.1.15",
"gatsby-plugin-emotion": "^4.1.13",
+ "gatsby-plugin-graphql-codegen": "^2.1.1",
"gatsby-plugin-manifest": "^2.2.4",
"gatsby-plugin-mdx": "^1.0.58",
"gatsby-plugin-nullish-coalescing-operator": "^1.0.1",
diff --git a/src/components/Layout.tsx b/src/components/Layout.tsx
index 60209c81..159355ad 100644
--- a/src/components/Layout.tsx
+++ b/src/components/Layout.tsx
@@ -6,24 +6,16 @@ import { rhythm } from '../utils/typography';
import Header from './Header';
+import { SiteTitleQuery } from '../../types/graphql-type';
+
// Let's guarantee Amplify is configured on every page
import Amplify from 'aws-amplify';
import config from '../aws-exports';
Amplify.configure(config);
-interface LayoutData {
- site: {
- siteMetadata: {
- title: string;
- description: string;
- author: string;
- };
- };
-}
-
export default function Layout({ children }: React.PropsWithChildren<{}>) {
- const data: LayoutData = useStaticQuery(graphql`
- query SiteTitleQuery {
+ const data: SiteTitleQuery = useStaticQuery(graphql`
+ query SiteTitle {
site {
siteMetadata {
title
@@ -33,17 +25,18 @@ export default function Layout({ children }: React.PropsWithChildren<{}>) {
}
}
`);
+ const { title, description, author } = data.site?.siteMetadata ?? {};
return (
<>
@@ -56,7 +49,7 @@ export default function Layout({ children }: React.PropsWithChildren<{}>) {
padding-top: ${rhythm(1.5)};
`}
>
-
+
{children}
>
diff --git a/src/pages/index.tsx b/src/pages/index.tsx
index 4f0f9215..b831986d 100644
--- a/src/pages/index.tsx
+++ b/src/pages/index.tsx
@@ -4,28 +4,14 @@ import { Link, graphql } from 'gatsby';
import Layout from '../components/Layout';
-interface Query {
- allMdx: {
- totalCount: number;
- edges: {
- node: {
- id: string;
- frontmatter: {
- title: string;
- };
- fields: {
- slug: string;
- };
- };
- }[];
- };
-}
+import { BlogIndexQuery } from '../../types/graphql-type';
interface Props {
- data: Query;
+ data: BlogIndexQuery;
}
export default function IndexPage({ data }: Props) {
+ const edges = data?.allMdx?.edges ?? [];
return (
A Website
@@ -35,9 +21,9 @@ export default function IndexPage({ data }: Props) {
riveting weblog entries.
- {data.allMdx.edges.map(({ node }) => (
+ {edges.map(({ node }) => (
-
- {node.frontmatter.title}
+ {node.frontmatter?.title}
))}
@@ -46,7 +32,7 @@ export default function IndexPage({ data }: Props) {
}
export const query = graphql`
- query {
+ query BlogIndex {
allMdx(sort: { fields: [frontmatter___date], order: DESC }) {
totalCount
edges {
diff --git a/src/templates/blog-post.js b/src/templates/blog-post.tsx
similarity index 63%
rename from src/templates/blog-post.js
rename to src/templates/blog-post.tsx
index c2729cd1..82373199 100644
--- a/src/templates/blog-post.js
+++ b/src/templates/blog-post.tsx
@@ -4,29 +4,34 @@ import { MDXRenderer } from 'gatsby-plugin-mdx';
import { css } from '@emotion/core';
import ordinal from 'ordinal';
import Layout from '../components/Layout';
+import { BlogPostQuery } from '../../types/graphql-type';
-export default function BlogPost({ data }) {
+interface Props {
+ data: BlogPostQuery;
+}
+
+export default function BlogPost({ data }: Props) {
const post = data.mdx;
- const fm = post.frontmatter;
- const date = `${fm.month} ${ordinal(parseInt(fm.day))}, ${fm.year}`;
+ const fm = post?.frontmatter;
+ const date = `${fm?.month} ${ordinal(parseInt(fm?.day))}, ${fm?.year}`;
return (
- {fm.title}
+ {fm?.title}
Posted {date} by Zack Spencer
- {fm.lead}
+ {fm?.lead}
- {post.body}
+ {post?.body ?? ''}
);
}
export const query = graphql`
- query($slug: String!) {
+ query BlogPost($slug: String!) {
mdx(fields: { slug: { eq: $slug } }) {
body
frontmatter {
diff --git a/src/templates/redirect.js b/src/templates/redirect.js
deleted file mode 100644
index 53210909..00000000
--- a/src/templates/redirect.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import { useEffect } from 'react';
-import { navigate } from 'gatsby';
-
-export default function Redirect({ pageContext }) {
- useEffect(() => navigate(pageContext.slug, { replace: true }));
- return null;
-}
diff --git a/src/templates/redirect.tsx b/src/templates/redirect.tsx
new file mode 100644
index 00000000..b8f30b9c
--- /dev/null
+++ b/src/templates/redirect.tsx
@@ -0,0 +1,15 @@
+import { useEffect } from 'react';
+import { navigate } from 'gatsby';
+
+interface Props {
+ pageContext: {
+ slug: string;
+ };
+}
+
+export default function Redirect({ pageContext }: Props) {
+ useEffect(() => {
+ navigate(pageContext.slug, { replace: true });
+ });
+ return null;
+}
diff --git a/tsconfig.json b/tsconfig.json
index 50bfbd7c..3bf82a16 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -69,5 +69,5 @@
/* Advanced Options */
"forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */
},
- "include": ["./src/**/*"]
+ "include": ["./src/**/*", "./types/**/*"]
}
diff --git a/types/graphql-type.ts b/types/graphql-type.ts
new file mode 100644
index 00000000..02e36ffe
--- /dev/null
+++ b/types/graphql-type.ts
@@ -0,0 +1,2801 @@
+export type Maybe = T | null;
+/** All built-in and custom scalars, mapped to their actual values */
+export type Scalars = {
+ ID: string,
+ String: string,
+ Boolean: boolean,
+ Int: number,
+ Float: number,
+ /**
+ * A date string, such as 2007-12-03, compliant with the ISO 8601 standard for
+ * representation of dates and times using the Gregorian calendar.
+ */
+ Date: any,
+ /** The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf). */
+ JSON: any,
+};
+
+
+
+
+
+
+
+
+
+
+
+export type BooleanQueryOperatorInput = {
+ eq?: Maybe,
+ ne?: Maybe,
+ in?: Maybe>>,
+ nin?: Maybe>>,
+};
+
+
+export type DateQueryOperatorInput = {
+ eq?: Maybe,
+ ne?: Maybe,
+ gt?: Maybe,
+ gte?: Maybe,
+ lt?: Maybe,
+ lte?: Maybe,
+ in?: Maybe>>,
+ nin?: Maybe>>,
+};
+
+export type Directory = Node & {
+ sourceInstanceName: Scalars['String'],
+ absolutePath: Scalars['String'],
+ relativePath: Scalars['String'],
+ extension: Scalars['String'],
+ size: Scalars['Int'],
+ prettySize: Scalars['String'],
+ modifiedTime: Scalars['Date'],
+ accessTime: Scalars['Date'],
+ changeTime: Scalars['Date'],
+ birthTime: Scalars['Date'],
+ root: Scalars['String'],
+ dir: Scalars['String'],
+ base: Scalars['String'],
+ ext: Scalars['String'],
+ name: Scalars['String'],
+ relativeDirectory: Scalars['String'],
+ dev: Scalars['Int'],
+ mode: Scalars['Int'],
+ nlink: Scalars['Int'],
+ uid: Scalars['Int'],
+ gid: Scalars['Int'],
+ rdev: Scalars['Int'],
+ ino: Scalars['Float'],
+ atimeMs: Scalars['Float'],
+ mtimeMs: Scalars['Float'],
+ ctimeMs: Scalars['Float'],
+ atime: Scalars['Date'],
+ mtime: Scalars['Date'],
+ ctime: Scalars['Date'],
+ birthtime?: Maybe,
+ birthtimeMs?: Maybe,
+ blksize?: Maybe,
+ blocks?: Maybe,
+ id: Scalars['ID'],
+ parent?: Maybe,
+ children: Array,
+ internal: Internal,
+};
+
+
+export type DirectoryModifiedTimeArgs = {
+ formatString?: Maybe,
+ fromNow?: Maybe,
+ difference?: Maybe,
+ locale?: Maybe
+};
+
+
+export type DirectoryAccessTimeArgs = {
+ formatString?: Maybe,
+ fromNow?: Maybe,
+ difference?: Maybe,
+ locale?: Maybe
+};
+
+
+export type DirectoryChangeTimeArgs = {
+ formatString?: Maybe,
+ fromNow?: Maybe,
+ difference?: Maybe,
+ locale?: Maybe
+};
+
+
+export type DirectoryBirthTimeArgs = {
+ formatString?: Maybe,
+ fromNow?: Maybe,
+ difference?: Maybe,
+ locale?: Maybe
+};
+
+
+export type DirectoryAtimeArgs = {
+ formatString?: Maybe,
+ fromNow?: Maybe,
+ difference?: Maybe,
+ locale?: Maybe
+};
+
+
+export type DirectoryMtimeArgs = {
+ formatString?: Maybe,
+ fromNow?: Maybe,
+ difference?: Maybe,
+ locale?: Maybe
+};
+
+
+export type DirectoryCtimeArgs = {
+ formatString?: Maybe,
+ fromNow?: Maybe,
+ difference?: Maybe,
+ locale?: Maybe
+};
+
+export type DirectoryConnection = {
+ totalCount: Scalars['Int'],
+ edges: Array,
+ nodes: Array,
+ pageInfo: PageInfo,
+ distinct: Array,
+ group: Array,
+};
+
+
+export type DirectoryConnectionDistinctArgs = {
+ field: DirectoryFieldsEnum
+};
+
+
+export type DirectoryConnectionGroupArgs = {
+ skip?: Maybe,
+ limit?: Maybe,
+ field: DirectoryFieldsEnum
+};
+
+export type DirectoryEdge = {
+ next?: Maybe,
+ node: Directory,
+ previous?: Maybe,
+};
+
+export type DirectoryFieldsEnum =
+ 'sourceInstanceName' |
+ 'absolutePath' |
+ 'relativePath' |
+ 'extension' |
+ 'size' |
+ 'prettySize' |
+ 'modifiedTime' |
+ 'accessTime' |
+ 'changeTime' |
+ 'birthTime' |
+ 'root' |
+ 'dir' |
+ 'base' |
+ 'ext' |
+ 'name' |
+ 'relativeDirectory' |
+ 'dev' |
+ 'mode' |
+ 'nlink' |
+ 'uid' |
+ 'gid' |
+ 'rdev' |
+ 'ino' |
+ 'atimeMs' |
+ 'mtimeMs' |
+ 'ctimeMs' |
+ 'atime' |
+ 'mtime' |
+ 'ctime' |
+ 'birthtime' |
+ 'birthtimeMs' |
+ 'blksize' |
+ 'blocks' |
+ 'id' |
+ 'parent___id' |
+ 'parent___parent___id' |
+ 'parent___parent___parent___id' |
+ 'parent___parent___parent___children' |
+ 'parent___parent___children' |
+ 'parent___parent___children___id' |
+ 'parent___parent___children___children' |
+ 'parent___parent___internal___content' |
+ 'parent___parent___internal___contentDigest' |
+ 'parent___parent___internal___description' |
+ 'parent___parent___internal___fieldOwners' |
+ 'parent___parent___internal___ignoreType' |
+ 'parent___parent___internal___mediaType' |
+ 'parent___parent___internal___owner' |
+ 'parent___parent___internal___type' |
+ 'parent___children' |
+ 'parent___children___id' |
+ 'parent___children___parent___id' |
+ 'parent___children___parent___children' |
+ 'parent___children___children' |
+ 'parent___children___children___id' |
+ 'parent___children___children___children' |
+ 'parent___children___internal___content' |
+ 'parent___children___internal___contentDigest' |
+ 'parent___children___internal___description' |
+ 'parent___children___internal___fieldOwners' |
+ 'parent___children___internal___ignoreType' |
+ 'parent___children___internal___mediaType' |
+ 'parent___children___internal___owner' |
+ 'parent___children___internal___type' |
+ 'parent___internal___content' |
+ 'parent___internal___contentDigest' |
+ 'parent___internal___description' |
+ 'parent___internal___fieldOwners' |
+ 'parent___internal___ignoreType' |
+ 'parent___internal___mediaType' |
+ 'parent___internal___owner' |
+ 'parent___internal___type' |
+ 'children' |
+ 'children___id' |
+ 'children___parent___id' |
+ 'children___parent___parent___id' |
+ 'children___parent___parent___children' |
+ 'children___parent___children' |
+ 'children___parent___children___id' |
+ 'children___parent___children___children' |
+ 'children___parent___internal___content' |
+ 'children___parent___internal___contentDigest' |
+ 'children___parent___internal___description' |
+ 'children___parent___internal___fieldOwners' |
+ 'children___parent___internal___ignoreType' |
+ 'children___parent___internal___mediaType' |
+ 'children___parent___internal___owner' |
+ 'children___parent___internal___type' |
+ 'children___children' |
+ 'children___children___id' |
+ 'children___children___parent___id' |
+ 'children___children___parent___children' |
+ 'children___children___children' |
+ 'children___children___children___id' |
+ 'children___children___children___children' |
+ 'children___children___internal___content' |
+ 'children___children___internal___contentDigest' |
+ 'children___children___internal___description' |
+ 'children___children___internal___fieldOwners' |
+ 'children___children___internal___ignoreType' |
+ 'children___children___internal___mediaType' |
+ 'children___children___internal___owner' |
+ 'children___children___internal___type' |
+ 'children___internal___content' |
+ 'children___internal___contentDigest' |
+ 'children___internal___description' |
+ 'children___internal___fieldOwners' |
+ 'children___internal___ignoreType' |
+ 'children___internal___mediaType' |
+ 'children___internal___owner' |
+ 'children___internal___type' |
+ 'internal___content' |
+ 'internal___contentDigest' |
+ 'internal___description' |
+ 'internal___fieldOwners' |
+ 'internal___ignoreType' |
+ 'internal___mediaType' |
+ 'internal___owner' |
+ 'internal___type';
+
+export type DirectoryFilterInput = {
+ sourceInstanceName?: Maybe,
+ absolutePath?: Maybe,
+ relativePath?: Maybe,
+ extension?: Maybe,
+ size?: Maybe,
+ prettySize?: Maybe,
+ modifiedTime?: Maybe,
+ accessTime?: Maybe,
+ changeTime?: Maybe,
+ birthTime?: Maybe,
+ root?: Maybe,
+ dir?: Maybe,
+ base?: Maybe,
+ ext?: Maybe,
+ name?: Maybe,
+ relativeDirectory?: Maybe,
+ dev?: Maybe,
+ mode?: Maybe,
+ nlink?: Maybe,
+ uid?: Maybe,
+ gid?: Maybe,
+ rdev?: Maybe,
+ ino?: Maybe,
+ atimeMs?: Maybe,
+ mtimeMs?: Maybe,
+ ctimeMs?: Maybe,
+ atime?: Maybe,
+ mtime?: Maybe,
+ ctime?: Maybe,
+ birthtime?: Maybe,
+ birthtimeMs?: Maybe,
+ blksize?: Maybe,
+ blocks?: Maybe,
+ id?: Maybe,
+ parent?: Maybe,
+ children?: Maybe,
+ internal?: Maybe,
+};
+
+export type DirectoryGroupConnection = {
+ totalCount: Scalars['Int'],
+ edges: Array,
+ nodes: Array,
+ pageInfo: PageInfo,
+ field: Scalars['String'],
+ fieldValue?: Maybe,
+};
+
+export type DirectorySortInput = {
+ fields?: Maybe>>,
+ order?: Maybe>>,
+};
+
+export type DuotoneGradient = {
+ highlight: Scalars['String'],
+ shadow: Scalars['String'],
+ opacity?: Maybe,
+};
+
+export type File = Node & {
+ sourceInstanceName: Scalars['String'],
+ absolutePath: Scalars['String'],
+ relativePath: Scalars['String'],
+ extension: Scalars['String'],
+ size: Scalars['Int'],
+ prettySize: Scalars['String'],
+ modifiedTime: Scalars['Date'],
+ accessTime: Scalars['Date'],
+ changeTime: Scalars['Date'],
+ birthTime: Scalars['Date'],
+ root: Scalars['String'],
+ dir: Scalars['String'],
+ base: Scalars['String'],
+ ext: Scalars['String'],
+ name: Scalars['String'],
+ relativeDirectory: Scalars['String'],
+ dev: Scalars['Int'],
+ mode: Scalars['Int'],
+ nlink: Scalars['Int'],
+ uid: Scalars['Int'],
+ gid: Scalars['Int'],
+ rdev: Scalars['Int'],
+ ino: Scalars['Float'],
+ atimeMs: Scalars['Float'],
+ mtimeMs: Scalars['Float'],
+ ctimeMs: Scalars['Float'],
+ atime: Scalars['Date'],
+ mtime: Scalars['Date'],
+ ctime: Scalars['Date'],
+ birthtime?: Maybe,
+ birthtimeMs?: Maybe,
+ blksize?: Maybe,
+ blocks?: Maybe,
+ /** Copy file to static directory and return public url to it */
+ publicURL?: Maybe,
+ childImageSharp?: Maybe,
+ id: Scalars['ID'],
+ parent?: Maybe,
+ children: Array,
+ internal: Internal,
+ childMdx?: Maybe,
+};
+
+
+export type FileModifiedTimeArgs = {
+ formatString?: Maybe,
+ fromNow?: Maybe,
+ difference?: Maybe,
+ locale?: Maybe
+};
+
+
+export type FileAccessTimeArgs = {
+ formatString?: Maybe,
+ fromNow?: Maybe,
+ difference?: Maybe,
+ locale?: Maybe
+};
+
+
+export type FileChangeTimeArgs = {
+ formatString?: Maybe,
+ fromNow?: Maybe,
+ difference?: Maybe,
+ locale?: Maybe
+};
+
+
+export type FileBirthTimeArgs = {
+ formatString?: Maybe,
+ fromNow?: Maybe,
+ difference?: Maybe,
+ locale?: Maybe
+};
+
+
+export type FileAtimeArgs = {
+ formatString?: Maybe,
+ fromNow?: Maybe,
+ difference?: Maybe,
+ locale?: Maybe
+};
+
+
+export type FileMtimeArgs = {
+ formatString?: Maybe,
+ fromNow?: Maybe,
+ difference?: Maybe,
+ locale?: Maybe
+};
+
+
+export type FileCtimeArgs = {
+ formatString?: Maybe,
+ fromNow?: Maybe,
+ difference?: Maybe,
+ locale?: Maybe
+};
+
+export type FileConnection = {
+ totalCount: Scalars['Int'],
+ edges: Array,
+ nodes: Array,
+ pageInfo: PageInfo,
+ distinct: Array,
+ group: Array,
+};
+
+
+export type FileConnectionDistinctArgs = {
+ field: FileFieldsEnum
+};
+
+
+export type FileConnectionGroupArgs = {
+ skip?: Maybe,
+ limit?: Maybe,
+ field: FileFieldsEnum
+};
+
+export type FileEdge = {
+ next?: Maybe,
+ node: File,
+ previous?: Maybe,
+};
+
+export type FileFieldsEnum =
+ 'sourceInstanceName' |
+ 'absolutePath' |
+ 'relativePath' |
+ 'extension' |
+ 'size' |
+ 'prettySize' |
+ 'modifiedTime' |
+ 'accessTime' |
+ 'changeTime' |
+ 'birthTime' |
+ 'root' |
+ 'dir' |
+ 'base' |
+ 'ext' |
+ 'name' |
+ 'relativeDirectory' |
+ 'dev' |
+ 'mode' |
+ 'nlink' |
+ 'uid' |
+ 'gid' |
+ 'rdev' |
+ 'ino' |
+ 'atimeMs' |
+ 'mtimeMs' |
+ 'ctimeMs' |
+ 'atime' |
+ 'mtime' |
+ 'ctime' |
+ 'birthtime' |
+ 'birthtimeMs' |
+ 'blksize' |
+ 'blocks' |
+ 'publicURL' |
+ 'childImageSharp___fixed___base64' |
+ 'childImageSharp___fixed___tracedSVG' |
+ 'childImageSharp___fixed___aspectRatio' |
+ 'childImageSharp___fixed___width' |
+ 'childImageSharp___fixed___height' |
+ 'childImageSharp___fixed___src' |
+ 'childImageSharp___fixed___srcSet' |
+ 'childImageSharp___fixed___srcWebp' |
+ 'childImageSharp___fixed___srcSetWebp' |
+ 'childImageSharp___fixed___originalName' |
+ 'childImageSharp___resolutions___base64' |
+ 'childImageSharp___resolutions___tracedSVG' |
+ 'childImageSharp___resolutions___aspectRatio' |
+ 'childImageSharp___resolutions___width' |
+ 'childImageSharp___resolutions___height' |
+ 'childImageSharp___resolutions___src' |
+ 'childImageSharp___resolutions___srcSet' |
+ 'childImageSharp___resolutions___srcWebp' |
+ 'childImageSharp___resolutions___srcSetWebp' |
+ 'childImageSharp___resolutions___originalName' |
+ 'childImageSharp___fluid___base64' |
+ 'childImageSharp___fluid___tracedSVG' |
+ 'childImageSharp___fluid___aspectRatio' |
+ 'childImageSharp___fluid___src' |
+ 'childImageSharp___fluid___srcSet' |
+ 'childImageSharp___fluid___srcWebp' |
+ 'childImageSharp___fluid___srcSetWebp' |
+ 'childImageSharp___fluid___sizes' |
+ 'childImageSharp___fluid___originalImg' |
+ 'childImageSharp___fluid___originalName' |
+ 'childImageSharp___fluid___presentationWidth' |
+ 'childImageSharp___fluid___presentationHeight' |
+ 'childImageSharp___sizes___base64' |
+ 'childImageSharp___sizes___tracedSVG' |
+ 'childImageSharp___sizes___aspectRatio' |
+ 'childImageSharp___sizes___src' |
+ 'childImageSharp___sizes___srcSet' |
+ 'childImageSharp___sizes___srcWebp' |
+ 'childImageSharp___sizes___srcSetWebp' |
+ 'childImageSharp___sizes___sizes' |
+ 'childImageSharp___sizes___originalImg' |
+ 'childImageSharp___sizes___originalName' |
+ 'childImageSharp___sizes___presentationWidth' |
+ 'childImageSharp___sizes___presentationHeight' |
+ 'childImageSharp___original___width' |
+ 'childImageSharp___original___height' |
+ 'childImageSharp___original___src' |
+ 'childImageSharp___resize___src' |
+ 'childImageSharp___resize___tracedSVG' |
+ 'childImageSharp___resize___width' |
+ 'childImageSharp___resize___height' |
+ 'childImageSharp___resize___aspectRatio' |
+ 'childImageSharp___resize___originalName' |
+ 'childImageSharp___id' |
+ 'childImageSharp___parent___id' |
+ 'childImageSharp___parent___parent___id' |
+ 'childImageSharp___parent___parent___children' |
+ 'childImageSharp___parent___children' |
+ 'childImageSharp___parent___children___id' |
+ 'childImageSharp___parent___children___children' |
+ 'childImageSharp___parent___internal___content' |
+ 'childImageSharp___parent___internal___contentDigest' |
+ 'childImageSharp___parent___internal___description' |
+ 'childImageSharp___parent___internal___fieldOwners' |
+ 'childImageSharp___parent___internal___ignoreType' |
+ 'childImageSharp___parent___internal___mediaType' |
+ 'childImageSharp___parent___internal___owner' |
+ 'childImageSharp___parent___internal___type' |
+ 'childImageSharp___children' |
+ 'childImageSharp___children___id' |
+ 'childImageSharp___children___parent___id' |
+ 'childImageSharp___children___parent___children' |
+ 'childImageSharp___children___children' |
+ 'childImageSharp___children___children___id' |
+ 'childImageSharp___children___children___children' |
+ 'childImageSharp___children___internal___content' |
+ 'childImageSharp___children___internal___contentDigest' |
+ 'childImageSharp___children___internal___description' |
+ 'childImageSharp___children___internal___fieldOwners' |
+ 'childImageSharp___children___internal___ignoreType' |
+ 'childImageSharp___children___internal___mediaType' |
+ 'childImageSharp___children___internal___owner' |
+ 'childImageSharp___children___internal___type' |
+ 'childImageSharp___internal___content' |
+ 'childImageSharp___internal___contentDigest' |
+ 'childImageSharp___internal___description' |
+ 'childImageSharp___internal___fieldOwners' |
+ 'childImageSharp___internal___ignoreType' |
+ 'childImageSharp___internal___mediaType' |
+ 'childImageSharp___internal___owner' |
+ 'childImageSharp___internal___type' |
+ 'id' |
+ 'parent___id' |
+ 'parent___parent___id' |
+ 'parent___parent___parent___id' |
+ 'parent___parent___parent___children' |
+ 'parent___parent___children' |
+ 'parent___parent___children___id' |
+ 'parent___parent___children___children' |
+ 'parent___parent___internal___content' |
+ 'parent___parent___internal___contentDigest' |
+ 'parent___parent___internal___description' |
+ 'parent___parent___internal___fieldOwners' |
+ 'parent___parent___internal___ignoreType' |
+ 'parent___parent___internal___mediaType' |
+ 'parent___parent___internal___owner' |
+ 'parent___parent___internal___type' |
+ 'parent___children' |
+ 'parent___children___id' |
+ 'parent___children___parent___id' |
+ 'parent___children___parent___children' |
+ 'parent___children___children' |
+ 'parent___children___children___id' |
+ 'parent___children___children___children' |
+ 'parent___children___internal___content' |
+ 'parent___children___internal___contentDigest' |
+ 'parent___children___internal___description' |
+ 'parent___children___internal___fieldOwners' |
+ 'parent___children___internal___ignoreType' |
+ 'parent___children___internal___mediaType' |
+ 'parent___children___internal___owner' |
+ 'parent___children___internal___type' |
+ 'parent___internal___content' |
+ 'parent___internal___contentDigest' |
+ 'parent___internal___description' |
+ 'parent___internal___fieldOwners' |
+ 'parent___internal___ignoreType' |
+ 'parent___internal___mediaType' |
+ 'parent___internal___owner' |
+ 'parent___internal___type' |
+ 'children' |
+ 'children___id' |
+ 'children___parent___id' |
+ 'children___parent___parent___id' |
+ 'children___parent___parent___children' |
+ 'children___parent___children' |
+ 'children___parent___children___id' |
+ 'children___parent___children___children' |
+ 'children___parent___internal___content' |
+ 'children___parent___internal___contentDigest' |
+ 'children___parent___internal___description' |
+ 'children___parent___internal___fieldOwners' |
+ 'children___parent___internal___ignoreType' |
+ 'children___parent___internal___mediaType' |
+ 'children___parent___internal___owner' |
+ 'children___parent___internal___type' |
+ 'children___children' |
+ 'children___children___id' |
+ 'children___children___parent___id' |
+ 'children___children___parent___children' |
+ 'children___children___children' |
+ 'children___children___children___id' |
+ 'children___children___children___children' |
+ 'children___children___internal___content' |
+ 'children___children___internal___contentDigest' |
+ 'children___children___internal___description' |
+ 'children___children___internal___fieldOwners' |
+ 'children___children___internal___ignoreType' |
+ 'children___children___internal___mediaType' |
+ 'children___children___internal___owner' |
+ 'children___children___internal___type' |
+ 'children___internal___content' |
+ 'children___internal___contentDigest' |
+ 'children___internal___description' |
+ 'children___internal___fieldOwners' |
+ 'children___internal___ignoreType' |
+ 'children___internal___mediaType' |
+ 'children___internal___owner' |
+ 'children___internal___type' |
+ 'internal___content' |
+ 'internal___contentDigest' |
+ 'internal___description' |
+ 'internal___fieldOwners' |
+ 'internal___ignoreType' |
+ 'internal___mediaType' |
+ 'internal___owner' |
+ 'internal___type' |
+ 'childMdx___rawBody' |
+ 'childMdx___fileAbsolutePath' |
+ 'childMdx___frontmatter___title' |
+ 'childMdx___frontmatter___date' |
+ 'childMdx___frontmatter___lead' |
+ 'childMdx___frontmatter___legacyPath' |
+ 'childMdx___body' |
+ 'childMdx___excerpt' |
+ 'childMdx___headings' |
+ 'childMdx___headings___value' |
+ 'childMdx___headings___depth' |
+ 'childMdx___html' |
+ 'childMdx___mdxAST' |
+ 'childMdx___tableOfContents' |
+ 'childMdx___timeToRead' |
+ 'childMdx___wordCount___paragraphs' |
+ 'childMdx___wordCount___sentences' |
+ 'childMdx___wordCount___words' |
+ 'childMdx___fields___slug' |
+ 'childMdx___id' |
+ 'childMdx___parent___id' |
+ 'childMdx___parent___parent___id' |
+ 'childMdx___parent___parent___children' |
+ 'childMdx___parent___children' |
+ 'childMdx___parent___children___id' |
+ 'childMdx___parent___children___children' |
+ 'childMdx___parent___internal___content' |
+ 'childMdx___parent___internal___contentDigest' |
+ 'childMdx___parent___internal___description' |
+ 'childMdx___parent___internal___fieldOwners' |
+ 'childMdx___parent___internal___ignoreType' |
+ 'childMdx___parent___internal___mediaType' |
+ 'childMdx___parent___internal___owner' |
+ 'childMdx___parent___internal___type' |
+ 'childMdx___children' |
+ 'childMdx___children___id' |
+ 'childMdx___children___parent___id' |
+ 'childMdx___children___parent___children' |
+ 'childMdx___children___children' |
+ 'childMdx___children___children___id' |
+ 'childMdx___children___children___children' |
+ 'childMdx___children___internal___content' |
+ 'childMdx___children___internal___contentDigest' |
+ 'childMdx___children___internal___description' |
+ 'childMdx___children___internal___fieldOwners' |
+ 'childMdx___children___internal___ignoreType' |
+ 'childMdx___children___internal___mediaType' |
+ 'childMdx___children___internal___owner' |
+ 'childMdx___children___internal___type' |
+ 'childMdx___internal___content' |
+ 'childMdx___internal___contentDigest' |
+ 'childMdx___internal___description' |
+ 'childMdx___internal___fieldOwners' |
+ 'childMdx___internal___ignoreType' |
+ 'childMdx___internal___mediaType' |
+ 'childMdx___internal___owner' |
+ 'childMdx___internal___type';
+
+export type FileFilterInput = {
+ sourceInstanceName?: Maybe,
+ absolutePath?: Maybe,
+ relativePath?: Maybe,
+ extension?: Maybe,
+ size?: Maybe,
+ prettySize?: Maybe,
+ modifiedTime?: Maybe,
+ accessTime?: Maybe,
+ changeTime?: Maybe,
+ birthTime?: Maybe,
+ root?: Maybe,
+ dir?: Maybe,
+ base?: Maybe,
+ ext?: Maybe,
+ name?: Maybe,
+ relativeDirectory?: Maybe,
+ dev?: Maybe,
+ mode?: Maybe,
+ nlink?: Maybe,
+ uid?: Maybe,
+ gid?: Maybe,
+ rdev?: Maybe,
+ ino?: Maybe,
+ atimeMs?: Maybe,
+ mtimeMs?: Maybe,
+ ctimeMs?: Maybe,
+ atime?: Maybe,
+ mtime?: Maybe,
+ ctime?: Maybe,
+ birthtime?: Maybe,
+ birthtimeMs?: Maybe,
+ blksize?: Maybe,
+ blocks?: Maybe,
+ publicURL?: Maybe,
+ childImageSharp?: Maybe,
+ id?: Maybe,
+ parent?: Maybe,
+ children?: Maybe,
+ internal?: Maybe,
+ childMdx?: Maybe,
+};
+
+export type FileGroupConnection = {
+ totalCount: Scalars['Int'],
+ edges: Array,
+ nodes: Array,
+ pageInfo: PageInfo,
+ field: Scalars['String'],
+ fieldValue?: Maybe,
+};
+
+export type FileSortInput = {
+ fields?: Maybe>>,
+ order?: Maybe>>,
+};
+
+export type FloatQueryOperatorInput = {
+ eq?: Maybe,
+ ne?: Maybe,
+ gt?: Maybe,
+ gte?: Maybe,
+ lt?: Maybe,
+ lte?: Maybe,
+ in?: Maybe>>,
+ nin?: Maybe>>,
+};
+
+export type HeadingsMdx =
+ 'h1' |
+ 'h2' |
+ 'h3' |
+ 'h4' |
+ 'h5' |
+ 'h6';
+
+export type ImageCropFocus =
+ 'CENTER' |
+ 'NORTH' |
+ 'NORTHEAST' |
+ 'EAST' |
+ 'SOUTHEAST' |
+ 'SOUTH' |
+ 'SOUTHWEST' |
+ 'WEST' |
+ 'NORTHWEST' |
+ 'ENTROPY' |
+ 'ATTENTION';
+
+export type ImageFit =
+ 'COVER' |
+ 'CONTAIN' |
+ 'FILL';
+
+export type ImageFormat =
+ 'NO_CHANGE' |
+ 'JPG' |
+ 'PNG' |
+ 'WEBP';
+
+export type ImageSharp = Node & {
+ fixed?: Maybe,
+ resolutions?: Maybe,
+ fluid?: Maybe,
+ sizes?: Maybe,
+ original?: Maybe,
+ resize?: Maybe,
+ id: Scalars['ID'],
+ parent?: Maybe,
+ children: Array,
+ internal: Internal,
+};
+
+
+export type ImageSharpFixedArgs = {
+ width?: Maybe,
+ height?: Maybe,
+ base64Width?: Maybe,
+ jpegProgressive?: Maybe,
+ pngCompressionSpeed?: Maybe,
+ grayscale?: Maybe,
+ duotone?: Maybe,
+ traceSVG?: Maybe,
+ quality?: Maybe,
+ jpegQuality?: Maybe,
+ pngQuality?: Maybe,
+ webpQuality?: Maybe,
+ toFormat?: Maybe,
+ toFormatBase64?: Maybe,
+ cropFocus?: Maybe,
+ fit?: Maybe,
+ background?: Maybe,
+ rotate?: Maybe,
+ trim?: Maybe
+};
+
+
+export type ImageSharpResolutionsArgs = {
+ width?: Maybe,
+ height?: Maybe,
+ base64Width?: Maybe,
+ jpegProgressive?: Maybe,
+ pngCompressionSpeed?: Maybe,
+ grayscale?: Maybe,
+ duotone?: Maybe,
+ traceSVG?: Maybe,
+ quality?: Maybe,
+ jpegQuality?: Maybe,
+ pngQuality?: Maybe,
+ webpQuality?: Maybe,
+ toFormat?: Maybe,
+ toFormatBase64?: Maybe,
+ cropFocus?: Maybe,
+ fit?: Maybe,
+ background?: Maybe,
+ rotate?: Maybe,
+ trim?: Maybe
+};
+
+
+export type ImageSharpFluidArgs = {
+ maxWidth?: Maybe,
+ maxHeight?: Maybe,
+ base64Width?: Maybe,
+ grayscale?: Maybe,
+ jpegProgressive?: Maybe,
+ pngCompressionSpeed?: Maybe,
+ duotone?: Maybe,
+ traceSVG?: Maybe,
+ quality?: Maybe,
+ jpegQuality?: Maybe,
+ pngQuality?: Maybe,
+ webpQuality?: Maybe