portet blog

This commit is contained in:
2020-09-23 15:37:12 +02:00
parent b447b99159
commit 4df5603222
17 changed files with 271 additions and 25 deletions

6
src/lib/readingTime.js Normal file
View File

@@ -0,0 +1,6 @@
export function readingTimeInMinutes(text, options = {}) {
options = Object.assign({ wpm: 200 }, options)
const cleaned = text.replace(/(<.*?>)|(\\n)|(&#\d*?;)/g, '')
const words = cleaned.split(' ').length
return Math.round(words / options.wpm)
}

View File

@@ -1,10 +1,11 @@
import axios from 'axios'
const isDev = process.env.NODE_ENV !== 'production'
const isDev = process.env.NODE_ENV !== 'production' && false
axios.defaults.baseURL = `${isDev ? 'http://localhost' : 'https://api.nicco.io'}/wp-json/wp/v2`
function normalize(post) {
return {
...post,
...post.acf,
id: post.id,
title: post.title.rendered,
@@ -12,14 +13,29 @@ function normalize(post) {
}
}
function combineUrlAndParams(url, params) {
const p = new URLSearchParams({
per_page: 100,
...params,
}).toString()
return `${url}?${p}`
}
export async function getOne(url, params = {}) {
const p = new URLSearchParams(params).toString()
const { data } = await axios(`${url}?${p}`)
const { data } = await axios(combineUrlAndParams(url, params))
if (!data.length) return null
else return normalize(data[0])
}
export async function getAll(url, params = {}) {
const { data } = await axios(url)
return data.map(normalize)
const { data, headers } = await axios(combineUrlAndParams(url, params))
const totalPages = parseInt(headers['x-wp-totalpages'])
const results = [...data]
if (totalPages > 1) {
for (let page = 2; page <= totalPages; page++) {
const { data } = await axios(combineUrlAndParams(url, { ...params, page }))
results.push(...data)
}
}
return results.map(normalize)
}