awesome-uses/gatsby-node.js

76 lines
1.9 KiB
JavaScript
Raw Normal View History

2020-01-07 20:23:53 +00:00
import people from './src/data.js';
2020-01-08 15:53:02 +00:00
import { tags, countries, devices } from './src/util/stats';
2020-01-07 20:23:53 +00:00
function sourceNodes({ actions, createNodeId, createContentDigest }) {
// Add People to the GraphQL API, we randomize the data on each build so no one gets their feelings hurt
people
.sort(() => Math.random() - 0.5)
.forEach(person => {
const nodeMeta = {
id: createNodeId(`person-${person.name}`),
parent: null,
children: [],
internal: {
type: `Person`,
mediaType: `text/html`,
content: JSON.stringify(person),
contentDigest: createContentDigest(person),
},
};
actions.createNode({ ...person, ...nodeMeta });
});
// Add tags to GraphQL API
tags().forEach(tag => {
const nodeMeta = {
id: createNodeId(`tag-${tag.name}`),
parent: null,
children: [],
internal: {
type: `Tag`,
mediaType: `text/html`,
content: JSON.stringify(tag),
contentDigest: createContentDigest(tag),
},
};
actions.createNode({ ...tag, ...nodeMeta });
});
// Add Countries to GraphQL API
countries().forEach(country => {
const nodeMeta = {
id: createNodeId(`country-${country.name}`),
parent: null,
children: [],
internal: {
type: `Country`,
mediaType: `text/html`,
content: JSON.stringify(country),
contentDigest: createContentDigest(country),
},
};
actions.createNode({ ...country, ...nodeMeta });
});
2020-01-08 11:44:52 +00:00
2020-01-08 15:53:02 +00:00
// Add Devices to GraphQL API
devices().forEach(device => {
2020-01-08 11:44:52 +00:00
const nodeMeta = {
2020-01-08 15:53:02 +00:00
id: createNodeId(`device-${device.name}`),
2020-01-08 11:44:52 +00:00
parent: null,
children: [],
internal: {
2020-01-08 15:53:02 +00:00
type: `device`,
2020-01-08 11:44:52 +00:00
mediaType: `text/html`,
2020-01-08 15:53:02 +00:00
content: JSON.stringify(device),
contentDigest: createContentDigest(device),
2020-01-08 11:44:52 +00:00
},
};
2020-01-08 15:53:02 +00:00
actions.createNode({ ...device, ...nodeMeta });
2020-01-08 11:44:52 +00:00
});
2020-01-07 20:23:53 +00:00
}
export { sourceNodes };