Should we skip the Gatsby Cache altogether?  🛑 🔄

Acknowledging the deterministic nature of createNodeId simplified our Gatsby Source YouTube oEmbed Plugin a smidge, resulting in:

const youTubeNodeId = createNodeId(`YouTube >>> ${youTubeId}`);
const timestamp = await cache.get(youTubeNodeId);
const existingNode = getNode(youTubeNodeId);
const existingNodeAge = Date.now() - timestamp;

if (existingNode && existingNodeAge <= refreshInterval) {
  // Node already exists, make sure it stays around
  touchNode(existingNode);
  reporter.info(`Touch YouTube Node for ${youTubeId}`);
} else {
  // Fetch oEmbed data and create node
  const embedData = await fetchEmbed(youTubeId);

  createNode({
    id: youTubeNodeId,
    youTubeId: youTubeId,
    oEmbed: embedData,
    internal: {
      type: "YouTube",
      contentDigest: createContentDigest(embedData),
    },
  });

  await cache.set(youTubeNodeId, `${Date.now()}`);
  reporter.info(`Create YouTube Node for ${youTubeId}`);
}

When doing so, another thought came to mind: Could we skip using the cache altogether?

It seems like we can, but should we?

const youTubeNodeId = createNodeId(`YouTube >>> ${youTubeId}`);
const existingNode = getNode(youTubeNodeId);
const existingNodeAge = Date.now() - existingNode?.timestamp;

if (existingNode && existingNodeAge <= refreshInterval) {
  // Node already exists, make sure it stays around
  touchNode(existingNode);
  reporter.info(`Touch YouTube Node for ${youTubeId}`);
} else {
  // Fetch oEmbed data and create node
  const embedData = await fetchEmbed(youTubeId);

  createNode({
    id: youTubeNodeId,
    youTubeId: youTubeId,
    oEmbed: embedData,
    timestamp: Date.now(),
    internal: {
      type: "YouTube",
      contentDigest: createContentDigest(embedData),
    },
  });

  reporter.info(`Create YouTube Node for ${youTubeId}`);
}

Take a look at the Pull Request and let me know what you think!
Leave a comment on the PR or reply to this email.

 
All the best,
Queen Raae

 
PS: If you have any other thoughts or opinions on the plugin's code, I would love to hear them 🤩

Stuck on a reef in the sharky waters around the Gatsby islands?

Book a 1-on-1 Gatsby Call with Queen Raae. Friendly advice you can put into action immediately, guaranteed!

Serious about Gatsby? Sign up for emails sent every weekday to help you get the most out of Gatsby!