2017-11-04 14:05:16 +00:00
|
|
|
const fetch = require('isomorphic-unfetch')
|
2017-07-01 19:44:58 +00:00
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
async exportPathMap () {
|
|
|
|
// we fetch our list of posts, this allow us to dynamically generate the exported pages
|
2018-12-17 16:34:32 +00:00
|
|
|
const response = await fetch(
|
|
|
|
'https://jsonplaceholder.typicode.com/posts?_page=1'
|
|
|
|
)
|
2017-07-01 19:44:58 +00:00
|
|
|
const postList = await response.json()
|
|
|
|
|
|
|
|
// tranform the list of posts into a map of pages with the pathname `/post/:id`
|
|
|
|
const pages = postList.reduce(
|
|
|
|
(pages, post) =>
|
|
|
|
Object.assign({}, pages, {
|
|
|
|
[`/post/${post.id}`]: {
|
|
|
|
page: '/post',
|
|
|
|
query: { id: post.id }
|
|
|
|
}
|
|
|
|
}),
|
2018-03-27 18:11:03 +00:00
|
|
|
{}
|
2017-07-01 19:44:58 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
// combine the map of post pages with the home
|
|
|
|
return Object.assign({}, pages, {
|
|
|
|
'/': { page: '/' }
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|