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
|
|
|
|
|
console.log(devices());
|
|
|
|
|
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 };
|