text: /**
   * Created by vaibhav on 31/3/18
   */
  const _ = require('lodash');
  const path = require('path');
  const { createFilePath } = require('gatsby-source-filesystem');
  
  
  exports.createPages = ({ boundActionCreators, graphql }) => {
      const { createPage } = boundActionCreators
  
      return graphql(`
      {
        allMarkdownRemark(limit: 1000) {
          edges {
            node {
              id
              fields {
                slug
              }
              frontmatter {
                tags
                templateKey
              }
            }
          }
        }
      }
    `).then(result => {
          if (result.errors) {
              result.errors.forEach(e => console.error(e.toString()));
              return Promise.reject(result.errors)
          }
  
          const posts = result.data.allMarkdownRemark.edges;
  
          posts.forEach(edge => {
              const id = edge.node.id;
              createPage({
                  path: edge.node.fields.slug,
                  tags: edge.node.frontmatter.tags,
                  component: path.resolve(
                      `src/templates/${String(edge.node.frontmatter.templateKey)}.js`
                  ),
                  // additional data can be passed via context
                  context: {
                      id,
                  },
              })
          });
  
          // Tag pages:
          let tags = [];
          // Iterate through each post, putting all found tags into `tags`
          posts.forEach(edge => {
              if (_.get(edge, `node.frontmatter.tags`)) {
                  tags = tags.concat(edge.node.frontmatter.tags)
              }
          });
          // Eliminate duplicate tags
          tags = _.uniq(tags);
  
          // Make tag pages
          tags.forEach(tag => {
              const tagPath = `/tags/${_.kebabCase(tag)}/`;
  
              createPage({
                  path: tagPath,
                  component: path.resolve(`src/templates/tags.js`),
                  context: {
                      tag,
                  },
              })
          })
      })
  };
  
  exports.onCreateNode = ({ node, boundActionCreators, getNode }) => {
      const { createNodeField } = boundActionCreators
  
      if (node.internal.type === `MarkdownRemark`) {
          const value = createFilePath({ node, getNode })
          createNodeField({
              name: `slug`,
              node,
              value,
          })
      }
  };
  
  
  
  exports.modifyWebpackConfig = ({ config, stage }) => {
      if (stage === "build-html") {
        config.loader("null", {
          test: /bad-module/,
          loader: "null-loader",
        });
      }
    };
    
    