import { httpRequest } from 'http-request';
import { EdgeKV } from './edgekv.js';
const edgeKv = new EdgeKV({
namespace: 'hall-config',
group: 'credentials'
});
export function onClientRequest(request) {
const requestPath = request.path + (request.query ? '?' + request.query : '');
const requestMethod = request.method;
const requestIp = request.clientIp || '127.0.0.1';
const requestHeaders = {
'User-Agent': request.getHeader('User-Agent')?.[0] || '',
'Host': request.getHeader('Host')?.[0] || '',
'Referer': request.getHeader('Referer')?.[0] || '',
};
edgeKv.getText({ item: 'api_key' })
.then((apiKey) => {
if (apiKey) {
httpRequest('https://analytics.usehall.com/visit', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${apiKey}`,
},
body: JSON.stringify({
request_path: requestPath,
request_method: requestMethod,
request_ip: requestIp,
request_headers: requestHeaders,
request_timestamp: Date.now(),
}),
}).catch(() => {
// Silent failure
});
}
})
.catch(() => {
// Silent failure
});
return request;
}