Browse Source

Merge pull request #47 from yangshun/fix-duplicate-redirect

Add check for unique redirect URLs
main
Brian Vaughn 7 years ago
committed by GitHub
parent
commit
c4dc0e82b8
  1. 18
      gatsby-node.js

18
gatsby-node.js

@ -28,6 +28,9 @@ exports.modifyWebpackConfig = ({config, stage}) => {
exports.createPages = async ({graphql, boundActionCreators}) => {
const {createPage, createRedirect} = boundActionCreators;
// Used to detect and prevent duplicate redirects
const redirectToSlugMap = {};
const blogTemplate = resolve('./src/templates/blog.js');
const communityTemplate = resolve('./src/templates/community.js');
const docsTemplate = resolve('./src/templates/docs.js');
@ -114,13 +117,22 @@ exports.createPages = async ({graphql, boundActionCreators}) => {
redirect = [redirect];
}
redirect.forEach(fromPath =>
redirect.forEach(fromPath => {
if (redirectToSlugMap[fromPath] != null) {
console.error(`Duplicate redirect detected from "${fromPath}" to:\n` +
`* ${redirectToSlugMap[fromPath]}\n` +
`* ${slug}\n`
);
process.exit(1);
}
redirectToSlugMap[fromPath] = slug;
createRedirect({
fromPath: `/${fromPath}`,
redirectInBrowser: true,
toPath: `/${slug}`,
}),
);
});
});
}
}
});

Loading…
Cancel
Save