@elysiajs/server-timing
Version:
Plugin for Elysia for performance audit via server timing
109 lines (108 loc) • 2.66 kB
TypeScript
import { Elysia, type Context } from 'elysia';
type MaybePromise<T> = T | Promise<T>;
export interface ServerTimingOptions {
/**
* Should Elysia report data back to client via 'Server-Sent-Event'
*/
report?: boolean;
/**
* Allow Server Timing to log specified life-cycle events
*/
trace?: {
/**
* Capture duration from request
*
* @default true
*/
request?: boolean;
/**
* Capture duration from parse
*
* @default true
*/
parse?: boolean;
/**
* Capture duration from transform
*
* @default true
*/
transform?: boolean;
/**
* Capture duration from beforeHandle
*
* @default true
*/
beforeHandle?: boolean;
/**
* Capture duration from handle
*
* @default true
*/
handle?: boolean;
/**
* Capture duration from afterHandle
*
* @default true
*/
afterHandle?: boolean;
/**
* Capture duration from mapResponse
*
* @default true
*/
error?: boolean;
/**
* Capture duration from mapResponse
*
* @default true
*/
mapResponse?: boolean;
/**
* Capture total duration from start to finish
*
* @default true
*/
total?: boolean;
};
/**
* Determine whether or not Server Timing should be enabled
*
* @default NODE_ENV !== 'production'
*/
enabled?: boolean;
/**
* A condition whether server timing should be log
*
* @default undefined
*/
allow?: MaybePromise<boolean> | ((context: Omit<Context, 'path'>) => MaybePromise<boolean>);
}
export declare const serverTiming: ({ allow, enabled, trace: { request: traceRequest, parse: traceParse, transform: traceTransform, beforeHandle: traceBeforeHandle, handle: traceHandle, afterHandle: traceAfterHandle, error: traceError, mapResponse: traceMapResponse, total: traceTotal } }?: ServerTimingOptions) => Elysia<"", {
decorator: {};
store: {};
derive: {};
resolve: {};
}, {
typebox: {};
error: {};
}, {
schema: {};
standaloneSchema: {};
macro: {};
macroFn: {};
parser: {};
response: {};
}, {}, {
derive: {};
resolve: {};
schema: {};
standaloneSchema: {};
response: {};
}, {
derive: {};
resolve: {};
schema: {};
standaloneSchema: {};
response: {};
}>;
export default serverTiming;