26 lines
667 B
TypeScript
26 lines
667 B
TypeScript
|
|
import { readFileSync } from 'node:fs'
|
||
|
|
|
||
|
|
const dataFile = './server/data/works.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.date?.$date?.$numberLong) {
|
||
|
|
cleaned.date = new Date(parseInt(cleaned.date.$date.$numberLong)).toISOString()
|
||
|
|
}
|
||
|
|
if (cleaned.priority?.$numberInt) {
|
||
|
|
cleaned.priority = parseInt(cleaned.priority.$numberInt)
|
||
|
|
}
|
||
|
|
return cleaned
|
||
|
|
})
|
||
|
|
}
|
||
|
|
|
||
|
|
export default defineEventHandler(() => {
|
||
|
|
const raw = readFileSync(dataFile, 'utf-8')
|
||
|
|
return cleanData(JSON.parse(raw))
|
||
|
|
})
|