webssh2-server
Version:
A Websocket to SSH2 gateway using xterm.js, socket.io, ssh2
45 lines (44 loc) • 1.08 kB
JavaScript
/**
* State type definitions for immutable state management
*/
import { TERMINAL_DEFAULTS } from '../constants/index.js';
/**
* Helper functions for Result type
*/
export const ok = (value) => ({ ok: true, value });
export const err = (error) => ({ ok: false, error });
/**
* Initial state factory
*/
export const createInitialState = (sessionId) => ({
id: sessionId,
auth: {
status: 'pending',
method: null,
username: null,
timestamp: Date.now(),
errorMessage: null
},
connection: {
status: 'disconnected',
connectionId: null,
host: null,
port: null,
errorMessage: null,
lastActivity: Date.now()
},
terminal: {
term: TERMINAL_DEFAULTS.DEFAULT_TERM,
rows: TERMINAL_DEFAULTS.DEFAULT_ROWS,
cols: TERMINAL_DEFAULTS.DEFAULT_COLS,
environment: {},
cwd: null
},
metadata: {
createdAt: Date.now(),
updatedAt: Date.now(),
clientIp: null,
userAgent: null,
userId: null
}
});