Files
xyflow/website/generators/examples.js
T

56 lines
1.1 KiB
JavaScript

const path = require('path');
const exampleTemplate = path.resolve('./src/templates/example-page.js');
const examplePagesQuery = `{
allExamplesJson {
edges {
node {
slug
title
source
}
}
}
}
`;
const createExamplePage = (createPage, examplePages) => {
examplePages.forEach((page) => {
const { slug, title, source } = page.node;
createPage({
path: slug,
component: exampleTemplate,
context: {
slug: slug,
title: title,
source: source,
sourceSlug: `/example-flows/${source}/`,
},
});
});
};
const exampleGenerator = (createPage, graphql) =>
new Promise((resolve, reject) => {
resolve(
graphql(examplePagesQuery).then((result) => {
if (result.errors) {
console.log(result.errors);
reject(result.errors);
}
const pages = result.data.allExamplesJson.edges;
try {
createExamplePage(createPage, pages);
} catch (e) {
console.log(e);
}
})
);
});
module.exports = exampleGenerator;