// Server API makes it possible to hook into various parts of Gridsome // on server-side and add custom data to the GraphQL data layer. // Learn more: https://gridsome.org/docs/server-api/ // Changes here require a server restart. // To restart press CTRL + C in terminal and run `gridsome develop` module.exports = function (api) { api.loadSource(({ addCollection }) => { // Use the Data Store API here: https://gridsome.org/docs/data-store-api/ }) api.createPages(({ createPage }) => { // Use the Pages API here: https://gridsome.org/docs/pages-api/ }) api.onCreateNode(options => { if (options.internal.typeName === 'Blog') { options.tags = (typeof options.tags === 'string') ? options.tags.split(',').map(string => string.trim()) : options.tags; options.author = (typeof options.author === 'string') ? options.author.split(',').map(string => string.trim()) : options.author; return { ...options }; } if (options.internal.typeName === 'Project') { options.countries = (typeof options.tags === 'string') ? options.tags.split(',').map(string => string.trim()) : options.tags; options.cities = (typeof options.tags === 'string') ? options.tags.split(',').map(string => string.trim()) : options.tags; options.author = (typeof options.author === 'string') ? options.author.split(',').map(string => string.trim()) : options.author; return { ...options }; } }) api.createPages(async ({ graphql, createPage }) => { // Use the Pages API here: https://gridsome.org/docs/pages-api const { data } = await graphql(`{ allBlog { edges { previous { id } next { id } node { id path } } } } `); data.allBlog.edges.forEach(function (element) { createPage({ path: element.node.path, component: './src/templates/BlogPost.vue', context: { previousElement: (element.previous) ? element.previous.id : '##empty##', nextElement: (element.next) ? element.next.id : '##empty##', id: element.node.id } }); }); }); // api.createPages(async ({ // graphql, // createPage // }) => { // // Use the Pages API here: https://gridsome.org/docs/pages-api // const { // data // } = await graphql(`{ // allProject { // edges { // previous { // id // } // next { // id // } // node { // id // path // } // } // } // } // `); // data.allProject.edges.forEach(function (element) { // console.log(element) // createPage({ // path: element.node.path, // component: './src/templates/Project.vue', // context: { // previousElement: (element.previous) ? element.previous.id : '##empty##', // nextElement: (element.next) ? element.next.id : '##empty##', // id: element.node.id // } // }); // }); // }); }