Skip to content

Commit

Permalink
refactor: Extract helper functions to generate doc info for component…
Browse files Browse the repository at this point in the history
…s/apis
  • Loading branch information
jerelmiller committed Jun 14, 2020
1 parent 535963a commit 51558e5
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 19 deletions.
31 changes: 12 additions & 19 deletions plugins/gatsby-source-newrelic-sdk/gatsby-node.js
Original file line number Diff line number Diff line change
@@ -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 },
Expand All @@ -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}`),
Expand All @@ -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}`),
Expand All @@ -47,5 +39,6 @@ exports.sourceNodes = async (
contentDigest: createContentDigest(data),
},
});
});
}
});
};
27 changes: 27 additions & 0 deletions plugins/gatsby-source-newrelic-sdk/src/docInfo.js
Original file line number Diff line number Diff line change
@@ -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,
};
};

0 comments on commit 51558e5

Please sign in to comment.