This commit is contained in:
seb
2026-07-06 01:31:11 +02:00
commit 917930d0fa
34 changed files with 2912 additions and 0 deletions

35
src/http.js Normal file
View File

@@ -0,0 +1,35 @@
export function serverTimestamp() {
const d = new Date();
const pad = (n) => String(n).padStart(2, '0');
return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`;
}
export function readBody(req) {
return new Promise((resolve, reject) => {
const chunks = [];
req.on('data', (chunk) => chunks.push(chunk));
req.on('end', () => resolve(Buffer.concat(chunks)));
req.on('error', reject);
});
}
export function sendJson(res, statusCode, body) {
const responseBody = JSON.stringify(body);
res.writeHead(statusCode, {
'Content-Type': 'application/json; charset=utf-8',
'Content-Length': Buffer.byteLength(responseBody),
});
res.end(responseBody);
}
export function sendBinary(res, statusCode, buffer, contentType) {
res.writeHead(statusCode, {
'Content-Type': contentType,
'Content-Length': buffer.length,
});
res.end(buffer);
}
export function normalizePath(pathname) {
return pathname.replace(/^\/api(?=\/v1\/)/, '');
}