- web/: Vue 3 + Vite + UnoCSS + Pinia, dark tactical theme (amber/#0d1117) - AppNav, ListingCard, SearchView with filters/sort, composables (useSnipeMode, useKonamiCode, useMotion), Pinia search store - Steal shimmer, auction countdown, Snipe Mode easter egg all native in Vue - docker/web/: nginx + multi-stage Dockerfile (node build → nginx serve) - compose.yml: api (8510) + web (8509) services - Dockerfile CMD updated to uvicorn for upcoming FastAPI layer - Clean build: 0 TS errors, 380 modules
32 lines
600 B
JavaScript
32 lines
600 B
JavaScript
'use strict'
|
|
|
|
const {
|
|
kConnected,
|
|
kPending,
|
|
kRunning,
|
|
kSize,
|
|
kFree,
|
|
kQueued
|
|
} = require('../core/symbols')
|
|
|
|
class ClientStats {
|
|
constructor (client) {
|
|
this.connected = client[kConnected]
|
|
this.pending = client[kPending]
|
|
this.running = client[kRunning]
|
|
this.size = client[kSize]
|
|
}
|
|
}
|
|
|
|
class PoolStats {
|
|
constructor (pool) {
|
|
this.connected = pool[kConnected]
|
|
this.free = pool[kFree]
|
|
this.pending = pool[kPending]
|
|
this.queued = pool[kQueued]
|
|
this.running = pool[kRunning]
|
|
this.size = pool[kSize]
|
|
}
|
|
}
|
|
|
|
module.exports = { ClientStats, PoolStats }
|