gatsby-node.js (25 lines of code) (raw):

const redirects = require('./redirects') const getReleases = require('@primer/releases') exports.createPages = ({actions: {createRedirect}}) => { for (const [fromPath, toPath] of Object.entries(redirects)) { // console.warn(`[redirect] ${fromPath} → ${toPath}`) createRedirect({fromPath, toPath, redirectInBrowser: true}) } } exports.sourceNodes = async ({actions: {createNode}, createContentDigest}) => { const {releases} = await getReleases() for (const release of releases) { const node = { ...release, id: `PrimerRelease ${release.title}`, parent: null, children: [], internal: { type: 'PrimerRelease', mediaType: 'application/json', content: JSON.stringify(release), contentDigest: createContentDigest(release) } } createNode(node) } }