mirror of
https://github.com/ArthurDanjou/website.git
synced 2026-01-14 12:14:42 +01:00
Import drizzle replacing prisma
Signed-off-by: Arthur DANJOU <arthurdanjou@outlook.fr>
This commit is contained in:
39
composables/useContent.ts
Normal file
39
composables/useContent.ts
Normal file
@@ -0,0 +1,39 @@
|
||||
import type { Education, Post, Project, Skill, WorkExperience } from '~~/types'
|
||||
|
||||
export function getProjects() {
|
||||
return useAsyncData('content:projects', () => {
|
||||
return queryContent<Project>('projects').find()
|
||||
})
|
||||
}
|
||||
|
||||
export function getEducations() {
|
||||
return useAsyncData('content:educations', () => {
|
||||
return queryContent<Education>('educations')
|
||||
.sort({
|
||||
endDate: -1,
|
||||
})
|
||||
.find()
|
||||
})
|
||||
}
|
||||
|
||||
export function getWorkExperiences() {
|
||||
return useAsyncData('content:experiences', async () => {
|
||||
const experiences = await queryContent<WorkExperience>('experiences').find()
|
||||
return experiences.sort((a, b) => {
|
||||
return new Date(b.startDate).getTime() - new Date(a.startDate).getTime()
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
export function getSkills() {
|
||||
return useAsyncData('content:skills', () => queryContent<Skill[]>('skills').findOne())
|
||||
}
|
||||
|
||||
export function getPosts() {
|
||||
return useAsyncData('content:posts', async () => {
|
||||
const posts = await queryContent<Post>('writing').find()
|
||||
return posts.sort((a, b) => {
|
||||
return new Date(b.publishedAt).getTime() - new Date(a.publishedAt).getTime()
|
||||
})
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user