From c19f3a0e5a640e586c6a5ce593f7303541f606b3 Mon Sep 17 00:00:00 2001 From: satnaing Date: Sat, 28 Jan 2023 00:47:21 +0630 Subject: [PATCH] refactor: update imports and frontmatter types --- src/utils/getPostsByTag.ts | 7 +++---- src/utils/getSortedPosts.ts | 4 ++-- src/utils/getUniqueTags.ts | 9 ++++----- src/utils/slugify.ts | 6 +++--- 4 files changed, 12 insertions(+), 14 deletions(-) diff --git a/src/utils/getPostsByTag.ts b/src/utils/getPostsByTag.ts index 82ccda3..ed59eed 100644 --- a/src/utils/getPostsByTag.ts +++ b/src/utils/getPostsByTag.ts @@ -1,8 +1,7 @@ import { slufigyAll } from "./slugify"; -import type { MarkdownInstance } from "astro"; -import type { Frontmatter } from "../types"; +import type { CollectionEntry } from "astro:content"; -const getPostsByTag = (posts: MarkdownInstance[], tag: string) => - posts.filter(post => slufigyAll(post.frontmatter.tags).includes(tag)); +const getPostsByTag = (posts: CollectionEntry<"blog">[], tag: string) => + posts.filter(post => slufigyAll(post.data.tags).includes(tag)); export default getPostsByTag; diff --git a/src/utils/getSortedPosts.ts b/src/utils/getSortedPosts.ts index f14d963..5c6b7ba 100644 --- a/src/utils/getSortedPosts.ts +++ b/src/utils/getSortedPosts.ts @@ -5,8 +5,8 @@ const getSortedPosts = (posts: CollectionEntry<"blog">[]) => .filter(({ data }) => !data.draft) .sort( (a, b) => - Math.floor(new Date(b.data.publishDatetime).getTime() / 1000) - - Math.floor(new Date(a.data.publishDatetime).getTime() / 1000) + Math.floor(new Date(b.data.pubDatetime).getTime() / 1000) - + Math.floor(new Date(a.data.pubDatetime).getTime() / 1000) ); export default getSortedPosts; diff --git a/src/utils/getUniqueTags.ts b/src/utils/getUniqueTags.ts index 343263b..57a82ed 100644 --- a/src/utils/getUniqueTags.ts +++ b/src/utils/getUniqueTags.ts @@ -1,12 +1,11 @@ import { slugifyStr } from "./slugify"; -import type { MarkdownInstance } from "astro"; -import type { Frontmatter } from "../types"; +import type { CollectionEntry } from "astro:content"; -const getUniqueTags = (posts: MarkdownInstance[]) => { +const getUniqueTags = (posts: CollectionEntry<"blog">[]) => { let tags: string[] = []; - const filteredPosts = posts.filter(({ frontmatter }) => !frontmatter.draft); + const filteredPosts = posts.filter(({ data }) => !data.draft); filteredPosts.forEach(post => { - tags = [...tags, ...post.frontmatter.tags] + tags = [...tags, ...post.data.tags] .map(tag => slugifyStr(tag)) .filter( (value: string, index: number, self: string[]) => diff --git a/src/utils/slugify.ts b/src/utils/slugify.ts index 3a04e5f..55b726b 100644 --- a/src/utils/slugify.ts +++ b/src/utils/slugify.ts @@ -1,10 +1,10 @@ -import type { CollectionEntry } from "astro:content"; import { slug as slugger } from "github-slugger"; +import type { BlogFrontmatter } from "@content/_schemas"; export const slugifyStr = (str: string) => slugger(str); -const slugify = (post: CollectionEntry<"blog">) => - post.data.slug ? slugger(post.data.slug) : post.slug; +const slugify = (post: BlogFrontmatter) => + post.postSlug ? slugger(post.postSlug) : slugger(post.title); export const slufigyAll = (arr: string[]) => arr.map(str => slugifyStr(str));