import type { BlogParsedContent, StoryParsedContent } from "./types"; import readingTime from "reading-time"; import dayjs from "dayjs"; import utc from "dayjs/plugin/utc.js"; dayjs.extend(utc); function countWords(str: string) { let words = 0; for (const c of str) { if (c === " " || c === "/") { words++; } } return words; } function search(obj: Record, results: string[] = []) { if (obj.value) { results.push(obj.value); } if (obj.children) { for (const el of obj.children) { search(el, results); } } return results; } export function calcReadingTime(doc: BlogParsedContent | StoryParsedContent) { let body: string[] = search(doc.body); return readingTime(body.join(" ")); } export function getPrettyDate(doc: BlogParsedContent | StoryParsedContent) { const date = dayjs(doc.date).utc(); return date.format("DD MMM YYYY"); }