UNPKG

@elysiajs/server-timing

Version:

Plugin for Elysia for performance audit via server timing

109 lines (108 loc) 2.66 kB
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;