Page MenuHomePhorge

logger.ts
No OneTemporary

Size
826 B
Referenced Files
None
Subscribers
None

logger.ts

import { Elysia } from 'elysia';
export const logger = ({ methods = ['GET', 'PUT', 'POST', 'DELETE'] } = {}) =>
new Elysia()
.derive({ as: 'global' }, () => ({ start: Date.now() }))
.onBeforeHandle({ as: 'global' }, ctx => {
if (!methods.includes(ctx.request.method)) return;
console.log('<--', ctx.request.method, ctx.path);
})
.onAfterHandle({ as: 'global' }, ctx => {
if (!methods.includes(ctx.request.method)) return;
console.log('-->', ctx.request.method, ctx.path, ctx.set.status ?? Number.NaN, 'in', Date.now() - ctx.start, 'ms');
})
.onError({ as: 'global' }, ctx => {
if (!methods.includes(ctx.request.method)) return;
console.log('-->', ctx.request.method, ctx.path, ctx.set.status, 'in', ctx.start ? Date.now() - ctx.start : Number.NaN, 'ms');
});

File Metadata

Mime Type
application/javascript
Expires
Fri, Apr 3, 6:55 PM (2 d)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
521750
Default Alt Text
logger.ts (826 B)

Event Timeline