feat: add bun-fullstack agent and update skills
This commit is contained in:
71
.agent/skills/tech-stack/elysiajs/plugins/server-timing.md
Normal file
71
.agent/skills/tech-stack/elysiajs/plugins/server-timing.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# Server Timing Plugin
|
||||
This plugin adds support for auditing performance bottlenecks with Server Timing API
|
||||
|
||||
## Installation
|
||||
```bash
|
||||
bun add @elysiajs/server-timing
|
||||
```
|
||||
|
||||
## Basic Usage
|
||||
```typescript twoslash
|
||||
import { Elysia } from 'elysia'
|
||||
import { serverTiming } from '@elysiajs/server-timing'
|
||||
|
||||
new Elysia()
|
||||
.use(serverTiming())
|
||||
.get('/', () => 'hello')
|
||||
.listen(3000)
|
||||
```
|
||||
|
||||
Server Timing then will append header 'Server-Timing' with log duration, function name, and detail for each life-cycle function.
|
||||
|
||||
To inspect, open browser developer tools > Network > [Request made through Elysia server] > Timing.
|
||||
|
||||
Now you can effortlessly audit the performance bottleneck of your server.
|
||||
|
||||
## Config
|
||||
Below is a config which is accepted by the plugin
|
||||
|
||||
### enabled
|
||||
@default `NODE_ENV !== 'production'`
|
||||
|
||||
Determine whether or not Server Timing should be enabled
|
||||
|
||||
### allow
|
||||
@default `undefined`
|
||||
|
||||
A condition whether server timing should be log
|
||||
|
||||
### trace
|
||||
@default `undefined`
|
||||
|
||||
Allow Server Timing to log specified life-cycle events:
|
||||
|
||||
Trace accepts objects of the following:
|
||||
- request: capture duration from request
|
||||
- parse: capture duration from parse
|
||||
- transform: capture duration from transform
|
||||
- beforeHandle: capture duration from beforeHandle
|
||||
- handle: capture duration from the handle
|
||||
- afterHandle: capture duration from afterHandle
|
||||
- total: capture total duration from start to finish
|
||||
|
||||
## Pattern
|
||||
Below you can find the common patterns to use the plugin.
|
||||
|
||||
## Allow Condition
|
||||
You may disable Server Timing on specific routes via `allow` property
|
||||
|
||||
```ts twoslash
|
||||
import { Elysia } from 'elysia'
|
||||
import { serverTiming } from '@elysiajs/server-timing'
|
||||
|
||||
new Elysia()
|
||||
.use(
|
||||
serverTiming({
|
||||
allow: ({ request }) => {
|
||||
return new URL(request.url).pathname !== '/no-trace'
|
||||
}
|
||||
})
|
||||
)
|
||||
```
|
||||
Reference in New Issue
Block a user