From 51558e522f0f47f3c31910f3371be0988dce290e Mon Sep 17 00:00:00 2001 From: Jerel Miller Date: Sun, 14 Jun 2020 16:29:18 -0700 Subject: [PATCH] refactor: Extract helper functions to generate doc info for components/apis --- .../gatsby-source-newrelic-sdk/gatsby-node.js | 31 +++++++------------ .../gatsby-source-newrelic-sdk/src/docInfo.js | 27 ++++++++++++++++ 2 files changed, 39 insertions(+), 19 deletions(-) create mode 100644 plugins/gatsby-source-newrelic-sdk/src/docInfo.js diff --git a/plugins/gatsby-source-newrelic-sdk/gatsby-node.js b/plugins/gatsby-source-newrelic-sdk/gatsby-node.js index b6c2ef500..a01356e09 100644 --- a/plugins/gatsby-source-newrelic-sdk/gatsby-node.js +++ b/plugins/gatsby-source-newrelic-sdk/gatsby-node.js @@ -1,4 +1,5 @@ -const loadSdk = require('./loadSdk'); +const loadSdk = require('./src/loadSdk'); +const { getComponentDoc, getApiDoc } = require('./src/docInfo'); exports.sourceNodes = async ( { actions, createNodeId, createContentDigest }, @@ -7,15 +8,10 @@ exports.sourceNodes = async ( const { createNode } = actions; const sdk = await loadSdk(release); - components - .filter((name) => Boolean(sdk[name])) - .forEach((name) => { - const component = sdk[name]; - const data = { - name, - description: component.__docs__.text, - }; + components.forEach((name) => { + const data = getComponentDoc(name, sdk); + if (data) { createNode({ ...data, id: createNodeId(`NewRelicSdkComponent-${name}`), @@ -26,17 +22,13 @@ exports.sourceNodes = async ( contentDigest: createContentDigest(data), }, }); - }); + } + }); - apis - .filter((name) => Boolean(sdk[name])) - .forEach((name) => { - const api = sdk[name]; - const data = { - name, - description: api.__docs__.text, - }; + apis.forEach((name) => { + const data = getApiDoc(name, sdk); + if (data) { createNode({ ...data, id: createNodeId(`NewRelicSdkApi-${name}`), @@ -47,5 +39,6 @@ exports.sourceNodes = async ( contentDigest: createContentDigest(data), }, }); - }); + } + }); }; diff --git a/plugins/gatsby-source-newrelic-sdk/src/docInfo.js b/plugins/gatsby-source-newrelic-sdk/src/docInfo.js new file mode 100644 index 000000000..c326232cf --- /dev/null +++ b/plugins/gatsby-source-newrelic-sdk/src/docInfo.js @@ -0,0 +1,27 @@ +module.exports.getComponentDoc = (name, sdk) => { + const component = sdk[name]; + + if (!component) { + return null; + } + + return { + name, + usage: `import { ${name} } from 'nr1'`, + description: component.__docs__.text, + }; +}; + +module.exports.getApiDoc = (name, sdk) => { + const api = sdk[name]; + + if (!api) { + return null; + } + + return { + name, + usage: `import { ${name} } from 'nr1'`, + description: api.__docs__.text, + }; +};