portfolio/server/api/images.ts

34 lines
821 B
TypeScript
Raw Normal View History

import { readFileSync } from 'node:fs'
const dataFile = './server/data/images.json'
function cleanData(data) {
return data.map(item => {
const cleaned = { ...item }
if (cleaned._id?.$oid) {
cleaned.id = cleaned._id.$oid
delete cleaned._id
}
if (cleaned.chunkSize?.$numberLong) {
cleaned.chunkSize = parseInt(cleaned.chunkSize.$numberLong)
}
if (cleaned.uploadDate?.$date?.$numberLong) {
cleaned.uploadDate = new Date(parseInt(cleaned.uploadDate.$date.$numberLong)).toISOString()
}
if (cleaned.length?.$numberLong) {
cleaned.length = parseInt(cleaned.length.$numberLong)
}
return cleaned
})
}
export default defineEventHandler(() => {
const raw = readFileSync(dataFile, 'utf-8')
return cleanData(JSON.parse(raw))
})