import fs from 'fs'
import fsp from 'fs/promises'
import path from 'path'
const dir = path.join(path.dirname(new URL(import.meta.url).pathname), '../..')
const logPath = path.join(dir, 'output-log.json')
export async function POST(req) {
let payloadString = ''
const decoder = new TextDecoder()
const reader = req.clone().body.getReader()
while (true) {
const { done, value } = await reader.read()
if (done) {
break
}
payloadString += decoder.decode(value)
}
const payload = JSON.parse(payloadString)
const json = fs.existsSync(logPath)
? JSON.parse(await fsp.readFile(logPath, 'utf8'))
: {}
if (!json[payload.message]) {
json[payload.message] = {
payload,
count: 1,
}
} else {
json[payload.message].count++
}
await fsp.writeFile(logPath, JSON.stringify(json, null, 2), 'utf8')
console.log(`[instrumentation] write-log:${payload.message}`)
return new Response(null, { status: 204 })
}