Files
peardock/server/rpc/register.js
T
Raven Scott 637c386e33
Release rolling / release (push) Successful in 7m55s
Bring Back Realtime Table Stats
2026-08-04 22:37:41 -04:00

74 lines
2.6 KiB
JavaScript

/**
* Wire all domain handlers onto a PeerSession.
*/
import { registerHandshake } from './session.js'
import { registerContainerHandlers } from '../handlers/containers.js'
import { registerImageHandlers } from '../handlers/images.js'
import { registerNetworkHandlers } from '../handlers/networks.js'
import { registerVolumeHandlers } from '../handlers/volumes.js'
import { registerStackHandlers } from '../handlers/stacks.js'
import { registerDeployHandlers } from '../handlers/deploy.js'
import { registerTerminalHandlers, cleanupTerminalOnClose } from '../handlers/terminal.js'
import { registerLogsHandlers, cleanupLogsOnClose } from '../handlers/logs.js'
import { registerDockerCliHandlers } from '../handlers/docker-cli.js'
import { registerSystemHandlers } from '../handlers/system.js'
import { registerSwarmHandlers } from '../handlers/swarm.js'
import { registerPluginHandlers } from '../handlers/plugins.js'
import { registerPeerHandlers } from '../handlers/peers.js'
import { registerVaultHandlers } from '../handlers/vault.js'
import { registerRegistryHandlers } from '../handlers/registry.js'
import { registerBinaryStreamHandlers } from './binary-stream.js'
import { registerSuggestionHandlers } from '../handlers/suggestions.js'
import { registerTunnelHandlers } from '../handlers/tunnels.js'
import { registerAlertHandlers } from '../handlers/alerts.js'
import { clearPeerStatsInterest } from '../services/stats.js'
/**
* @param {import('./session.js').PeerSession} session
*/
export function registerAllHandlers(session) {
registerHandshake(session)
registerSystemHandlers(session)
registerAlertHandlers(session)
registerContainerHandlers(session)
registerImageHandlers(session)
registerNetworkHandlers(session)
registerVolumeHandlers(session)
registerStackHandlers(session)
registerDeployHandlers(session)
registerTerminalHandlers(session)
registerLogsHandlers(session)
registerDockerCliHandlers(session)
registerSwarmHandlers(session)
registerPluginHandlers(session)
registerPeerHandlers(session)
registerVaultHandlers(session)
registerRegistryHandlers(session)
registerBinaryStreamHandlers(session)
registerSuggestionHandlers(session)
registerTunnelHandlers(session)
}
/**
* @param {import('./session.js').PeerSession} session
*/
export function cleanupSession(session) {
cleanupTerminalOnClose(session)
cleanupLogsOnClose(session)
try {
clearPeerStatsInterest(session.id)
} catch {
// ignore
}
for (const [key, value] of session.state.entries()) {
if (key.startsWith('exec:') && value?.stream) {
try {
value.stream.end()
} catch {
// ignore
}
}
}
session.state.clear()
}