It is important that decoupling between node code and browser code.
The 'gatsby-config.js' file must be kept in node code, but it exposed
into browser code because of the Disqus module.
To decouple this, all of the siteMetadata information is served via
GraphQL.
This commit has this change.
This commit avoids undefined.map() or null.map() is calling.
When there is no tag in a post, there are two cases in frontmatter.
1)
title: title
categories: Technical
...
2)
title: title
tags:
categories: Technical
...
Let's look at `post.node.frontmatter.tags` in both situations.
`FILE1 = /gatsby-node.js`
`FILE2 = /src/components/PostTemplateDetails/index.jsx`
In the first case, it is `undefined` in `FILE1`.
Cheking `undefined` is already implemented at FILE1#126, so undefined.map()
is not called.
But it is `null` in `FILE2#22`
and a crash will be occurred because it tries to run `null.map()`.
In the second case, it is `null` in `FILE1` and `FILE2`.
In this case, there will be two crashes in both files because both codes
try to run `null.map()`.
This commit avoids these crashes.