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 🤩

Interested in more daily treasures like this one?
Sent directly to your inbox?